Review M2b: accept with one follow-up task; record lessons
All ten tasks pass the checklist, the gate, the audit and the device checks, including a four-turn conversation with a loopd restart and no cache loss. Reading and probing found four low defects: the busy guard is released before the final frame on the main path but not on the three error paths, its Drop skips a poisoned lock, an unreadable core.md is treated as missing, and bxctl's interactive loop exits on a failed turn. Task 11 carries the fixes with two new tests, checked against a fixed copy of the branch. The Model column is filled in (all Ornith) and one malformed row is repaired. Two rules are promoted to AGENTS.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -158,8 +158,9 @@ Events for one turn arrive in order on one connection. Nothing else is promised.
|
||||
(from config, `[channel] socket`) with mode 0600; accepts connections, one thread each. The M2a
|
||||
`Client` is shared in an `Arc`; its slot gate serialises requests per slot. A registry of
|
||||
per-session locks makes a concurrent `turn` on a busy session answer `session_busy` at once; the
|
||||
lock is released before the final frame is sent, so a channel that sends its next turn on reading
|
||||
that frame is never refused. A stale socket file is removed before the self-test runs, so clients
|
||||
lock is released before the final frame is sent, whichever frame that is (`turn_done`, the turn's
|
||||
error, or the error for a session that cannot be opened or created), so a channel that sends its
|
||||
next turn on reading that frame is never refused. A stale socket file is removed before the self-test runs, so clients
|
||||
see "not running" rather than "connection refused" during startup.
|
||||
Nothing is held in memory that is not also on disk, except the locks and the `call` counters.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user