Skip to content

B2 — remove os RPCs mortos do CoreService (quebra de wire ASSINADA, ADR 0034)#74

Open
danzeroum wants to merge 1 commit into
mainfrom
claude/doc-repository-analysis-wcg7jb
Open

B2 — remove os RPCs mortos do CoreService (quebra de wire ASSINADA, ADR 0034)#74
danzeroum wants to merge 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 B2 do roadmap — a última recomendação. Como a L2/#70, este PR não fica verde: o job buf acusa a deleção de RPC + mensagem por design (--against main, categoria FILE). Pela regra contrato = merge do dono, aguarda seu sign-off — mesmo padrão que você já aplicou no #70.

O quê

O CoreService declarava 3 RPCs mortosAppendLedger, Recall, Remember — que o core_server.rs respondia com Status::unimplemented e que nada chamava (nem Python nem Rust — verificado). Eram a direção errada para memória (Rust servindo memória/ledger ao Python), um stub abandonado da Fase 4, superado pelo MemoryService (Python serve, Rust chama; ADR 0022). Remover tira a mentira do contrato sem mudar comportamento observável.

  • schemas/proto/core.proto: removidos os 3 RPCs + as 6 mensagens usadas só por eles (LedgerAppend/LedgerAck/RecallRequest/RecallResponse/RememberRequest/RememberAck, pacote btv.core.v1). Sem colisão: memory.proto tem os SEUS RecallRequest/Response em btv.memory.v1 (campos distintos). Protobuf não reserva RPC — deleção direta.
  • Stubs regenerados: Rust (tonic-build) + Python (gen_proto_py.py).
  • core_server.rs: removidas as 3 impls unimplemented + imports mortos + doc-comment.
  • ADR 0034 (proposto): 2ª quebra de wire assinada da campanha.
  • docs/documentacao reconciliadas (09-analise-critica RESOLVIDO; diagramas/01; dados/13,16; referencia/10,11,13,15; README 33→34 ADRs) + ROADMAP B2 marcado feito.

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

  • cargo build + cargo test -p btv-sidecar (core_server_inprocess, squad_e2e) verdes
  • cargo clippy --workspace -- -D warnings limpo; cargo fmt --all --check OK
  • pytest 200/200 (stubs regenerados)

Por que não é .v2

Duplicar o CoreService inteiro num core.v2 para tirar stubs mortos é desproporcional — mesmo raciocínio do ADR 0033 (a L2). Quebra assinada + deploy Rust+Python coordenado (mesmo repo, local-first).

🤖 Generated with Claude Code


Generated by Claude Code

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

Item B2 do roadmap. O CoreService declarava 3 RPCs mortos —
AppendLedger/Recall/Remember — que o core_server.rs respondia com
Status::unimplemented e que NADA chamava (nem Python nem Rust, verificado).
Eram a direção errada para memória (Rust servindo memória/ledger ao Python),
um stub abandonado da Fase 4, superado pelo MemoryService (Python serve, Rust
chama; ADR 0022). Remover tira a mentira do contrato, sem mudar comportamento.

- schemas/proto/core.proto: removidos os 3 RPCs + as 6 mensagens usadas só por
  eles (LedgerAppend/LedgerAck/RecallRequest/RecallResponse/RememberRequest/
  RememberAck, pacote btv.core.v1). Sem colisão: memory.proto tem os SEUS
  RecallRequest/Response em btv.memory.v1 (campos distintos). Protobuf não
  reserva RPC — deleção direta.
- Stubs regenerados: Rust (tonic-build) e Python (gen_proto_py.py).
- core_server.rs: removidas as 3 impls unimplemented + imports mortos + doc.
- ADR 0034 (proposto): 2ª quebra de wire assinada da campanha.
- docs/documentacao reconciliadas (09-analise-critica RESOLVIDO; diagramas/01;
  dados/13,16; referencia/10,11,13,15; README 33->34 ADRs) + ROADMAP B2 feito.

Governança: contrato = merge do dono. O job buf do CI fica VERMELHO por design
(deleção de RPC + mensagem). NÃO auto-mergear — requer sign-off.

Verificação local: cargo build + test btv-sidecar (core_server_inprocess,
squad_e2e) 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: só o buf reprova, por design — os demais verdes.

Evidência para o sign-off (run #177):

Job Resultado
buf (breaking) 🔴 failure — no passo buf breaking … --against main (deleção de RPC + mensagem = a quebra assinada, esperada)
rust, verify, sandbox, pg, python, btv-web, web, arch-lint, deny, security, k6, bench 🟢 success
coverage ⏳ (não-bloqueante — tarpaulin/pytest-cov, informativo)

Limpo 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 — o mecanismo do projeto para sinalizar quebra de wire intencional (mesmo do ADR 0030/0033).

Pela regra contrato = merge do dono, aguarda seu aval — não foi auto-mergeado. Ao aprovar, o merge pode ser feito apesar do buf vermelho (quebra assinada pelo ADR 0034). Com este, todas as recomendações do roadmap ficam entregues.


Generated by Claude Code

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