correct two claims about agents that the SDK disproves

docs/per-user-linux-accounts.md carried the reasoning that per-user agents were
a large piece of work, and both halves of that reasoning were wrong.

The SDK does have somewhere to put a uid — spawnClaudeCodeProcess, documented
for running Claude Code in VMs and containers — so a member's turn does not have
to become its own process. And the credential claim was backwards: the proxy
holds the OWNER'S credential, reading the owner's own ~/.claude/.credentials.json,
so pointing a member at it spends the owner's account on the member's turns.
The previous handoff had already retracted that one; the doc had not caught up,
which is how a retracted claim stays live.

Corrected in place rather than deleted, with what was believed and why it was
wrong, because the superseded version is the interesting part: the first claim
is what made agents look like a later stage than they are.

Adds the constraint that actually is out of scope, which the old text never
stated: no platform process ever runs as a member, because the sidecar holds
POSTGRES_URL and the JWT secret.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-11 21:33:19 +00:00
co-authored by Claude Opus 5
parent 701933d30d
commit ed52faae02
2 changed files with 31 additions and 11 deletions
@@ -38,11 +38,15 @@ them. Installed SDK is **0.2.59**; `package.json:31` pins `^0.2.41`.
the SDK also needs to reach the spawned process in a way `setpriv` breaks, this whole approach is wrong and
the fallback is the earlier plan (member turn as its own process).
Second stale claim, already corrected once: `docs/per-user-linux-accounts.md:230` still says a member's
`claude` "needs only `ANTHROPIC_BASE_URL` pointed at the proxy and no key of its own." The previous handoff
§5 retracted that. **Both passages need editing; neither has been edited.** Left alone deliberately so this
document is the record of what was believed when the code was written, rather than the doc silently agreeing
with the code.
Second stale claim, already retracted once by the previous handoff §5:
`docs/per-user-linux-accounts.md:230` said a member's `claude` "needs only `ANTHROPIC_BASE_URL` pointed at the
proxy and no key of its own." That is backwards — the proxy holds the **owner's** credential
(`sidecar/claude/proxy.ts:7` reads the owner's own `~/.claude/.credentials.json`), so pointing a member at it
spends the owner's account on their turns.
**Both passages have now been corrected in `docs/per-user-linux-accounts.md`** (same commit range as the code).
The superseded text is in that file's git history. If you are reading this handoff against an older checkout,
the doc is the one that moved.
---