Elquer Carlos

Runbook 18 v2, timeout no bridge e pipeline de redação obrigatória

Fix de sessionTimeout no larissa-fs-bridge, reescrita do runbook 18, e construção do pipeline de redação de dados privados.

O dia

Dois blocos de trabalho distintos: tarde na Larissa via claude.ai reescrevendo documentação de infra, e trabalho paralelo no Claude Code construindo um pipeline de redação para conter um problema que ficou evidente nos posts de 2026-05-10.


Larissa: timeout, runbook e limpeza

O problema ao reconectar

Ao abrir a sessão da Larissa no claude.ai, o larissa-fs-bridge começou a derrubar conexões com Child SIGTERM no meio de tool calls longos. O sintoma era claro: operações pesadas — leituras de arquivos grandes, tree traversals — cortavam a sessão antes de completar.

Causa: o --sessionTimeout estava configurado em 60000 ms (60 segundos). Para operações de filesystem que o MCP executa, esse limite é curto demais. Fix imediato:

# start_fs_bridge.sh
--sessionTimeout 600000   # 600s (10 min), antes era 60s

Confirmado nos logs após o restart: running stateful server sem mais SIGTERMs durante toda a sessão.

Runbook 18 v2

Com a conexão estável, o objetivo principal da tarde foi reescrever o runbook 18 para a infra atual — D35, D36, D37. O claude.ai leu o handoff da sessão anterior antes de qualquer ação, padrão que mantém continuidade sem precisar recontextualizar do zero a cada abertura.

O runbook anterior estava desatualizado: referenciava o Hermes, que já não existe na infra. Reescrito do zero:

  • 8 cenários cobertos
  • Smoke check com 10 verificações
  • Mapa de componentes atualizado
  • Hermes removido completamente da documentação

Cleanup colateral

Na mesma sessão, pyrogram e tgcrypto foram desinstalados do venv da Larissa. Eram pacotes sem dependentes ativos — resíduos de uma fase anterior do projeto. Cleanup do router/ também feito em sequência.

A sessão seguiu ritmo de lista executada passo a passo: Elquer aprovando cada etapa com “proximo” antes do claude.ai avançar. Dezenove “próximos” entre 15h53 e 19h47, 42 mensagens no total.


Pipeline de redação: construção do gate

O problema de origem

Os posts de 2026-05-10 foram publicados com detalhes operacionais expostos: hostnames de tunnel e SSH, service names, paths absolutos, expressões WAF completas. Não foi descuido de um momento — a skill v13 de geração de posts classificava esses domínios como “públicos manter”. A sessão do dia validou essa premissa contra o repo real e decidiu reclassificá-los como privados.

O que foi construído

.redaction/private-resources.json

Registry de recursos privados por categoria. Divide claramente o que é privado (domínios lariia.com.br, kmarote.me com redação automática de subdomínios, hostnames de máquina como DellPessoal, services systemd) do que é público (elquer.com, kmarote.com.br, produtos públicos). A lógica: nova categoria entra no registry uma vez, todas as instâncias são capturadas automaticamente.

scripts/redaction-check.py

Checker com dois modos de operação:

python scripts/redaction-check.py --report   # dry-run, lista achados sem modificar
python scripts/redaction-check.py --fix       # aplica substituições

Padrões por categoria via regex semântica: subdomínios privados, services .service, paths /etc /home /var /opt, expressões WAF com hostname, UUIDs, machine hostnames.

Um bug específico foi identificado e corrigido durante a implementação: a lógica de allowlist com escopo por padrão precisou ser ajustada porque /etc/cloudflared/config.yml escapava do checker — cloudflared estava na allowlist de produtos públicos, mas o path /etc/cloudflared/... é sensível independente disso.

Resultados

Dry-run nos posts e draft de 2026-05-10: 61 findings em 17 arquivos. Após revisão de escopo, 26 redações aplicadas em 4 arquivos. A narrativa foi preservada — o leitor entende o bug, a causa e a lição sem receber o mapa operacional.


kmaroteApp

Atividade significativa ao longo do dia — sessão principal com aproximadamente 2200 eventos entre 15h26 e 19h48. Sem dados de git disponíveis nesta run para detalhar o que foi entregue.


Estatísticas do dia (geradas automaticamente):

Trabalho com IA:

  • Conversas claude.ai: 1 (42 mensagens)
  • Sessões Claude Code: 9 sessões (elquercarlos, kmaroteApp, elquer-com, subagents)

Devlog do dia:

  • Fontes: 1 conversa claude.ai + 9 sessões Claude Code Windows
Fim do ato