mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-12 22:13:05 +00:00
docs(C216-FOLLOWUP-DRY): changelog da entrega (Related #1325)
This commit is contained in:
parent
92d975b8bf
commit
a041683352
1 changed files with 1 additions and 0 deletions
1
docs/changelog/2026-09-24-c216-followup-dry.md
Normal file
1
docs/changelog/2026-09-24-c216-followup-dry.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
**C216-FOLLOWUP-DRY — Débitos do simplify da terceira fonte do acervo (gate de mídia privada, scaffold da página e cards) (2026-09-24):** os três débitos do `/simplify` do C216 saem numa trilha ordenada (lock primeiro), sem migration/Consent/URL pública e sem mudança de contrato (Impeccable A — refactor byte-idêntico). **F1:** o gate fail-closed que cinco GETs de mídia privada re-escreviam (`getCampaignUser` + predicado do catálogo + validação de id + `findByID(...).catch(() => null)` + 404 silencioso com `overrideAccess: false`) vira dono único em `utilities/privateMedia/privateMediaGate.ts` (`loadPrivateMediaForActor`), com `isServable` (elegibilidade/kill switch do domínio, obrigatório por call site) e `artifactOf` (campo de mídia) — as rotas `reels/[id]/media/[kind]`, `acervo/gravacoes/[id]/arquivo`, `conteudos/[id]/arquivo` (GET) e `acervo/internet/[id]/arquivo|capa` ficam só com o HTTP (range/disposition/404 silencioso) e `loadWebSpeechMediaForActor`/`WebSpeechMediaField` saem de `speechPageData`; o double guard das gravações (`isRecordingStatus && canServeRecordingMedia`) e o `resolvePrivateMediaStaticDir` seguem intactos. **F2:** o heading de resultados dos três ramos da página do acervo vira `AcervoResultsHeading` local (uma escada de copy de tema com `itemNoun`); `controls` preserva o retry solto da Câmara e o wrapper retry+sort das outras duas (extraído em `AcervoResultsControls`). **F3:** `SpeechExcerpt` (3 sites: os dois cards e o provenance C192, com `quoted` e className por site) e `SpeechResultChips` (grupos com cap por grupo e `+N` somado; a Câmara mantém os 3 grupos, keywords normalizadas no call site) nascem em `components/campaign/speech/`. Verificação: unit novo `speechResultCards` (7 testes, incl. o caso sem `+N` e o provenance substituindo o excerpt), int full 980 verde, e2e `campaignSpeechAcervo` + `campaignReel` verdes (42), `pnpm gate:fast`, knip, cycles e format verdes. A triage dos dois revisores do simplify deferiu com gatilho no `*-impl.md` o `select` não chaveado à collection, as 6 cópias do 404 silencioso + `Number(id)` nas rotas e o harness de router duplicado nos unit specs; 1 débito absorvido no próprio plano (cláusula do D3) e 4 descartes (naming/ordem).
|
||||
Loading…
Reference in a new issue