feat: Automation Contract v1.3 -- metrics agregado no nível da run #80

Merged
jhony75 merged 2 commits from feature/automation-run-metrics into develop 2026-10-14 15:10:49 -03:00
Owner

O que é

Campo metrics (JSON livre, opcional) no nível da run em POST /api/automation/runs, persistido em TestRun.metrics e devolvido em GET /api/runs/{id}. Pedido do dono do produto: o neurogram-runner agora mede por run duração, espera na fila, CPU média/pico e RAM de pico, e esses números precisam de um lugar que não seja repetir em cada resultado.

Detalhes

  • Aditivo: payloads v1/v1.1/v1.2 sem o campo continuam idênticos (metrics: null na run).
  • Dict solto, sem validação de chaves/tipos (mesma política do metrics por resultado da v1.1, que continua separado em TestRunStep.metrics).
  • Reenvio idempotente (deduplicated: true) mantém o valor da primeira ingestão.
  • Sem tela por enquanto (só API/banco), como combinado.
  • Migration 0b41b961aa5b (add column nullable, round-trip upgrade/downgrade e alembic check ok; restore drill ok).
  • --expect-alembic do CI e o head do smoke test atualizados; docs/openapi.json, frontend/src/types/api.ts, AUTOMATION_CONTRACT.md e BACKLOG.md atualizados.

Verificação

  • Backend: 278 passed (4 testes novos: round-trip, default nulo/run manual, independência do metrics por resultado, dedup mantém o original).
  • Frontend: tsc --noEmit limpo.

🤖 Generated with Claude Code

## O que é Campo `metrics` (JSON livre, opcional) no **nível da run** em `POST /api/automation/runs`, persistido em `TestRun.metrics` e devolvido em `GET /api/runs/{id}`. Pedido do dono do produto: o neurogram-runner agora mede por run duração, espera na fila, CPU média/pico e RAM de pico, e esses números precisam de um lugar que não seja repetir em cada resultado. ## Detalhes - Aditivo: payloads v1/v1.1/v1.2 sem o campo continuam idênticos (`metrics: null` na run). - Dict solto, sem validação de chaves/tipos (mesma política do `metrics` por resultado da v1.1, que continua separado em `TestRunStep.metrics`). - Reenvio idempotente (`deduplicated: true`) mantém o valor da primeira ingestão. - Sem tela por enquanto (só API/banco), como combinado. - Migration `0b41b961aa5b` (add column nullable, round-trip upgrade/downgrade e `alembic check` ok; restore drill ok). - `--expect-alembic` do CI e o head do smoke test atualizados; `docs/openapi.json`, `frontend/src/types/api.ts`, `AUTOMATION_CONTRACT.md` e `BACKLOG.md` atualizados. ## Verificação - Backend: 278 passed (4 testes novos: round-trip, default nulo/run manual, independência do `metrics` por resultado, dedup mantém o original). - Frontend: `tsc --noEmit` limpo. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: Automation Contract v1.3 -- campo metrics agregado no nivel da run
Some checks failed
EEG QA CI / Detectar o que mudou (pull_request) Successful in 9s
EEG QA CI / Frontend (pull_request) Failing after 1m14s
EEG QA CI / Backend (pull_request) Successful in 1m55s
EEG QA CI / Build e publicação de imagens (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
539b774b0d
Runner passou a medir duracao, espera na fila e pico de CPU/RAM por run;
TestRun.metrics (JSON livre, opcional) guarda isso sem validacao de chaves,
devolvido em GET /api/runs/{id}. Aditivo: payloads v1/v1.1/v1.2 inalterados.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fix: sobe tinypool pra versao corrigida (npm audit critico bloqueava o CI do frontend)
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 6s
EEG QA CI / Backend (pull_request) Successful in 2m0s
EEG QA CI / Frontend (pull_request) Successful in 2m57s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 3m41s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
b13cf27e78
Novos advisories criticos (GHSA-5gmw-xhrv-c9v3, GHSA-85c8-ppgw-ccpr) em
tinypool <=2.1.1, dependencia transitiva do vitest 3.2.6 (so ferramenta de
teste, nao vai pro bundle). A unica correcao pelo audit e o vitest 5 (breaking);
um override pra tinypool 2.2.0 zera os criticos e os 168 testes seguem passando.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
jhony75 merged commit bebcf7c47a into develop 2026-10-14 15:10:49 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!80
No description provided.