Skip to content

fix(sse): a partial OpenCode account sync no longer rejects the other keyless free models (#15540) - #16042

Draft
diegosouzapw wants to merge 1 commit into
release/v3.8.52from
fix/15540-opencode-partial-live-catalog
Draft

diegosouzapw wants to merge 1 commit into
release/v3.8.52from
fix/15540-opencode-partial-live-catalog

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

⚠️ base-red inherited: #15306

What

A real OpenCode connection whose model sync returns a single model made that list the authoritative live catalog for opencode. Combo targets addressed as oc/<model> were then skipped with model is not in the live catalog, even though the keyless Free tier serves them.

Reporter's log (discussion #15540, clean install, only free providers): ModelSync: OpenCode Account 1: ✓ 1 models, then 9 of 10 auto/claude-opus targets skipped with that message; every request ended in 503.

Change

opencode registry entry gets liveCatalogAuthoritative: false (the same opt-out vertex, command-code and oneminai already use), so a partial discovery informs metadata but never rejects a registry model.

Test (TDD)

tests/unit/opencode-free-synced-catalog-and-no-connection-15540.test.ts

  • A (red before, green after): a connection with a one-model synced catalog; oc/ and opencode/ free models must resolve. Before the change oc/muse-spark-1.2 failed with "not available in the active live catalog for provider 'opencode'".
  • B (guard, passes before and after): with no opencode row and the combo's forced noauth pin, the synthetic keyless credentials still come back.

Ran with 160 neighbouring catalog/route tests: all pass.

Not covered

The reporter's second symptom (all 10 targets no credentials available or model excluded after deleting the connection) is not reproduced by test B, so this PR does not claim to fix it. It stays open in discussion #15540 and #15889 (missing log lines). The 403 from the first report was not present in these logs either.

Refs #15540. Does not close it.

… keyless free models (#15540)

A real OpenCode connection whose model sync returned a single model made that
list authoritative, so combo targets addressed as oc/<model> were skipped with
"model is not in the live catalog" even though the keyless free tier serves
them. OpenCode now opts out of the authoritative live catalog.

Test: with a one-model synced catalog, oc/ and opencode/ prefixed free models
resolve; with no opencode row, the forced noauth pin still yields the
synthetic credentials (guard, did not reproduce the reporter's 503).

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant