Skip to content

Write-identity lock 1 is absent in multi-repo project threads: the session starts in the parent folder, never loads objectstack's .claude/settings.json deny list, and 26 MCP writes on 2026-10-23 landed as the maintainer's personal account #25583

Open

Description

@objectstack-fleet

Filing gate: ① tooling defect with a named landing point, measured in a live session.
Reader: domain:skills seat; the next PR that touches the project-thread session start (the #25380 hook family) or the write-identity locks.
Dedupe (open AND closed): "project thread settings deny MCP write identity" → 3 related hits, all closed and none covering this: #18205 (lock 1 inert because settings load from the clone-time checkout), #25380 (multi-repo working directory hides .claude/skills), #25457 (card threads write only through the relay — a rule in text, not a lock).
reach: measured 2026-10-24 in project thread session session_018fnREjMeK9XQeHDwkJXKMW (the Objectstack project, repos objectstack + objectui).

What happens

A Claude Code project thread with two repositories starts with its working directory at the parent folder (/home/claude), not inside /home/claude/objectstack. The settings that session loads are the launcher's (/home/claude/.claude/launcher-settings.json, whose permissions is {"allow": ["Skill"]}) — objectstack's .claude/settings.json, which denies mcp__github__issue_write, mcp__github__create_pull_request, mcp__github__add_issue_comment and 14 other MCP content writes (lock 1, #18068), is never read. The MCP write tools are offered to the session, and a write through them is authored as the account that connected GitHub — the maintainer's own login.

What it cost, 2026-10-23

26 writes landed under the maintainer's personal account, every one with performed_via_github_app: claude:

The 13 open, unclaimed cards among them are being re-filed through the relay and closed as duplicates; the rest are claimed, closed or merged and stay as they are.

Expected

A project-thread session refuses the same MCP content writes a session started inside the repo refuses, so the relay is the only write path whichever folder the session starts in.

Where the fix can land

Session: session_018fnREjMeK9XQeHDwkJXKMW

Activity

  1. added
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    bugSomething isn't working
    priority:p1High: required for production / M2
    and removed on Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:skillspm:queuepriority:p1High: required for production / M2tooling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions