Skip to content

Pinning a model version becomes visible, and Grok Build joins as a third agent - #191

Open
astetic-dev wants to merge 1 commit into
mainfrom
feature/model-version-pinning-and-grok
Open

Pinning a model version becomes visible, and Grok Build joins as a third agent#191
astetic-dev wants to merge 1 commit into
mainfrom
feature/model-version-pinning-and-grok

Conversation

@astetic-dev

Copy link
Copy Markdown
Owner

Closes #190.

Three things that turned out to share one code path.

Pinning a version already worked, but nothing showed it. The model field is free text and claude --model takes a full model name; the suggestion list only offered aliases. claude cannot enumerate its models (no models subcommand, no catalogue on disk), so the names come from models.json in the config folder — seeded once, never touched by the code afterwards, re-read on every fill so an edit counts during a running session, and what you type yourself is appended after a successful start. A list in the source is what #92 removed on purpose.

agy models was parsed wrong. It prints two tab-separated columns now, and the whole line went to --model. Agy accepts an unknown model silently and falls back to its default, so this failed invisibly. model_from_line now knows the shape per agent.

Grok Build is a third agent. --session-id, --resume and the same six --permission-mode values as claude (measured on grok 1.0.13); no -n, and --rules instead of --append-system-prompt. Its transcript is found by session id, because grok URL-encodes the working directory and falls back to a slug plus an undocumented hash above 255 bytes.

Verified

  • 141 tests pass, 11 of them new.
  • The two #[ignore] integration tests run against the real agy and grok binaries and come back clean.
  • Not smoke-tested in the window itself; the two <option> lines mirror the existing agy ones and node --check is green.

…ird agent

Refs #190.

Pinning to an exact model version already worked -- the model field is free text
and `claude --model` takes a full model name -- but the suggestion list only ever
offered aliases, so you had to know it was possible and how the name was spelled.
Those names now come from models.json in the config folder: a separate file,
because #92 removed a list in the source for the good reason that it goes stale
on every model release. Adding a model costs no rebuild, counts during a running
session, and whatever you type yourself is appended after a successful start.

Antigravity turned out to be broken. `agy models` has been printing two
tab-separated columns instead of a bare slug for some time, and the whole line
went to the CLI as the --model value. Agy accepts an unknown model without an
error and quietly falls back to its default, so you were running on the wrong
model with nothing saying so -- exactly the gap #92 warned about in its own
comment. The parser now knows per agent which shape it is reading.

Grok Build joins as a full third agent. It sits close to claude: --session-id,
--resume and the same six values behind --permission-mode (measured from
`grok --help` 1.0.13). What differs: there is no -n, and the equivalent of
--append-system-prompt is called --rules. Its transcript is looked up by session
id rather than by path, because grok URL-encodes the working directory and falls
back to a slug plus an undocumented hash above 255 bytes.
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.

Pinning a model version is invisible, agy models is parsed wrong, and Grok Build is missing as an agent

1 participant