|
411 | 411 | - [ ] Provisionar object storage em desenvolvimento isolado. |
412 | 412 | - [ ] Provisionar workflow durável em desenvolvimento isolado. |
413 | 413 | - [ ] Criar seeds mínimos para workspace, projeto, source e OutputSpec. |
414 | | -- [ ] Configurar lint, typecheck, unit, integration, golden e E2E no CI. |
| 414 | +- [x] Configurar audit, typecheck, unit, migration check, contract gate, build e integrações Postgres/API no CI. Evidência: `.github/workflows/ci.yml`. |
| 415 | +- [ ] Configurar lint no CI após selecionar regras e corrigir o baseline da v1. |
| 416 | +- [ ] Configurar golden tests no CI após existir fixture/render determinístico. |
| 417 | +- [ ] Configurar E2E no CI após existir jornada vertical F0 executável. |
415 | 418 | - [ ] Criar telemetria comum com trace, job, workspace e project IDs. |
416 | 419 | - [ ] Fazer upload de fixture, normalizar, criar plano estático e renderizar proxy. |
417 | 420 | - [ ] Reconstruir o proxy usando apenas banco, object storage e manifest. |
@@ -2296,7 +2299,7 @@ Pendências deliberadas: |
2296 | 2299 |
|
2297 | 2300 | ### Slice F0-007 — Upgrade seguro de Next.js e React |
2298 | 2301 |
|
2299 | | -**Status:** concluído em 12 de julho de 2026; ainda não commitado. |
| 2302 | +**Status:** concluído e publicado em 12 de julho de 2026 no commit `c350181`. |
2300 | 2303 |
|
2301 | 2304 | Entregas: |
2302 | 2305 |
|
@@ -2325,5 +2328,45 @@ Evidências: |
2325 | 2328 | Pendências deliberadas: |
2326 | 2329 |
|
2327 | 2330 | - migrar aliases/externals de Remotion/FFmpeg para Turbopack antes de remover `--webpack`; |
2328 | | -- adicionar `npm audit` como gate formal de CI; |
2329 | 2331 | - atualizar TypeScript/Prisma e demais libs somente em slices próprios, com seus testes de migração. |
| 2332 | + |
| 2333 | +### Slice F0-008 — Gate de qualidade e segurança no CI |
| 2334 | + |
| 2335 | +**Status:** concluído em 12 de julho de 2026; ainda não commitado. |
| 2336 | + |
| 2337 | +Entregas: |
| 2338 | + |
| 2339 | +- workflow GitHub Actions para pushes em `main` e pull requests; |
| 2340 | +- permissões mínimas `contents: read` e cancelamento de execuções obsoletas da mesma referência; |
| 2341 | +- actions oficiais fixadas por commit SHA, com indicação da major usada; |
| 2342 | +- Node.js 22 e instalação determinística via `npm ci`/`package-lock.json`; |
| 2343 | +- `npm audit --audit-level=low` como gate bloqueante e comando local `security:audit`; |
| 2344 | +- typecheck, testes unitários, contratos públicos e migration/schema check; |
| 2345 | +- Postgres 16 efêmero com health check e migration deploy real; |
| 2346 | +- build de produção seguido pelas integrações Prisma e API pública; |
| 2347 | +- documentação do gate e runtime recomendado no README. |
| 2348 | + |
| 2349 | +Critério de falha: |
| 2350 | + |
| 2351 | +- qualquer comando retorna status diferente de zero e bloqueia o job; |
| 2352 | +- nenhuma credencial externa é necessária: banco e credenciais de integração são efêmeros; |
| 2353 | +- o job possui timeout de 20 minutos e não publica artifacts nem recebe permissão de escrita. |
| 2354 | + |
| 2355 | +Evidências locais: |
| 2356 | + |
| 2357 | +- reinstalação limpa com `npm ci` aprovada; |
| 2358 | +- YAML válido e workflow aprovado pelo `actionlint` 1.7.12; |
| 2359 | +- `npm audit --audit-level=low`: zero vulnerabilidades; |
| 2360 | +- 32 testes, typecheck, contratos e migration check aprovados; |
| 2361 | +- migration deploy real, build Next 16 e integrações Prisma/API aprovados. |
| 2362 | + |
| 2363 | +Risco identificado: |
| 2364 | + |
| 2365 | +- `npm ci` alerta que `fluent-ffmpeg@2.1.3` não possui mais suporte; a substituição por um adapter mantido ou por chamadas diretas ao FFmpeg deve ocorrer antes de promover o media worker a produção. |
| 2366 | + |
| 2367 | +Pendências deliberadas: |
| 2368 | + |
| 2369 | +- lint depende da seleção de regras e correção do baseline legado; |
| 2370 | +- golden depende de fixture e render determinísticos; |
| 2371 | +- E2E depende da primeira jornada vertical completa; |
| 2372 | +- configurar a proteção da branch no GitHub para exigir o check `quality` é uma ação administrativa após a publicação do workflow. |
0 commit comments