You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up verificável da issue fechada #5. Relaciona-se a #42 e #43, ao simplicio-agent#222 e ao simplicio-runtime#3030.
A documentação arquitetural atual do repositório ainda registra explicitamente que:
os contratos tipados Runtime para list, stat, edit e exec existem no cliente, mas ainda não possuem consumidores reais no agente;
grep, hashline_grep e list_dir ainda possuem caminhos diretos por ripgrep, tokio::fs ou ignore::WalkBuilder;
o executor de bash ainda precisa ser ligado ao contrato Runtime de exec;
a presença de um contrato ou client method não prova que todas as superfícies o exercitam.
Logo, o aceite original de #5 — “100% dos caminhos de leitura, busca, mutação e execução usam Runtime MCP” — não está demonstrado pelo estado documentado atual. Esta issue não repete o desenho de #5: ela audita o fechamento, conclui o wiring restante e instala um gate que impeça a regressão.
Objetivo
Garantir, com inventário machine-readable, testes arquiteturais e E2E com Runtime real, que toda operação do workspace iniciada por TUI, headless, ACP, workspace ou tools do agente atravesse o boundary governado do Simplicio Runtime, sem fallback local silencioso.
Invariantes
Runtime ausente, incompatível ou sem capability obrigatória bloqueia o efeito com erro tipado.
Nenhum tool pode alternar silenciosamente para filesystem, processo ou busca local após falha do Runtime.
Leitura, busca, listagem, metadata, edição, escrita, exclusão e execução usam os mesmos contratos semânticos nas quatro superfícies.
Operações de bootstrap estritamente necessárias devem estar em allowlist curta, justificada e não alcançar conteúdo do workspace.
Retry/fallback nunca repete efeito com outcome desconhecido.
Receipts registram coordinator, session, turn, tool call, workspace, capability, policy revision e outcome sem conteúdo sensível.
Plano passo a passo
Criar um inventário workspace-access-manifest/v1 com todos os call sites que acessam arquivos, diretórios, Git, pesquisa textual ou processos.
Classificar cada call site como runtime-governed, bootstrap-allowlisted, test-fixture, generated ou violation.
Congelar um baseline revisado; novas ocorrências sem classificação falham CI.
Ligar list_dir e equivalentes ao contrato Runtime list.
Ligar metadata, tamanho, tipo, existência e permissões ao contrato stat.
Ligar grep, hashline_grep e demais buscas ao SearchBackend, removendo chamadas diretas concorrentes.
Ligar apply/patch/edit ao contrato atômico edit, preservando checkpoint, approval, rollback e receipt.
Ligar terminal/bash/process tools ao contrato exec, usando argv/cwd/env allow-listed, budgets, streaming, cancelamento e kill-tree.
Remover ou encapsular imports/call sites diretos de std::fs, tokio::fs, Command, WalkBuilder e execução de ripgrep nos crates de agente/workspace.
Unificar capability negotiation e taxonomia de erros.
Implementar idempotency keys e estados not_started|denied|completed|effect_unknown para mutações/processos.
Executar shadow comparison durante rollout: caminho antigo somente read-only versus Runtime, sem duplicar efeitos.
Remover o caminho antigo depois da paridade.
Atualizar docs/ARCHITECTURE.md, troubleshooting e capability matrix a partir do manifest gerado.
traversal, caminhos absolutos, Unicode e separadores cross-OS;
symlink escape e troca concorrente do symlink;
capability ausente/incompatível;
idempotency e effect_unknown;
tradução estável dos erros Runtime.
Integração
Runtime real e fixture de protocolo para list/stat/search/read/edit/write/delete/exec;
streaming/cancelamento/timeout de processos;
arquivo grande, binário, diretório profundo e monorepo;
rollback após falha entre write e receipt;
conexão quebrada antes/durante/depois de um efeito.
Sistema/E2E
Executar a mesma tarefa em TUI, headless, ACP e workspace:
listar;
localizar símbolo/texto;
ler;
editar atomicamente;
executar teste;
cancelar comando longo;
reiniciar Code/Runtime;
confirmar estado e receipt.
Segurança e regressão
command injection, env injection, path traversal e symlink race;
Runtime falso ou downgrade de protocolo;
teste arquitetural proibindo novos bypasses;
secret/content canaries em logs e receipts;
cobertura mínima de 90% nos adapters críticos e 85% no código tocado.
Performance
Medir cold/warm p50/p95/p99 e throughput de list/stat/search/edit/exec. O canal governado não pode introduzir regressão superior ao budget aprovado sem ADR e evidência.
Critérios de aceite
O manifest cobre 100% dos call sites relevantes e não contém violation.
Registrar SHA/branch, ambiente, dependências e configuração.
Executar o caminho feliz completo e capturar logs/receipts.
Injetar entrada inválida, timeout, falha externa ou permissão ausente aplicável.
Verificar retry, cancelamento, idempotência e rollback quando o fluxo suportar.
Executar testes unitários, integração, sistema/E2E, regressão, segurança e desempenho aplicáveis.
Reexecutar com os mesmos dados e comparar resultado/hashes.
Confirmar que falha nunca vira sucesso e que recursos são liberados.
Critérios de aceite adicionais
O comportamento principal está demonstrado por teste executável.
Pelo menos um caminho de falha está coberto e documentado.
Contratos entre projetos são validados nas versões/SHAs declarados.
Logs e receipts permitem reconstruir a decisão.
Métricas não observáveis são null com motivo, nunca estimadas.
Segredos, PII e dados privados não aparecem nos artefatos.
O procedimento é reproduzível localmente ou em container sem GitHub Actions pago.
PR/commit, logs, hashes e riscos residuais estão anexados antes de fechar.
Evidências obrigatórias
PR/commit vinculado;
comandos e versões;
logs do caminho feliz e da falha;
testes/coverage/benchmark aplicáveis;
receipts, hashes e relatório de rollback;
limitações e próximos passos.
Regra de encerramento
Não fechar sem todos os critérios desta issue e da auditoria-mãe atendidos. Se faltar implementação, marcar como NEEDS-IMPLEMENTATION ou BLOCKED, nunca como concluída.
Contexto
Follow-up verificável da issue fechada #5. Relaciona-se a #42 e #43, ao
simplicio-agent#222e aosimplicio-runtime#3030.A documentação arquitetural atual do repositório ainda registra explicitamente que:
list,stat,editeexecexistem no cliente, mas ainda não possuem consumidores reais no agente;grep,hashline_grepelist_dirainda possuem caminhos diretos porripgrep,tokio::fsouignore::WalkBuilder;bashainda precisa ser ligado ao contrato Runtime deexec;Logo, o aceite original de #5 — “100% dos caminhos de leitura, busca, mutação e execução usam Runtime MCP” — não está demonstrado pelo estado documentado atual. Esta issue não repete o desenho de #5: ela audita o fechamento, conclui o wiring restante e instala um gate que impeça a regressão.
Objetivo
Garantir, com inventário machine-readable, testes arquiteturais e E2E com Runtime real, que toda operação do workspace iniciada por TUI, headless, ACP, workspace ou tools do agente atravesse o boundary governado do Simplicio Runtime, sem fallback local silencioso.
Invariantes
Plano passo a passo
workspace-access-manifest/v1com todos os call sites que acessam arquivos, diretórios, Git, pesquisa textual ou processos.runtime-governed,bootstrap-allowlisted,test-fixture,generatedouviolation.list_dire equivalentes ao contrato Runtimelist.stat.grep,hashline_grepe demais buscas aoSearchBackend, removendo chamadas diretas concorrentes.edit, preservando checkpoint, approval, rollback e receipt.exec, usando argv/cwd/env allow-listed, budgets, streaming, cancelamento e kill-tree.std::fs,tokio::fs,Command,WalkBuildere execução de ripgrep nos crates de agente/workspace.not_started|denied|completed|effect_unknownpara mutações/processos.docs/ARCHITECTURE.md, troubleshooting e capability matrix a partir do manifest gerado.Testes obrigatórios
Unitários e property-based
effect_unknown;Integração
list/stat/search/read/edit/write/delete/exec;Sistema/E2E
Executar a mesma tarefa em TUI, headless, ACP e workspace:
Segurança e regressão
Performance
Medir cold/warm p50/p95/p99 e throughput de list/stat/search/edit/exec. O canal governado não pode introduzir regressão superior ao budget aprovado sem ADR e evidência.
Critérios de aceite
violation.list/stat/edit/execpossuem consumidores produtivos reais.grep/hashline_grep/list_dir/bashnão bypassam o Runtime.Não objetivos
Revisão complementar do projeto: simplicio-code
Responsabilidade avaliada: IDE/orquestração. Esta issue deve ser entendida no contexto da auditoria-mãe do repositório.
Objetivo específico
validar usuário → plano → Agent/Runtime → alteração → testes → PR
Fluxo de testes obrigatório
comando → plano → execução → diff → testes → cancelamento → retomada
Critérios de aceite adicionais
nullcom motivo, nunca estimadas.Evidências obrigatórias
Regra de encerramento
Não fechar sem todos os critérios desta issue e da auditoria-mãe atendidos. Se faltar implementação, marcar como
NEEDS-IMPLEMENTATIONouBLOCKED, nunca como concluída.