Newest first by admission ordinal, cursor strictly below, counts over the showable set, limit 0 is
counts and stamp. Whole record to the peer-checked socket; the trust boundary is pinned in the
desk_door module doc and the DeskRequest/DeskResponse docs. Published schemas regenerated.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Types ForkCard/Record/Entry/List, ForkCursor and ForkLimit validated at decode, DeskRequest::Forks
gains status/cursor/limit flat, DeskResponse gains Forks and Fork, the daemon dispatches to
Mind::desk_forks/desk_fork (stubs). Vectors vendored at CultLib e57fbaee. The tests pin the rules
the next commit implements; DESK_READS_UNBUILT and its test are gone.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
desk_door.rs owns who may speak, the socket's life and the frame bounds; Daemon::handle_desk owns which Mind method answers (Answer via desk_answer, the replay flag gating index.committed; Forks and Fork refused Unavailable until desk-door-reads). startup returns Started; run takes the door; its five callers pass it or None. desk_wire::answer_ref is the one spelling of a stored answer's ref.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
envelope.rs cores are generic over service id, schema and payload; the mind's five functions and the desk's five instantiate them. desk_answer's attribution parameter is authority. huginn.desk_request.v1 and huginn.desk_response.v1 are derived and pinned.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The desk request, response, envelope instantiations and constants do not exist yet; these tests name them and do not compile.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
S11 applied with the sequential check off and seen to fail on it. Finding desk-wire-replay-id-map-not-injective.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Soul's S12 (a second converter that agrees on every legal key) applied and seen to fail. Finding desk-wire-second-converter-evades-grep.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Padded, cased and trailing-junk spellings added to the existing tables; Soul's S1, S8, S9, S10 each applied and seen to fail. Finding desk-wire-pass-through-unpinned.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Kills Soul's S2, S3 and S5 (each applied and seen to fail). Finding desk-wire-asof-and-gate-thinly-pinned.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Her vectors hold no over-long fork id (deviation recorded). Finding desk-wire-long-fork-id-body-invalid.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
answer_desk's (answerer, request_id) lookup is now bound_answer, pub(crate) in desk.rs, and
Mind::desk_answer asks it so the gate runs only when nothing is stored. Finding
desk-wire-gate-shadows-replay.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Public sessions only; with a person her session was shown (not a Mind, not herself); text 1..4000 bytes; brakes re-read before the open; a refusal or a mouth that does not answer is a notice on her next line, never a failed step. No consent state is kept: the mouth reads it from Matrix.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Fixtures copied byte-for-byte from Bifrost main 73c6f50 (tests/fixtures/persona-chat-v4/), verified equal to the handoff copy.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>