CL-2026-03-01-BK-65 · Log de Decisões Ignoradas (Kernel + Persistência)
- Status: (V) conferido e aprovado
- Escopo: multi-projeto
- Projetos afetados: cerebro-kernel, cerebro-studio
- BK relacionado: BK-65
- Aprovação humana obrigatória: não
- Data: 2026-03-01
- Autor: Codex (GeJoRei-VPS)
Resumo
Implementado rastreamento persistente de decisões de "ignorar" por sessão do Studio Terminal, com detecção automática no texto do usuário, consulta via WS e supressão contextual do aviso de evidência insuficiente quando esse assunto foi explicitamente ignorado.
Entregas Técnicas
1) Persistência (SQLite + Postgres)
- Nova tabela
studio_chat_ignored_decisionsem ambos os adapters. - Índice por sessão/tempo para leitura rápida (
session_key,decided_at DESC). - Novos métodos no store:
recordIgnoredDecision(sessionKey, requestId, subject, subjectType, reason, decidedBy)listIgnoredDecisions(sessionKey, { limit, before })isIgnored(sessionKey, subject)
2) Kernel (Detecção e Registro)
- Nova função
detectAndRecordIgnoredDecisions(sessionKey, requestId, message)com regex para frases como: - "pode ignorar o arquivo X"
- "ignore esse erro"
- "não se preocupe com Y"
- Registro automático executado no fluxo de
studio_chat_request. - Log de falha de persistência do registro com contexto estruturado (
sessionKey,requestId,subject,subjectType,error).
3) Supressão de Aviso de Evidência
appendReadOnlyEvidenceNoticemigrada para fluxo assíncrono com consulta ao store.- Comparação robusta por normalização (
NFD+ remoção de diacríticos + lowercase) para cobrir variações comoevidência/evidencia. - Se assunto equivalente já estiver ignorado na sessão, o aviso não é anexado.
4) Protocolo WS
- Novo handler:
- request:
studio_chat_ignored_list - response:
studio_chat_ignored_list_ok - Mantido sufixo
_okpor compatibilidade com contrato WS legado atual.
Higiene de Repositório
- Removidos do tracking:
kernel/data/studio-chat-test-battery.db-shmkernel/data/studio-chat-test-battery.db-walkernel/data/studio-chat.db.gitignoreatualizado para ignorar artefatos de DB local:*.db-shm*.db-walkernel/data/studio-chat.db
Evidências Objetivas
- Suite:
kernel/tests/bk65-ignored-decisions.test.js- Hotfix de Isolamento (2026-03-02):
- Implementado Lazy Loading no
StudioChatStoreSingleton para evitar erros de IO durante orequireem testes. - Testes do BK-65 agora usam DB temporário exclusivo via
fs.mkdtempSynce fecham conexões comstore.close(). - Comando executado:
cd /root/cerebro/kernel && NODE_ENV=test npm test -- --runInBand tests/bk65-ignored-decisions.test.js- Resultado:
Test Suites: 8 passed, 8 totalTests: 55 passed, 55 total(Estabilidade confirmada sem vazamento de estado).
Commits da Entrega
c669e53feat(BK-65): log de decisões ignoradas + limpeza gitignore db artifacts3b68a93chore: remover db-shm/db-wal do tracking2f8cbb8test(BK-65): adicionar suíte de decisões ignoradasf3e86a1BK-65: Implementação de log de decisões ignoradas e supressão de alertasd82aea6fix(BK-65): restaurar teste, untrack studio-chat.db e normalizar supressão de evidênciaHotfix(vps/BK-65-hotfix-test-isolation): correção de isolamento de testes e Lazy Loading no Singleton.
Riscos Residuais / Dívida Técnica
- Detecção por regex pode não capturar frases muito ambíguas.
- O registro automático é assíncrono (fire-and-forget) com log de erro; garantia forte de durabilidade (await/fila) fica para BK futuro.
- Contrato WS de ignorados permanece com sufixo
_ok; padronização global de tipos deve ser feita em BK específico de contrato.