Skip to content

test(release): align five suites with the contracts #11933, #11919 and #11876 shipped on release/v3.8.51 - #11944

Merged
diegosouzapw merged 1 commit into
release/v3.8.51from
fix/v3851-drift-reds
Aug 28, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.51from
fix/v3851-drift-reds

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Contexto

Depois do sync-back da v3.8.50, 11 PRs entraram na release/v3.8.51 com a base ainda carregando 15 vermelhos — e mais 9 testes vermelhos se esconderam entre eles (medido na ponta pura 33763f06cc). Nenhum é defeito do código que entrou; cada teste ainda pinava o contrato que a PR mergeada substituiu de propósito.

O que muda

suíte contrato novo mudança
stream-markdown-token-boundary (2), translator-tool-call-shim (2), gemini-malformed-function-call-finish-reason-2462 (4) dd35750e5f (#11933): finish sem usage é adiado até o flush de fim de stream que a produção faz (open-sse/utils/stream.ts → translateResponse(…, null, state)) os drivers passam a espelhar o flush; asserções intactas
model-lifecycle-integration (1) 3d2832b836 (#11919, fixes #11829): catálogo sincronizado autoritativo substitui o registro estático a linha estática gpt-5.6-sol não sobrevive ao sync; o resto do contrato #8627 (chat obsoleto suprimido, mídia tipada mantida) segue igual
check-provider-asset-provenance (4) #11876 — os shards de unit usam checkout raso fixture audita HEAD; o caso "binds" cria um commit dangling de árvore vazia (sem ref); o caso do manifesto real só pula em checkout raso sem o commit — o gate continua nos dois trilhos com fetch-depth: 0 (asserido pelo teste seguinte)

Validação

Local: 30/30, 11/11, 38/38, 3/3, 18/18; eslint --suppressions-location … limpo nos 5 arquivos. Esta PR é complementar à #11940 (varredura dos 13 pré-existentes); juntas zeram os shards de unit da .51 menos a dívida de ESLint (#11924).

⚠️ base-red inherited: #11924 (ESLint 280 erros pré-existentes na .51)

…#11876 shipped on release/v3.8.51

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.
@diegosouzapw
diegosouzapw merged commit 8dfdd95 into release/v3.8.51 Aug 28, 2026
14 of 22 checks passed
@diegosouzapw
diegosouzapw deleted the fix/v3851-drift-reds branch August 28, 2026 21:10
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

1 participant