poll.py tells a session with four OPEN tracked PRs to wrap up, every tick, forever nf-45c ← Beads

open priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/684 by tools/beads/import_github.py's reconcile pass.

nf-dev-probe-gate was sent "wrap up and delete the cron" ten times between 16:17 and 00:26 while tracked-prs.txt held #653 #662 #665 #680, all open. The session correctly refused each time, so nothing changed and the next tick repeated it.

Artifacts at the time (scratchpad/):

``` poll-cron.txt job=2a77ef03 cron='17 */2 * * *' (POLL_CADENCE at IDLE_TICKS=4) poll-state.txt idle tick counter = 6 tracked-prs.txt 653 662 665 680 <- all OPEN ```

So the idle-tick counter appears to outrank tracked work: no *activity* for N ticks reads as "nothing to do" even when the tracked set is non-empty and open. Waiting on review is the normal state of a session with open PRs, so this fires precisely when it is most wrong.

Third variant of a known family, and the one the first two do not cover: #575 is wrap-up firing because tracked-prs.txt was lost to tmpfs; #618 is a missing file reading as empty. Here the file is present, non-empty, and correct — and wrap-up fired regardless.

⚠️ Also worth noting for whoever fixes it: the poll cron is a Claude Code routine (job=2a77ef03), not a system crontab entry, so crontab -l does not show it. Two CTO reports tonight said "no poll crons on this box" on that basis and were wrong.

Dependencies

None.

Comments

No comments.

Add a comment