iso-harness v0.6.0
OpenCode emitter falls back to iso-route resolved map
Mirrors the Claude emitter's resolution pattern on the OpenCode target. When an agent source file has no inline `targets.opencode.model` (and no top-level `model:`), the OpenCode emitter now reads `opencode.json`'s `agent..model` field — written by `@razroo/iso-route` before iso-harness runs — and stamps that onto the generated `.opencode/agents/.md` frontmatter.
Resolution order (OpenCode)
- `targets.opencode.model` (inline on the iso agent source)
- Top-level `model:` on the iso agent source
- iso-route's resolved map (`opencode.json`'s `agent..model`)
- Nothing — no `model:` stamped on the emitted agent file
This matches the Claude emitter shipped in 0.4.0. Agents that hard-pin a model continue to own that decision; agents that delegate model choice to `models.yaml` no longer need their inline override duplicated.
Backwards compatibility
Behavior when iso-route hasn't run (no prior `opencode.json`) is unchanged — no model stamped unless the agent source provides one.
Also collapses a duplicate `opencode.json` read inside `emitOpenCode`: the file is now loaded once at the top and reused for both the per-agent lookup and the later merge-write.