Skip to content

Fase 7 Onda 14: Designer (salvar honesto) - #38

Merged
danzeroum merged 1 commit into
mainfrom
claude/fase-7-onda-14
Jul 7, 2026
Merged

Fase 7 Onda 14: Designer (salvar honesto)#38
danzeroum merged 1 commit into
mainfrom
claude/fase-7-onda-14

Conversation

@danzeroum

Copy link
Copy Markdown
Owner

Resumo

Onda 14 do plano-mestre da Fase 7: a tela Squad Designer sai do "salvar fake" (mock com seq: 248 fixo e a promessa "aplica na próxima forge squad") para um POST /api/designer/workflow real, validado e auditável.

  • squad.workflow.v1 novo (schemas/json/squad-workflow.v1.schema.json + crates/forge-schemas/src/workflow.rs, mesmo padrão de experiment.v1: JSON Schema + tipo Rust #[derive(JsonSchema)] + fixture golden). SquadWorkflow::validate_edges() é a checagem semântica que o JSON Schema puro não expressa — toda aresta precisa referenciar um nó existente.
  • POST /api/designer/workflow direto em forge-server (zero dependência nova — só forge-store/forge-schemas, mesma classe de A2/A5/A12). Grafo malformado (aresta pra nó inexistente) é rejeitado com 422 e erro claro citando o id, ANTES de qualquer escrita — provado por teste que o ledger continua com 0 entradas depois. Grafo válido grava via o mesmo LedgerStore::append de toda outra auditoria da plataforma (zero mudança de ledger).
  • "Salvar honesto" corrigiu os 2 lados da mentira antiga: o seq fabricado (sempre 248) E a cópia que prometia aplicação real ao orquestrador (nunca foi verdade — UnifiedOrchestrator continua com os 5 agentes fixos, sem reescrita nesta fase). MARK_SAVED (reducer) ganhou o seq real; banner, toast e o botão ("salvar & aplicar" → "salvar") agora declaram só "salvo e validado — aplicação real é trabalho futuro".

Decisões completas em pendencias.md (seção "Onda 14"), incluindo por que o caso de aresta pendente (422) só é testável via Rust direto — a UI (REMOVE_NODE do próprio reducer) estruturalmente não deixa construir um grafo inválido por interação normal.

Test plan

  • cargo fmt --all --check
  • cargo clippy --workspace -- -D warnings
  • cargo test --workspace (inclui workflow.rs's 2 testes + schema_fixtures.rs's golden novo + forge-server's 2 testes novos: grafo válido grava e é lido de volta do ledger; grafo com aresta pendente é 422 e não grava nada)
  • cd python && uv run pytest (153 testes, sem mudança nesta onda)
  • tsc --noEmit / npm run lint / npm run build / npm run test (vitest)
  • playwright test --config=playwright.integration.config.ts (18/18, incluindo o novo designer-real-backend.spec.ts — salvar o grafo padrão grava no ledger real com seq real, e erro explícito quando o backend cai)

🤖 Gerado com Claude Code


Generated by Claude Code

squad.workflow.v1 novo (JSON Schema + tipo Rust + fixture golden, padrão
de experiment.v1): SquadWorkflow{nodes, edges} com validate_edges()
rejeitando arestas pra nós inexistentes antes de qualquer escrita.

POST /api/designer/workflow direto em forge-server (zero dependência
nova). Grafo inválido nunca toca o ledger (422, provado por teste).
Grafo válido grava via o mesmo LedgerStore::append de toda outra escrita
de auditoria — seq real, nunca o 248 fabricado do mock antigo.

"Salvar honesto" corrigiu os 2 lados da mentira antiga: seq fabricado no
mock E a cópia "orquestrador aplica na próxima forge squad" (nunca foi
real — os 5 agentes fixos continuam decidindo, sem reescrita nesta
fase). MARK_SAVED ganhou o seq real; banner/toast/botão declaram só
"salvo e validado — aplicação real é trabalho futuro".

Decisões completas em pendencias.md (seção "Onda 14").
@danzeroum
danzeroum merged commit 06616cf into main Jul 7, 2026
9 checks passed
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.

2 participants