alvarofpp / alvarofpp/dotfiles
Lock agent:running fica preso quando a sessão morre abruptamente
- Dominant language
- Shell
- Stars
- 2
- Forks
- 0
- Avg merge
- 8m
- Merged PRs (30d)
- 1
Description
**Objetivo:** o lock `agent:running` ser solto quando a sessão morre de forma abrupta, sem depender de repaint de tela.
**O que aconteceu em 2026-09-07/08:** sessões morreram por três causas diferentes — limite mensal de gasto da conta, hook `PreToolUse` do projeto recusando o commit (`flutter analyze` vermelho), e contexto/reboot. Nenhuma chegou à última linha do prompt, que é onde o `agent:running` sai. As issues sumiram do fluxo caladas (o `gh:issues` esconde issue com o label) e ficaram assim por horas: `matria#164` e `abacaxei#74` levaram ~5h e precisaram de destrave manual.
**Por que o `gh:reap` não cobriu:** ele usa `lastOutputAt` com corte de 30 min, e esse campo sobe por motivo que não é trabalho:
- a máquina dormir e acordar repinta **todos** os terminais de uma vez (sintoma: `lastOutputAt` idêntico ao segundo em worktrees diferentes);
- `orca terminal read` — usado justamente pra diagnosticar — repinta e zera o contador.
Com isso o reap enxerga sessão morta como viva indefinidamente.
**Escopo sugerido:** trocar o sinal de vida por algo que não dependa de repaint. Candidatos: processo `claude` vivo no pty da sessão; ou tela que casa o padrão de prompt ocioso (`❯` isolado + `ctx: —%`) contar como morta na hora, sem esperar o corte.
**Critério de aceite:** sessão morta por limite de gasto ou por hook tem o lock solto no tick seguinte, mesmo que a tela tenha repintado há menos de 30 min.
**Relacionado:** a tabela de modos de falha em `ai/docs/gh-board-flow.md` registra as três armadilhas.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.