Skip to content

Onda 4 (L2) — remove max_autonomy_level do SquadTask (quebra de wire ASSINADA, ADR 0033)#70

Merged
danzeroum merged 1 commit into
mainfrom
claude/doc-repository-analysis-wcg7jb
Jul 14, 2026
Merged

Onda 4 (L2) — remove max_autonomy_level do SquadTask (quebra de wire ASSINADA, ADR 0033)#70
danzeroum merged 1 commit into
mainfrom
claude/doc-repository-analysis-wcg7jb

Conversation

@danzeroum

Copy link
Copy Markdown
Owner

⚠️ Quebra de wire ASSINADA — NÃO auto-mergear (precisa do seu sign-off)

Item L2 do roadmap, conforme sua decisão (remover o campo). Diferente das Ondas 1–3 (que mergeei com CI verde), este PR não fica verde: o job buf do CI acusa a quebra por design (categoria FILE, --against main), exatamente como o ADR 0030. Pela regra do projeto (contrato = merge do dono), ele aguarda seu sign-off.

O quê

O campo max_autonomy_level do SquadTask trafegava no wire mas era ignorado ponta-a-ponta (ADR 0021) — a autonomia real é decidida por agente (ProgressiveAutonomyManager/agent_trust_scores, hitl.py). Remover tira a mentira do contrato sem mudar comportamento observável (nada lia o campo).

  • schemas/proto/squad.proto: reserved 4; reserved "max_autonomy_level"; (impede reuso da tag/nome).
  • Stubs regenerados dos dois lados: Rust (tonic-build) e Python (gen_proto_py.py).
  • Sítios Rust que setavam o campo removidos (squad.rs, squad_agent.rs, squad_e2e.rs ×3); comentários do console web/ atualizados.
  • ADR 0033 (proposto) documenta a quebra assinada e supersede o débito do ADR 0021.
  • docs/documentacao reconciliadas (09-analise-critica marca RESOLVIDO; dados/13,14,16,17; referencia/13,15; README 32→33 ADRs).

Verificação local (tudo verde exceto o buf, que é vermelho por design)

  • cargo build + cargo test -p btv-cli squad (20) verdes; squad_e2e.rs compila
  • cargo clippy -D warnings limpo; cargo fmt --all --check OK
  • pytest 200/200 (stubs regenerados)

Por que não é .v2

Um squad.v2.proto duplicaria o serviço inteiro para remover um campo morto — desproporcional. A quebra assinada + reserved + deploy Rust+Python coordenado (mesmo repo, local-first) é o caminho do ADR 0030, aqui repetido.

🤖 Generated with Claude Code


Generated by Claude Code

BREAKING CHANGE (wire assinada — buf breaking acusa por design, como ADR 0030).

Onda 4 do roadmap, item L2 (decisão do dono: remover). O campo
`max_autonomy_level` do `SquadTask` trafegava no wire mas era ignorado
ponta-a-ponta (ADR 0021) — a autonomia real é por agente
(`ProgressiveAutonomyManager`/`agent_trust_scores`, hitl.py). Remover tira a
mentira do contrato, sem mudar comportamento observável (nada lia o campo).

- schemas/proto/squad.proto: `reserved 4; reserved "max_autonomy_level";`
  (impede reuso da tag/nome).
- Stubs regenerados: Rust (tonic-build) e Python (gen_proto_py.py).
- Sítios Rust que setavam o campo removidos (squad.rs, squad_agent.rs,
  squad_e2e.rs x3). Comentários do console web/ atualizados.
- ADR 0033 (proposto) documenta a quebra assinada; supersede o débito do 0021.
- docs/documentacao reconciliadas (09-analise-critica RESOLVIDO; dados/13,14,16,17;
  referencia/13,15; README — 32→33 ADRs).

Governança: contrato = merge do dono. O job `buf` do CI fica VERMELHO por
design (sinal de quebra intencional). NÃO auto-mergear — requer sign-off.

Verificação local: cargo build + test (squad 20, sidecar compila) verdes;
clippy -D warnings limpo; fmt OK; pytest 200/200.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DkWvx5G1XqRZwybmCErshc

Copy link
Copy Markdown
Owner Author

CI: 12/13 verdes — só o buf reprova, por design.

Confirmação da evidência para o sign-off (run #169):

Job Resultado
buf (breaking) 🔴 failure — no passo buf breaking … --against main (a quebra assinada, esperada)
rust, python, btv-web, web, pg, sandbox, k6, verify, deny, arch-lint, bench, security 🟢 success

A mudança é limpa em todas as outras dimensões: cargo test --workspace + clippy -D warnings + fmt, pytest, e2e Playwright dos dois frontends, cargo-deny, arch-lint e o self-hosting btv verify. O único vermelho é o buf breaking, que é o mecanismo do projeto para sinalizar quebra de wire intencional (mesmo do ADR 0030).

Pela regra contrato = merge do dono, este PR aguarda seu aval — não foi auto-mergeado. Ao aprovar, o merge pode ser feito apesar do buf vermelho (a quebra é assinada pelo ADR 0033).


Generated by Claude Code

@danzeroum danzeroum merged commit e41f69d into main Jul 14, 2026
12 of 13 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