Found while auditing the launcher scripts on 2026-07-27.
What happens
config.toml sets the same cwd for every agent:
[agents.claude] cwd = "../../orkestr8"
[agents.codex] cwd = "../../orkestr8"
[agents.opencode] cwd = "../../orkestr8"
[agents.agy] cwd = "../../orkestr8"
# config.local.toml: claude-alt, claude-zai — same
Confirmed live:
$ ps -eo args | grep tmux
tmux new-session -d -s agentchattr-claude -c /home/dexter/workspace/orkestr8 env -u CLAUDECODE …
So on a session working on pixel_agents, all six agents started in orkestr8.
Why it matters
An agent that runs git status, git log or git rev-parse HEAD without cd-ing first reports on the wrong repository — and reports it confidently. "Tree clean, HEAD is X" is a true statement about a repo nobody asked about.
This is the same silent-wrong-target shape as a bug we hit the same week in run-agent, where a harness ignored WORKDIR and wrote into a sibling repo while reporting status 0. It did not cause damage this session only because the workers happened to cd correctly.
Mitigation adopted in the meantime
Every evidence block must now include git rev-parse --show-toplevel, so "which repo is this?" is answered explicitly rather than assumed. That is a workaround, not a fix.
Suggested fix
Make cwd per-product rather than global. Options, in rough order of effort:
- Allow
cwd to be overridden per launch — e.g. AGENTCHATTR_CWD=/path ./macos-linux/start_claude.sh, since config_loader already supports AGENTCHATTR_* overrides.
- Add a product/workspace concept so a channel (e.g.
#pixelagents1) implies a default cwd.
- At minimum, surface each agent's
cwd in chat_who (see the identity/process-mapping issue) so a mismatch is visible rather than latent.
Related: the default cwd = "." and cwd = ".." values elsewhere in config.toml (e.g. codebuddy) have the same problem in a different direction.
Found while auditing the launcher scripts on 2026-07-27.
What happens
config.tomlsets the samecwdfor every agent:Confirmed live:
So on a session working on pixel_agents, all six agents started in orkestr8.
Why it matters
An agent that runs
git status,git logorgit rev-parse HEADwithoutcd-ing first reports on the wrong repository — and reports it confidently. "Tree clean, HEAD is X" is a true statement about a repo nobody asked about.This is the same silent-wrong-target shape as a bug we hit the same week in
run-agent, where a harness ignoredWORKDIRand wrote into a sibling repo while reportingstatus 0. It did not cause damage this session only because the workers happened tocdcorrectly.Mitigation adopted in the meantime
Every evidence block must now include
git rev-parse --show-toplevel, so "which repo is this?" is answered explicitly rather than assumed. That is a workaround, not a fix.Suggested fix
Make
cwdper-product rather than global. Options, in rough order of effort:cwdto be overridden per launch — e.g.AGENTCHATTR_CWD=/path ./macos-linux/start_claude.sh, sinceconfig_loaderalready supportsAGENTCHATTR_*overrides.#pixelagents1) implies a defaultcwd.cwdinchat_who(see the identity/process-mapping issue) so a mismatch is visible rather than latent.Related: the default
cwd = "."andcwd = ".."values elsewhere inconfig.toml(e.g.codebuddy) have the same problem in a different direction.