Repository navigation
v1.45.0 — the zcode adapter, and a roster with no unknowns
Added — the zcode adapter
zcode is a full roster adapter. Headless launch is zcode --prompt=<text> --mode yolo --cwd <root>, verified against the real binary (zcode-app-cli 3.7.7-13 / zcode-runtime 0.16.3) by parley agents verify --full.
Two shapes in that command line are not stylistic:
- The equals form is required.
zcode --prompt "-leading dash"fails with "Option '--prompt' argument is ambiguous", so any prompt whose first character is a dash would be lost. Placeholder substitution happens inside the argv element, with no shell involved, so a prompt containing quotes, newlines or flag-lookalikes still arrives as exactly one argument. --mode yolois the autonomous-write mode, and it is not a sandbox.--cwdis a working directory, not an enforced boundary, so the adapter declares an emptyScoperather than claimingworkspace.
zcode has no --model and no effort flag (--model, --settings and --max-turns all exit 1). A new NoModelBinding spec bit makes that fail-closed at the source: ResolveLaunchArgs strips a config-supplied --model/effort flag for such adapters, so roster show, agents list and the resolved argv cannot disagree, and a flag the CLI rejects can never reach the launch.
Added — MODEL/EFFORT read from the agent's own config
Three roster rows reported unknown for the same structural reason: the CLI has no flag for the value, so no parley layer can bind one and the process reads its own config instead. Those rows now report what that file says, under two new STATUS terms — model-from-config and effort-from-config, never plain ok.
| Adapter | Read from | Resolves |
|---|---|---|
zcode |
~/.zcode/cli/config.json → model.main; ~/.zcode/v2/config.json → reasoning.defaultVariant |
model + effort |
kimi |
~/.kimi-code/config.toml → [thinking] effort (only when enabled) |
effort |
opencode |
opencode.jsonc → provider.*.models.<bound-model>.options.reasoningEffort |
effort |
This is not a loosening of the roster contract. That contract stops a parley-side declaration being shown as if the argv carried it; this reads the file the agent itself reads at launch, which is a different source and the actual one. A model = written into agents.toml for an adapter that cannot carry it still never reaches the cell — pinned by test. --explain names the file it read and states the limitation: the file can change before launch and none of these CLIs echo the model back, so the value is not confirmable after a run.
kimi and opencode bind their model in argv, so the resolver deliberately returns no model for them — a config default_model the launch overrides must not appear.
Fixed — three unknown cells that were not unknowable
hermeseffort was never passed. It is now bound in argv (--reasoning {effort}) instead of inherited silently fromconfig.yaml.- codex effort read as
unknown.EffectiveEffortdid not recognise codex's own-c model_reasoning_effort=<level>form. - Model metadata gaps:
fireworksas a gateway prefix,inklingas Thinking Machines Lab.
Result: parley roster show --scope machine reports zero unknown cells.
Ships with parley-deck-skill 2.9.0, which adds zcode as an install target and documents the two new STATUS terms.
Gates: go build ./..., go vet ./..., go test ./... green (26 packages); skill npm test 387 pass / 0 fail.