This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

A runner takes one model per machine, so a model matrix cannot be configured: internal/core/runner/config.go keeps a single Model per enabled runner, readable only from the machine layer, and roles name runners rather than models. Building one intent with several opencode-served models, or reviewing it with several runner-served reviewers, would mean rewriting the person's machine file between copies, and two copies could never run at once. itd-2610161733316518 needs it.

issueresolvedminoriss-2610161801358637

A runner takes one model per machine, so a model matrix cannot be configured: internal/core/runner/config.go keeps a single Model per enabled runner, readable only from the machine layer, and roles name runners rather than models. Building one intent with several opencode-served models, or reviewing it with several runner-served reviewers, would mean rewriting the person's machine file between copies, and two copies could never run at once. itd-2610161733316518 needs it.

The grammar chosen (2026-10-17)

The override keeps one flag and one parser and gains a runner rung: --route <role>=runner:<name>[@<provider>/<model>]. The runner: prefix marks the rung, and no tier is spelt with a colon, so every route the tier rung admitted reads as it did. @ keeps its meaning of where the model comes from: a provider connection on the tier rung, a provider's model on the runner rung. Without @ the runner keeps its machine model. Three alternatives were rejected. A bare runner name in the tier's place (implementer=opencode@...) puts a runner and a tier in one slot with nothing to tell them apart. The runner in the connection's place (implementer=frontier@runner:opencode/...) needs a tier that chooses nothing. A separate --runner flag is the second override the remedy rules out. Runners are dispatched only by the build loop's step today, so the rung is honoured on abcd implement step; a delegating verb, which sends its agent to the harness or a provider, refuses it, and the step refuses a tier route.

Frontmatter

idiss-2610161801358637
typeissue
lifecycleresolved
severityminor

References1

mentions3