Repository navigation
test(mcp): validar resiliência, carga e SLOs - #38
Conversation
Checkpoint de revisão Fase 4Este PR foi revisado na base empilhada exata e permanece draft/mergeável, sem review humano ou thread pendente. A pilha combinada termina em CI combinada: Python 3.10/3.12 e dependency audit/SBOM verdes no run https://github.com/MHX-Digital/agent-architecture-kit/actions/runs/30477544972. Validação local final: 123/123, secret scan 0 matches, compileall/diff check verdes. Correções foram mantidas no PR que introduziu o comportamento: binding explícito do golden corpus ao commit no #32; fronteira autenticada sanitizada do corpus no #37. Nenhum gate foi relaxado. Estado: implementado/testado; aguardando revisão humana; não integrado; não implantado. Rollback por revert dos commits da unidade, sem mutação de índice ou ambiente externo. |
* ci: pin release-gate Python environment for #39 * ci: add aggregate-only high-confidence secret gate for #39 * ci: enforce MCP release gates for #39 * test(ci): lock down release workflow security contract * test(ci): avoid secret-scanner filename false positive * fix(ci): pin rpds version compatible with Python 3.10 * fix(runtime): parse Git UTC timestamps on Python 3.10 * test(runtime): cover Git Z timestamps on Python 3.10 * ci: publish short-lived CycloneDX SBOM for release evidence
Integração ordenada interrompida — divergência remotaCheckpoint em 2026-07-30 UTC:
Causa objetiva da falha: o workflow executa Pelas condições de parada autorizadas — head inesperado e check obrigatório falhando — nenhum dos PRs #32, #36, #37 ou #38 foi integrado e nenhuma branch foi alterada por esta execução. Próximo gate: decisão humana entre corrigir o gate para validar o estado final do diff ( |
Corrige o gate da issue #39 sem reescrever histórico e sem alterar o comportamento do MCP.
Integração ordenada concluída — 2026-07-30 UTC
O #40 já havia sido empilhado no #38; portanto seu conteúdo chegou a Validação no SHA finalRun manual exato: https://github.com/MHX-Digital/agent-architecture-kit/actions/runs/30570028307
Artefatos novos, vinculados somente ao SHA final
Os artefatos da RC anterior não foram reutilizados ou reatribuídos. Estado: integrado e validado localmente/na CI; não implantado; canário não executado. Próximo gate: autorização humana explícita para o canário sanitizado. |
Issue vinculada
LexNotify/LexNotify-Web#795
Escopo
Este PR é empilhado sobre
security/792-mcp-boundarye depende dos PRs #32, #36 e #37. Não amplia as tools e não altera o LexNotify produtivo.Fora de escopo
Contratos e segurança
A ordem integrada permanece: autenticação → autorização de projeto/tenant/tool → validação de entrada → freshness → execução → redaction/limite → auditoria. Assim, chamadores não autorizados não recebem SHA, contagens ou estado interno, mesmo quando o índice está stale.
Testes locais/sanitizados
pytest -q: 115 passed;git diff --check: limpo.Cobertura integrada inclui: matriz auth×freshness; indexação/publicação durante leitura; falha de publicação sem substituir índice ativo; ENOSPC; rollback; snapshot corrompido; backend indisponível; marker/schema inválidos; timeout; compatibilidade de assinaturas; 500 chamadas concorrentes isoladas por tenant.
Carga medida — ambiente local/sanitizado
5000 chamadas, concorrência 32, índice sintético com 848 componentes:
Medição serial (1000 chamadas): p50 5,73 ms; p95 8,73 ms; p99 34,19 ms; 154,13 req/s; 0 erros; RSS máx. 58.732 KiB.
São medições locais, não SLOs comprovados em homologação/produção. O runbook separa objetivo proposto, resultado, ambiente e limitações.
Recuperação
Rollback deste PR
Reverter os commits deste branch. O cache é interno e dispensável; nenhuma migração ou alteração de dados existe.
Riscos residuais
Checklist