Skip to content

fix(models): suppress static registry models when live catalog is synced (#11829) - #11919

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.51from
HouMinXi:fix/11829-static-catalog-suppression-synced-connections
Aug 28, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.51from
HouMinXi:fix/11829-static-catalog-suppression-synced-connections

Conversation

@HouMinXi

Copy link
Copy Markdown
Contributor

Fixes #11829. Suppresses static PROVIDER_MODELS entries when an active connection has an authoritative live synced catalog. Includes TDD test coverage. ⚠️ base-red inherited: #11449

…ced (diegosouzapw#11829)

Suppress static registry entries in /v1/models catalog when a provider
has active connections with an authoritative live synced catalog.
Preserves static fallback entries when no live catalog is synced.

Signed-off-by: Minxi Hou <[EMAIL_REDACTED]>
@HouMinXi
HouMinXi requested a review from diegosouzapw as a code owner August 28, 2026 16:18
@diegosouzapw
diegosouzapw merged commit 3d2832b into diegosouzapw:release/v3.8.51 Aug 28, 2026
7 of 16 checks passed
diegosouzapw added a commit that referenced this pull request Aug 28, 2026
diegosouzapw added a commit that referenced this pull request Aug 28, 2026
…#11876 shipped on release/v3.8.51 (#11944)

Eleven PRs landed on release/v3.8.51 while the branch carried fifteen base reds, and
nine more red tests hid among them. None is a defect in the shipped code; each test
still encoded the contract that the merged PR deliberately replaced:

- openai-to-claude finish deferral (dd35750, #11933): a finish chunk that carries no
  usage is now held until the end-of-stream flush that production performs
  (open-sse/utils/stream.ts flush -> translateResponse(..., null, state)). The drivers in
  stream-markdown-token-boundary, translator-tool-call-shim and
  gemini-malformed-function-call-finish-reason-2462 fed the finish chunk and asserted
  the terminal events immediately; they now mirror the flush. Assertions unchanged.
- authoritative live catalog (3d2832b, #11919 fixes #11829): a synced catalog replaces
  the static registry, so model-lifecycle-integration no longer expects the static-only
  gpt-5.6-sol row to survive a sync. The #8627 contract the file guards (stale chat rows
  suppressed, typed media retained) is untouched.
- provider asset provenance (#11876): the unit shards check out with depth 1. The fixture
  pinned a historical commit as auditedCommit (absent on a shallow clone), the
  "binds auditedCommit" case relied on the repository root commit (the grafted HEAD on
  a shallow clone, which matches the physical snapshot), and the real-manifest case
  needs the audited commit fetched. The fixture now audits HEAD, the mismatch case
  builds a dangling empty-tree commit (no ref written), and the real-manifest case
  skips only on a shallow checkout that lacks the commit - the gate itself keeps
  running on both fetch-depth-0 rails, which the next test asserts.

All five files pass locally (30, 11, 38, 3 and 18 tests); lint with the frozen
suppressions is clean.
hammadyasser2010-svg added a commit to hammadyasser2010-svg/OmniRoute that referenced this pull request Sep 15, 2026
commit f4c099b
Author: Markus Hartung <mail@hartmark.se>
Date:   Fri Aug 28 16:21:51 2026 -0300

    chore(changelog): add missing fragments for diegosouzapw#11919/diegosouzapw#11918/diegosouzapw#11916
@HouMinXi
HouMinXi deleted the fix/11829-static-catalog-suppression-synced-connections branch September 16, 2026 13:47
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…ced (diegosouzapw#11829) (diegosouzapw#11919)

Suppresses stale static registry models (including effort-tier variants) for any provider whose active connection has an authoritative live synced catalog, not just providers using exclusive-synced-listing — closing a gap where a connection with providerUsesAuthoritativeLiveCatalog kept serving both the live-synced models and the stale static rows side by side. Closes diegosouzapw#11829. 4/4 focused tests passing. Thanks!
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
diegosouzapw#11919 and diegosouzapw#11876 shipped on release/v3.8.51 (diegosouzapw#11944)

Eleven PRs landed on release/v3.8.51 while the branch carried fifteen base reds, and
nine more red tests hid among them. None is a defect in the shipped code; each test
still encoded the contract that the merged PR deliberately replaced:

- openai-to-claude finish deferral (590c0cf, diegosouzapw#11933): a finish chunk that carries no
  usage is now held until the end-of-stream flush that production performs
  (open-sse/utils/stream.ts flush -> translateResponse(..., null, state)). The drivers in
  stream-markdown-token-boundary, translator-tool-call-shim and
  gemini-malformed-function-call-finish-reason-2462 fed the finish chunk and asserted
  the terminal events immediately; they now mirror the flush. Assertions unchanged.
- authoritative live catalog (c2cf93c, diegosouzapw#11919 fixes diegosouzapw#11829): a synced catalog replaces
  the static registry, so model-lifecycle-integration no longer expects the static-only
  gpt-5.6-sol row to survive a sync. The diegosouzapw#8627 contract the file guards (stale chat rows
  suppressed, typed media retained) is untouched.
- provider asset provenance (diegosouzapw#11876): the unit shards check out with depth 1. The fixture
  pinned a historical commit as auditedCommit (absent on a shallow clone), the
  "binds auditedCommit" case relied on the repository root commit (the grafted HEAD on
  a shallow clone, which matches the physical snapshot), and the real-manifest case
  needs the audited commit fetched. The fixture now audits HEAD, the mismatch case
  builds a dangling empty-tree commit (no ref written), and the real-manifest case
  skips only on a shallow checkout that lacks the commit - the gate itself keeps
  running on both fetch-depth-0 rails, which the next test asserts.

All five files pass locally (30, 11, 38, 3 and 18 tests); lint with the frozen
suppressions is clean.
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.

fix(providers): static provider registry entries leak into GET /v1/models when active connections have a live synced catalog

2 participants