RunnerModels in internal/models/models.go:42 hardcodes model lists for all runners including OpenCode. The OpenCode model list (line 79-88) contains 8 models across 4 providers.
Problem:
Model discovery or validation that runs against the OpenCode model list fires for all models, not just when the runner is opencode. This may cause unnecessary validation overhead or incorrect model resolution when other runners are in use.
Expected behavior:
Model discovery should be scoped to the active runner only. IsValidModelForRunner() (line 91) already filters by runner, but callers may be iterating the full RunnerModels map instead of querying by runner key.
Acceptance criteria:
RunnerModelsininternal/models/models.go:42hardcodes model lists for all runners including OpenCode. The OpenCode model list (line 79-88) contains 8 models across 4 providers.Problem:
Model discovery or validation that runs against the OpenCode model list fires for all models, not just when the runner is
opencode. This may cause unnecessary validation overhead or incorrect model resolution when other runners are in use.Expected behavior:
Model discovery should be scoped to the active runner only.
IsValidModelForRunner()(line 91) already filters by runner, but callers may be iterating the fullRunnerModelsmap instead of querying by runner key.Acceptance criteria:
TestTokenZeroingForNonClaudeor other model-related tests