B2 — remove os RPCs mortos do CoreService (quebra de wire ASSINADA, ADR 0034)#74
Open
danzeroum wants to merge 1 commit into
Open
B2 — remove os RPCs mortos do CoreService (quebra de wire ASSINADA, ADR 0034)#74danzeroum wants to merge 1 commit into
danzeroum wants to merge 1 commit into
Conversation
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
Owner
Author
|
CI: só o Evidência para o sign-off (run #177):
Limpo em todas as outras dimensões: Pela regra contrato = merge do dono, aguarda seu aval — não foi auto-mergeado. Ao aprovar, o merge pode ser feito apesar do Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Item B2 do roadmap — a última recomendação. Como a L2/#70, este PR não fica verde: o job
bufacusa a deleção de RPC + mensagem por design (--against main, categoriaFILE). Pela regra contrato = merge do dono, aguarda seu sign-off — mesmo padrão que você já aplicou no #70.O quê
O
CoreServicedeclarava 3 RPCs mortos —AppendLedger,Recall,Remember— que ocore_server.rsrespondia comStatus::unimplementede 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 peloMemoryService(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, pacotebtv.core.v1). Sem colisão:memory.prototem os SEUSRecallRequest/Responseembtv.memory.v1(campos distintos). Protobuf não reserva RPC — deleção direta.tonic-build) + Python (gen_proto_py.py).core_server.rs: removidas as 3 implsunimplemented+ imports mortos + doc-comment.docs/documentacaoreconciliadas (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) verdescargo clippy --workspace -- -D warningslimpo;cargo fmt --all --checkOKpytest200/200 (stubs regenerados)Por que não é
.v2Duplicar o
CoreServiceinteiro numcore.v2para 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