diff options
| author | Igor Soarez <igor@soarez.org> | 2026-10-30 18:36:08 +0200 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-10-30 18:42:18 +0200 |
| commit | 6c7059865a615cf27226fa09562e6f1deb9beccb (patch) | |
| tree | 48cfcb80c16d59d13b9a75183c8d6eab477cf92c /config/nvim/lua/plugins/editing.lua | |
| parent | b3448031088447d76d80ac6b2bfa08320973a2d9 (diff) | |
pi alarm: keep pending alarms across /reload
/reload dropped every pending alarm and stopped its when_done command,
without a word. An agent that had ended its turn to wait for one was never
woken -- nor a pi-goal goal_wait counting on it.
The old copy of the extension now leaves what is pending on globalThis
instead: each alarm as plain data, the due queue, the next id, and a
when_done command's ChildProcess with its own listeners removed. The copy
pi loads next arms fresh timers from each alarm's absolute time, listens
on the command again (one that exited meanwhile still holds its status),
and resumes polling PIDs. Nothing crosses that would reach the old,
stale pi or ctx.
A handoff from another session or another HANDOFF_VERSION is refused and
its commands stopped, with a notice. If nothing takes it within 30s --
the file failed to load, or was removed -- the old copy stops its
commands. Quitting, /new, /resume and /fork still drop everything.
Diffstat (limited to 'config/nvim/lua/plugins/editing.lua')
0 files changed, 0 insertions, 0 deletions
