CL-2026-04-29-BK-WORKER-001 - Worker Health Hardening
Status: (V)
Escopo: projeto
Projetos afetados: cerebro-kernel
Aprovacao humana obrigatoria: nao
Revisor IA: Gemini (gemini-3-flash-preview, modo plan, read-only) com auditoria final do Claude orquestrador. Codex foi o autor da implementacao.
Resumo
Os tres workers externos (Kimi, Gemini Pro, OpenCode) tinham defaults que produziam falhas recorrentes documentadas em kernel/logs/execution-observability.jsonl. Esta entrega corrige cada um deles na origem do problema:
- Kimi nao depende mais do orcamento residual do
STUDIO_SQUAD_TIMEOUT_MS; ganhou cap proprio de 180s configuravel. - Gemini default migrou para
gemini-3-flash-previewem roles non-critical (R0/R1/R2), mantendogemini-3.1-pro-previewem gates criticos (R3/R4). - OpenCode saiu do
opencode/minimax-m2.5-freee foi paraopencode/grok-code-fast-1por default.
Alteracoes
kernel/router.js:- Novos helpers
__private__:resolveKimiRequestTimeoutMs(env),buildKimiRequestOptions(callOptions, env),combineAbortSignals(signals),resolveOpenCodeModel(passedModel, env),applyGeminiDefaultModelOverride(decision, env). - Wiring no
callLLMda chamada Kimi (NVIDIA NIM via OpenAI SDK) para combinarcallOptions.signalcomAbortSignal.timeout(CEREBRO_KIMI_REQUEST_TIMEOUT_MS || 180000). - Default OpenCode passou de
opencode/minimax-m2.5-freeparaopencode/grok-code-fast-1(envCEREBRO_OPENCODE_MODELpermanece como override primario). - Hook
applyGeminiDefaultModelOverridenoresolvePolicyDecisionpara aplicarCEREBRO_GEMINI_DEFAULT_MODELquando setado. kernel/config/model-routing-policy.json:- ~24 spots de risk
R0/R1/R2migraram degemini-3.1-pro-previewparagemini-3-flash-preview. - Spots com
gemini-3-flash(sem-preview) alinhados paragemini-3-flash-preview, casando comMODELS.pro_3. gemini-3.1-pro-previewmantido emR3/R4(deploy, schema_change, safety/policy).kernel/tests/router-policy.test.js: 2 novos testes paraCEREBRO_GEMINI_DEFAULT_MODEL(override aplicado e ausente).kernel/tests/unit/router.test.js(novo): 5 testes cobrindo defaults OpenCode com/sem env, default Kimi 180s, combinacaoAbortSignal.anycom upstream, e desabilitar timeout proprio comCEREBRO_KIMI_REQUEST_TIMEOUT_MS=0.- Backlog/Changelog/Roadmap atualizados.
Comportamento entregue
- Em
callLLM(llm='kimi', ...), o NVIDIA NIM agora sempre tem cap proprio de 180s; squad runtime pode ter quanto orcamento global quiser sem ditar a janela do Kimi. - Em
resolvePolicyDecision('gemini', agent, message), seCEREBRO_GEMINI_DEFAULT_MODELestiver setado, a decisao da policy e sobrescrita; caso contrario, a policy nova ja entregagemini-3-flash-previewem roles non-critical. - Em
callLLM(llm='codex'|'opencode', ...), default sai do free tier instavel. - Documentos sem
metadata.mtime(carryover do BK-CORE-006) continuam reprocessando — sem regressao.
Validacao
Comandos executados:
```bash
node --check kernel/router.js
node -e "JSON.parse(require('fs').readFileSync('kernel/config/model-routing-policy.json', 'utf8'))"
cd kernel && npm test -- --runInBand
```
Resultado observado:
- sintaxe OK no
router.js; - JSON valido em
model-routing-policy.json; - Jest do kernel verde com
24 suitese173 testes(7 novos cobrindo Gemini override, OpenCode default e Kimi timeout helpers, incluindoenv=0que desabilita o cap proprio).
Observacoes operacionais
- Codex (
codex exec --sandbox workspace-write) entregou patch + testes e isolou a origem dos 60s do Kimi (era resíduo doSTUDIO_SQUAD_TIMEOUT_MS=180000apos ~120s gastos nos steps anteriores; nao era cap do Kimi nem dotools/kimi_cli.js). - Codex reportou 8 falhas em
tests/unit/browser-executor.test.jsno sandbox dele (Chromium snap em FS read-only). Rodada local fora do sandbox confirmou24 suites/173 testesverdes. - Gemini (
gemini-3-flash-preview, modo plan, read-only) revisou o diff de 416 linhas. A revisao demorou >6min, sintoma do proprio problema atacado nesta entrega (Pro rate_limited, Flash sob carga). Aprovou com observacoes anexadas abaixo. - Workers OpenCode/Kimi diretos NAO foram acionados nesta rodada — Codex executou local e Gemini-Flash fez revisao remota como segunda opiniao.
Pareceres recebidos
- Codex (autor): patch limpo, helpers em
__private__para testabilidade sem expor API publica, defaults seguros. - Gemini (revisor): aprovado, gravidade baixa. Observacoes/sugestoes anexadas no proprio diff.
- Claude orquestrador (auditoria): diff hunk a hunk contra backup
.backup/BK-WORKER-001-20260428-214601confirmou que so foram tocados arquivos previstos no write set, sem regressao em codigo ou testes pre-existentes.
Proximo passo
Sequencia sugerida:
- BK-OPS-001: reconciliar worktree de
/www/wwwroot/legalizarj.com.brantes de evoluir o LegalizaRJ. - BK-WORKER-002 (a abrir se a operacao confirmar necessidade): monitorar com
worker_health_report.jsos novos defaults por 7 dias. - BK-CORE-009 (Gemini sugeriu): garbage collection de "ghost data" no FTS5 quando arquivo fonte e removido do disco.