Conversation
|
Thanks for picking this up so quickly, and for testing it across providers. The Codex write-up is a good catch too. I wouldn't have spotted that newer models were skipping our instructions on this branch. I checked out the branch: the tests pass and the server typecheck is clean. Two things before I merge:
I'll comment here once the branch is updated. |
44b00df to
3f17cf7
Compare
|
One change from what I asked earlier: I had to resolve the #307 commit against pingdotgg#13547 during the rebase. Both Codex changes you described are already on the branch. |
When a project's repos sit inside its workspace folder, Claude Code leaves them out of the environment block it shows the model, and Cursor, Grok, OpenCode and Antigravity get no repo list at all. The model then treats the workspace folder as the project and searches it for repos. The multi-repo instructions now list every repo root, and say that the working directory is the workspace folder, not a repo, when it is not one of the roots. The session start input carries the full root list so adapters can tell whether the working directory is a repo root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7d77c68 to
ba234a6
Compare
|
Thanks, Logan. Both are done in ba234a6:
I also added a reactor test for worktree runs, fixed a few code comments so they match when the block is added, and updated the PR description to take out the merge steps. |
In a multi-repo project, the agent often isn't told which repos are in the project, so it searches the workspace folder for them. Details are in #309.
Fix
This is option A from #309. The runtime instructions now list the project's repos. In an isolated worktree run, they list the worktrees. The list is added in the same sessions that get #307's path block. For a project whose
.code-workspaceis in the home folder, the model sees:The last sentence is left out when the working directory is one of the repos. To tell these cases apart, multi-repo sessions now also receive the full repo list, in a new optional
repoRootsfield onProviderSessionStartInput.Codex gets the same block through
additionalContext. Codex caps each entry at 1,000 tokens, which it counts as 4 bytes per token. In the #309 project, the entry Codex received was 3,086 bytes.Testing
multi-repo-workspaceswithout this change.docs/folder listed in its.code-workspace. Asked whetherdocsis part of the project, Claude checked the workspace file and saiddocsis in the workspace but isn't a repo.Fixes #309
Model: Claude Opus 5.5, harness: Claude Code.