teqo-backup/docs
Francisco Solla a2b1d7d3eb feat(C226): frame estático nos vídeos da Central antes do play
Peça de vídeo publicada e com arquivo passa a mostrar um frame estático
leve no card público antes do play, sem nenhum request do arquivo antes
do gesto (`preload="none"` do S27 intacto).

O frame é um derivado privado em `contentMedia` (nome determinístico),
gerado por um dono só — `ensureContentPieceFrame` — chamado pelo job
C211 (que já tem o arquivo em disco: a extração sai de graça) e pela
rota `GET /conteudos/<slug>/frame` em miss, que cura o acervo anterior
sem backfill, fila, collection nova ou migration.

A porta reusa o gate de slug publicado e o proxy de mídia privada do
`/midia`: o kill switch fecha as duas de uma vez. Sem frame possível, o
slot mostra o estado neutro honesto com play e o marcador — nunca
imagem quebrada, nunca retry.

A projeção declara o frame por elegibilidade (vídeo com arquivo), não
pela existência do derivado, então a cura é invisível para o cache da
listagem e não há tag para bustar. O frame também aparece na página da
peça e no card da home (variante compacta de 124px, cena 05).

A passagem de design (tier primário) achou dois bugs que só o browser
mostra: o glyph de imagem quebrada numa requisição que falha, e — ao
esconder a imagem até decodificar — o frame sumindo para sempre no
caminho mais rápido (uma imagem que carrega antes da hidratação não
dispara `load` nem `error` de novo; o `ref` decide os dois desfechos).

Também: o guard de falha de e2e aceita `RegExp` e confere os paths
declarados antes do caso do favicon (todo 404 do browser traz a mesma
mensagem), o manifest de e2e mapeia os módulos novos, e o job C211
passa o arquivo que já tem em disco em vez de rebaixar o vídeo.

Design tier: central-conteudos-preview-frame-video
Closes #1352
2026-09-25 14:35:22 -03:00
..
campaign-kit feat(C196): skill /reels-tutoriais — captura mobile + composição de vídeo 2026-09-18 21:50:28 -03:00
campanha chore(OPS105): remove workaround de visão Qwen — visão nativa do deepseek-flash (Closes #985) 2026-09-14 02:37:10 -03:00
changelog feat(C226): frame estático nos vídeos da Central antes do play 2026-09-25 14:35:22 -03:00
design-refs Version UX Pilot design refs and map them to roadmap plans 2026-07-18 16:36:09 -03:00
ops fix(media): repara rota do Garage no deploy 2026-09-25 12:11:21 -03:00
plans feat(C226): frame estático nos vídeos da Central antes do play 2026-09-25 14:35:22 -03:00
postmortems docs(media): registra PR do reparo 2026-09-25 12:11:21 -03:00
research feat(C161): relatório Solla × Ceuci com votos por bairro (seções e locais de votação) 2026-09-14 04:36:17 -03:00
testing-audits docs(testing-audit): estado final protegido (draft fail-closed) — CI green no SHA final 2026-08-25 17:09:43 -03:00
AGENT-OPS.md fix(OPS71): ready-automerge de volta — AUTOMERGE_PAT rotacionado para o token longevo do gh + contrato/verificação (Closes #1176, #1177, #1184) 2026-09-19 03:07:29 -03:00
ARCHITECTURE.md chore: migrate .cursor/ references to .agents/ folder 2026-08-05 00:09:09 -03:00
CHANGELOG-AGENTS-HISTORY.md docs(OPS88): restaura HISTORY congelado (snapshot OPS85 intocado) 2026-08-24 16:12:44 -03:00
CUSTOMER.md style: prettier-format public-release docs 2026-07-31 13:16:22 -03:00
CUTOVER-MAIN-ONLY.md ops(OPS61): flip de issues pós-merge com PAT + gate do rollup checks + branch protection real no Forgejo 2026-08-18 17:45:54 -03:00
GUARDRAILS.md docs(audit-pass6): format — prettier normalization of the three artifacts 2026-08-25 11:29:03 -03:00
IMPROVE-APP-PLAN.md chore: public release tip — All Rights Reserved, sanitize field material 2026-07-31 12:53:12 -03:00
IMPROVE-CODE-QUALITY-PLAN.md docs(audit-pass6): format — prettier normalization of the three artifacts 2026-08-25 11:29:03 -03:00
PAYLOAD-REFERENCE.md chore: migrate .cursor/ references to .agents/ folder 2026-08-05 00:09:09 -03:00
roadmap.md ops(OPS91): sweep pós-cutover — textos vivos que apontavam o tracker ao Forgejo passam para o GitHub (Closes #841) 2026-08-24 15:08:14 -03:00
TECH-DEBT.md fix(OPS124): desabilita o plugin Payload do knip e explicita as exclusões (Closes #1094) 2026-09-16 19:55:07 -03:00
TESTING.md feat(OPS104): inicia o deploy no merge, com staging automático e produção com review 2026-09-14 03:07:59 -03:00