Skip to content

senior-dev: plain folders start again, and shell model names resolve - #1530

Merged
AbirAbbas merged 4 commits into
devfrom
fix/senior-dev-plain-folder
Sep 26, 2026
Merged

AbirAbbas merged 4 commits into
devfrom
fix/senior-dev-plain-folder

Conversation

@AbirAbbas

Copy link
Copy Markdown
Collaborator

Follow-up to #1488. Two senior-dev defects a real-model run of the merged build (dev dd0fcc654) found.

What was wrong

  • A plain folder (no git) crashed before its first model call. codeaf senior-dev --dir <plain folder> … exited 2 at bootstrap with read start-time ignore list: open …/ignored-at-start: no such file or directory, and the chat road's run worker hit the same thing. Folder preparation returned on the plain road (and the gitignored-subfolder road) before writing the start-time ignore list, while both roads still handed its path to the child. This came from senior-dev: a coding agent built into codeaf takes a whole task, in the folder itself #1488's review fixes, after the plain-folder road had last been checked.
  • --high needed the service prefix on the shell road. --high z-ai/glm-5.3-flash failed after launch with models.dev: provider "z-ai" not found; only openrouter/z-ai/glm-5.3-flash worked.

What changed

  • Folder preparation writes an empty, readable ignore list before returning on the plain road. A repository's list is written and honoured as before, and an unreadable list still refuses eager commits.
  • The shell resolves --high and --asked through the same model matcher and connected-service check the chat's proposals use, and hands the child the qualified id. A bare OpenRouter id, a service-prefixed id and a short crew word all work. A model no connected service can serve is refused before the child starts, naming /crew and codeaf connect. The manual says what --high accepts.

How it was checked

  • New tests start the real senior-dev child in a plain folder on the shell road and as the chat's run worker, and run the shell parse path with bare, prefixed and short model words against a local model stub. Each failed on dd0fcc654 first.
  • Real model (OpenRouter, z-ai/glm-5.3-flash, about $0.002):
    • Plain folder with a bare model id: exit 0, worked in place, committed nothing. Its own verification ran the project's 2 tests, and they pass when rerun independently.
    • Git repo with a bare model id: exit 0. The work sits on its checked-out task branch with main unchanged and a clean tree. The commit carries the run's identity, no .pyc files were committed, and the tests pass when rerun.
  • Build, vet, the six-platform cross-build, make test-laws, the manual gates and the env-pin law all pass. The change entry is included.

🤖 Generated with Claude Code

AbirAbbas and others added 3 commits September 25, 2026 21:37
On dd0fcc6 (#1488 merged) a senior-dev run in a folder with no git crashed at
bootstrap before its first model call: "read start-time ignore list: open
.../ignored-at-start: no such file or directory". Folder preparation returned on
the plain road (and the gitignored-subfolder road, which takes it too) before
writing the start-time ignore list, while the shell and the chat both still
handed its path to the child, which refuses an unreadable list. Preparation now
writes an empty, readable list there first, so the run works in place and
commits nothing again; a repository's list is written and honoured as before.
Tests start the real child on the shell road and as the chat's run worker in a
plain folder.

Found by a real-model run of the merged build.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
codeaf senior-dev --high z-ai/glm-5.3-flash failed after launch with
'models.dev: provider "z-ai" not found' because the value went to senior-dev as
typed and its first segment was read as a provider; only openrouter/z-ai/...
worked. The shell now resolves --high and --asked through the same model
matcher and connected-service check the chat's proposals use, and hands the
child the qualified id. A bare OpenRouter id, a service-prefixed id and a short
crew word all work; a model no connected service can serve is refused before
the child starts, naming /crew and codeaf connect. The manual says what --high
accepts.

Found by a real-model run of the merged build.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@AbirAbbas
AbirAbbas marked this pull request as ready for review September 26, 2026 01:58
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@AbirAbbas
AbirAbbas merged commit c34a3a7 into dev Sep 26, 2026
2 of 3 checks passed
@AbirAbbas
AbirAbbas deleted the fix/senior-dev-plain-folder branch September 26, 2026 02:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant