Skip to content

feat(workflows): collapse oversized model catalogs in config/validate + config --models; ACP deps currency - #373

Merged
VikashLoomba merged 5 commits into
mainfrom
feat/config-model-list-collapse
Aug 19, 2026
Merged

feat(workflows): collapse oversized model catalogs in config/validate + config --models; ACP deps currency#373
VikashLoomba merged 5 commits into
mainfrom
feat/config-model-list-collapse

Conversation

@VikashLoomba

Copy link
Copy Markdown
Collaborator

Feature — config/validate model-list collapse (the ask)

Harnesses with large model catalogs (pi, opencode advertise hundreds) dumped every model id inline in the config / validate option tables and in --json, flooding an authoring agent's context. Now any select option above 24 leaf choices (in practice the model option) renders as a grouped summary (total + per-provider/group counts) on both the human table and --json; small catalogs (claude, codex, and every effort/mode/boolean option) are unchanged and print verbatim.

The full list is reachable only through the new config <harness> --models[=<filter>]: bare prints the provider/group breakdown (no leaf ids), =<provider|substring|/regex/> prints the matching leaf ids. There is deliberately no unfiltered full-leaf dump on any surface — neither --json nor --models can flood context. The collapse happens only at the CLI print boundary; the in-memory report and the programmatic probeHarnessConfig() / validateWorkflowScript() returns stay complete, so configOptions validation still checks against every advertised model.

Docs moved with it: the authoring skill reference (+ regenerated author-workflow prompt), docs/specs/config-options.md, the workflows README, and CLI help. New tests in packages/workflows/test/config-model-collapse.test.ts (+ updated config.test.ts for the new pi --json contract). Live-verified: opencode's 601-model catalog collapses to a one-line summary; --models=deepseek returns the matching leaves; claude/codex unchanged.

ACP dependency currency (rode along — the gate blocks all merges when stale)

Mechanical bumps, each classified against the runbook's surface map:

  • claude-agent-acp 0.69.0 → 0.70.0 — its only change ("switch providers for loaded Claude sessions" #1002) is adapter-internal; the providers/* wire we consume is SDK-defined (unchanged at 1.3.0) and our client already re-issues providers/set on reconstructed connections. Docs citations moved.
  • claude-agent-sdk override 0.3.234 → 0.3.235 — "parity with Claude Code v2.1.235", no API change; wrapped behind the adapter, never imported directly.
  • codex-acp upstream sync → 3d56827 — non-squash subtree merge of upstream release 1.5.0 (#409), a release-please version/CHANGELOG bump only, no source change.

Dependency gate, attribution gate, manifest check, build, typecheck all green; full test matrix green (every package 0 fail); codex-acp fork suite 914 pass; pre-push live 4-backend e2e green.

⚠️ Merge with a MERGE COMMIT (not squash) — the branch contains the non-squash codex-acp subtree merge; squashing rewrites it and breaks the dependency gate's upstream-ancestry invariant on main.

acp-release-bot Bot and others added 5 commits August 18, 2026 15:15
Co-authored-by: acp-release-bot[bot] <246668977+acp-release-bot[bot]@users.noreply.github.com>
…e; add config --models

Harnesses with large model catalogs (pi, opencode advertise hundreds) dumped every
model id inline in the config/validate option tables and in --json, flooding an
authoring agent's context. Any select above 24 leaf choices (in practice the model
option) now renders as a grouped summary (total + per-provider/group counts) on both
the human table and --json; small catalogs (claude, codex) are unchanged.

The full list is reachable only via the new `config <harness> --models[=<filter>]`:
bare prints the provider/group breakdown, =<provider|substring|/regex/> prints matching
leaf ids. No unfiltered full-leaf dump on any surface. The collapse is applied only at
the CLI print boundary; the in-memory report and probeHarnessConfig()/validateWorkflowScript()
returns stay complete, so configOptions validation still checks every advertised model.
…d56827) into packages/codex-acp

# Conflicts:
#	packages/codex-acp/CHANGELOG.md
#	packages/codex-acp/package-lock.json
#	packages/codex-acp/package.json
@VikashLoomba
VikashLoomba enabled auto-merge August 19, 2026 00:41
@VikashLoomba
VikashLoomba merged commit e2d27ae into main Aug 19, 2026
1 check passed
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