poll.sh cutover: every running session's cron holds a path #463 deletes nf-ff49 ← Beads

closed priority 2 task unassigned

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

Time-sensitive, and it spans sessions rather than belonging to any one of them.

#463 deletes tools/pr/poll.sh outright — verified in the diff, no shim and no wrapper left behind:

``` diff --git a/tools/pr/poll.sh b/tools/pr/poll.sh deleted file mode 100755 ```

Every running dev session's poll cron invokes that path literally. The prompt text is baked into a CronCreate job at session start, so the moment #463 merges, each of those jobs starts running a command that no longer exists.

To be fair to #463: its body shows the compatibility question was thought about carefully — the POSIX cksum reimplementation exists precisely so the first tick after the cutover doesn't report CHANGED against a state file poll.sh wrote and reset every session's idle ladder. That is the harder half. This is the easier half that sits just outside it: the *invocation path*, not the state format.

Severity, stated honestly: this is not fully silent. A session whose cron fires ./tools/pr/poll.sh … will see No such file or directory and can reason its way to poll.py. So it is a degraded tick, not a dead loop — closer to #352 in shape than in cost. But it lands on every session simultaneously, at whatever hour the merge happens, and a session that treats the error as "nothing to report" instead of "my tooling moved" goes quiet without anyone noticing.

Cheapest mitigations, in rough order of effort:

I have mitigated my own session by putting a note in its cron prompt to re-point rather than go quiet, but that only helps sessions that happen to think of it.

Filed unclaimed. #463 is ninefold-a's chunk and I am not touching it.

Dependencies

None.

Comments

No comments.

Add a comment