Development record
The opencode runner stamps the model it was asked for as the model that answered: internal/core/runner/opencode.go:85 sets ans.Model = o.model after parsing, so the route receipt's model field can never differ from the request, and a run routed through opencode to OpenRouter or a local server cannot show that a different model, provider or fallback served it.
The opencode runner stamps the model it was asked for as the model that answered: internal/core/runner/opencode.go:85 sets ans.Model = o.model after parsing, so the route receipt's model field can never differ from the request, and a run routed through opencode to OpenRouter or a local server cannot show that a different model, provider or fallback served it.
Found while investigating itd-2610161733316518; the runner is itd-2609201916056194's. The claude runner reads the served model from its events (internal/core/runner/claude.go), so the two runners disagree on what the field means.
Frontmatter
| id | iss-2610161709506207 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610161709506207-the-opencode-runner-stamps-the-model-it.md
open on GitHub ↗ · commit history ↗
References2
- itd-166A run records what it was actually run withrelated
- itd-2610161733316518One task done across a model matrix, re-runnablyrelated
mentions3
- itd-2609201916056194A role runs through the command-line harness the operator chose, and every fall back to the host is recorded
- spc-2610161949559050a-product-thinker-who-wants-to-know
- spc-2610170652111963each-run-should-record-the-model