jochen
f0beea153e
Key a wait list by name, not session id, so it survives a /clear (issues 1629, 1744, ADR 0490)
...
Claude Code gives a session a new session_id at /clear, with nothing
naming the earlier one, so keying claude_code_wait's state by session id
lost a session's waits the moment it cleared. ADR 0490 changes ADR 0489
§1: waits are now kept under the caller's name and node (by, who@node);
every op also takes session, the caller's current id, and the module
keeps a binding of the name to the session that last called for it. An
unbound name is claimed by the first call for it; a session whose own
id no longer matches the binding is refused on every op, naming the
session that holds it, until it calls the new op adopt, which always
takes the name over at once (no bound protects a recent call) and tells
the earlier session so on its own next call.
The mirrored file a hook reads stays keyed by session id (a hook only
ever has that), holding whichever name's waits are currently bound to
it; adopting rewrites both the old id's file (emptied) and the new id's
(filled) in the same call. A second mirrored file, the node-wide index,
lists every name on the node with an open wait; the SessionStart hook
now also reads it, on every start, and prints the exact adopt call for
each name, so a session with a brand new id can find and reclaim its
own waits without calling back into the module.
2026-10-21 18:32:50 +02:00
..
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-04 12:50:20 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-05 15:10:30 +02:00
2026-10-05 11:47:38 +02:00
2026-10-21 09:26:11 +02:00
2026-10-17 16:23:03 +00:00
2026-10-21 18:32:50 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-05 15:10:30 +02:00
2026-10-05 11:50:52 +02:00
2026-10-17 16:23:03 +00:00
2026-10-21 09:50:14 +00:00
2026-10-15 15:06:06 +02:00
2026-10-17 16:23:03 +00:00
2026-10-04 13:02:23 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-04 13:02:23 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-04 13:02:23 +02:00
2026-10-16 09:42:45 +00:00
2026-10-07 21:35:50 +02:00
2026-10-21 14:07:01 +02:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-21 09:51:22 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-21 14:07:01 +02:00
2026-10-21 09:50:14 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-16 09:42:45 +00:00
2026-10-21 16:24:58 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-21 12:52:28 +02:00
2026-10-21 12:52:28 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-21 09:57:56 +02:00
2026-10-21 17:06:51 +02:00
2026-10-17 16:23:03 +00:00
2026-10-20 13:02:35 +00:00
2026-10-18 00:09:16 +02:00
2026-10-20 23:50:02 +02:00
2026-10-17 16:23:03 +00:00
2026-10-21 01:52:58 +02:00
Review round 1: an unset mail-reading verb answers unavailable not unknown, cache the index instead of leaking a pool per call, a gone mail leaves the queue without going unhealthy, sort the judge's own cause by its words, drive RunBatches itself for its pacing test, and prove no tell while unhealthy against a genuinely untold mail (issues 1430, 1523, 1517, 1518, 1520, 1519, 1524)
2026-10-21 01:48:23 +02:00
2026-10-21 13:14:57 +02:00
2026-10-21 14:07:01 +02:00
2026-10-17 16:23:03 +00:00
2026-10-21 13:14:57 +02:00
2026-10-17 16:23:03 +00:00
2026-10-20 22:57:13 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-21 13:07:08 +02:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-05 15:10:30 +02:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-05 15:10:30 +02:00
2026-10-17 16:23:03 +00:00
2026-10-21 09:51:22 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-08 12:04:08 +02:00
2026-10-21 08:08:04 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-21 14:07:01 +02:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 22:42:21 +02:00
2026-10-21 13:14:57 +02:00
2026-10-21 14:07:01 +02:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-08 15:04:02 +02:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-04 13:02:23 +02:00
2026-10-20 21:09:36 +00:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-07 21:35:49 +02:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-04 13:02:23 +02:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-17 16:23:03 +00:00
2026-10-17 16:23:03 +00:00
2026-10-16 09:42:45 +00:00
2026-10-16 09:42:45 +00:00