Commit graph

949 commits

Author SHA1 Message Date
598f1db7f9 Desk door: socket tests pin the exact reply cap on a read, and a stale answer's stored refusal and replay while the fork is oversize
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:46:20 +00:00
797255eefe Merge pull request 'Desk reads: a read of an oversize fork is fork_too_large; vectors re-vendored from CultLib f6c9bf5f' (#40) from eureka-substrate/read-fork-too-large into main 2026-11-11 01:39:40 +00:00
711514602b Refusal replay is a property over the vectors' cases; the vector's error string is Huginn-independent
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:34:57 +00:00
9d0a30947a Vectors re-vendored from CultLib f6c9bf5f; replays of short pages and fork_too_large refusals; the refusal-text replay fails on a real disagreement
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:32:59 +00:00
4c1f247898 Desk door: a read of one fork past the reply cap is fork_too_large naming the fork (no order, no cursor)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:28:57 +00:00
5af0cbea65 Desk door: failing socket test, a read of an oversize fork is fork_too_large naming the fork
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:26:57 +00:00
d91985b521 Merge pull request 'Desk reads: fork_too_large (list only) replaces DeskForkTooLarge' (#39) from eureka-substrate/fork-too-large into main 2026-11-11 01:03:55 +00:00
cdc21dd396 Desk door: fork_too_large at order 0 says the list ends instead of naming c0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:03:42 +00:00
c6e1b41967 Desk door: socket tests for fork_too_large as the oldest (no c0) and newest fork
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:02:00 +00:00
c2aef3bc58 Desk door: DeskForkTooLarge becomes the not-stored refusal fork_too_large (list only), text names fork id and order; schemas regenerated
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:56:36 +00:00
5f3319f4ad Desk door: failing socket test for fork_too_large (list names fork and order, cursor resumes, read never returns it)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:51:57 +00:00
2662a34a41 Merge pull request 'Desk door reads: Forks and Fork on the peer-checked socket (whole record), unique order rank, the leftover Lows' (#38) from eureka-substrate/desk-door-reads-r2 into main 2026-11-11 00:46:59 +00:00
9e7dca2716 Desk reads: order is a unique 0-based rank by (admission, key); pages hold at most limit and stop at the byte budget; a lone oversize first entry is the named refusal with its order; vectors re-vendored from CultLib 9d6ee72e
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:36:48 +00:00
288d17cad3 Desk reads: order is a unique 0-based rank; failing tests first (batch of 64 pages, rank stability, gaps, lone oversize, vectors replay); DeskForkTooLarge names the order
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:31:57 +00:00
a056ea814d Merge pull request 'open-direct lows: the open hears the mouth's refusal; one copy of the daily policy text' (#37) from eureka-substrate/open-direct-lows into main 2026-11-11 00:15:09 +00:00
05a6726738 Tests kill three open_direct mutants: schema field description, non-UnknownKind refusal, payload-persona mismatch
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:14:55 +00:00
071dc8e345 Desk door test: the page is short of the bound by the Mind's fill; a group past the budget is the Mind's refusal
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:09:10 +00:00
aeeb36ad2a Desk answer: delete the replayed flag nobody read; tests assert that a replay commits nothing
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:06:27 +00:00
3b775a23c8 Desk door tests: a peer that never reads fails the suite by assertion in five seconds, not by hanging it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:06:27 +00:00
31cc69922e Desk reads: a page fills to the response budget and never splits a same-order group
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:05:08 +00:00
e9757d7f45 Desk reads: page budget and same-order groups, failing tests first (DeskForkTooLarge, DESK_PAGE_BUDGET; the fill is not yet written)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:03:06 +00:00
707642bd54 Desk reads: Mind::desk_forks and desk_fork project card, record and entry at one snapshot
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>
2026-11-10 23:57:27 +00:00
a37bd4f85f Desk reads: the wire types, the request fields and the failing tests (stub reads answer fork_unknown)
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>
2026-11-10 23:50:27 +00:00
88a36386a5 open_direct hears the mouth's UnknownKind refusal and is told not sent; one creation-policy text for the schema and the DailyLimit notice; pin InvitePending wording
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 23:46:35 +00:00
e43a7343f8 Chat RUDP test: an open the mouth refuses as UnknownKind ends the wait and is heard (failing: the refusal is ignored); MouthRefused error type
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 23:44:30 +00:00
03a045de02 Merge pull request 'Desk door: the second peer-checked unix-socket door (Answer and catalog; reads interim)' (#36) from eureka-substrate/desk-answer-door into main 2026-11-10 23:38:38 +00:00
173f28b886 Desk door tests: the one-second lower edge allows jiffy granularity (950 ms still kills a 500 ms bound)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 23:38:33 +00:00
ba9b1013ca Desk door fix batch: the binary tests run one at a time and the accept-error probe fails every new descriptor
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 22:22:18 +00:00
4e43e43a26 Desk door fix batch: one deadline per connection (reads and writes spend what is left), the catalog reply bounded by the response limit, the dead index call and answer_ref deleted
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 22:17:04 +00:00
2b6e15de4c Desk door fix batch: failing tests first (one deadline per connection, the exact bounds, the catalog under the response limit; Soul's survivor probes committed)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 22:13:46 +00:00
4437afbc26 Desk door part B: the binary end-to-end (both doors, restart replay, leftover socket, other uid refused and logged, namespace root seen as the real uid)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 21:42:21 +00:00
035a3eaa62 Desk door part A: the oversize-header test fails fast instead of waiting when the bound is gone
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 21:40:52 +00:00
eca3f53c98 Desk door part A: mutation survivors pinned (header-only oversize refusal, four accepts per pass, unprobeable and unreadable socket paths)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 21:09:57 +00:00
e35181b296 Desk door part A: the unix-socket door, peer uid checked before a byte is read, joined to the one serve loop
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>
2026-11-10 20:56:51 +00:00
88ca0a0867 Desk door part A: failing tests first (peer check before a byte, bounds, answers over the socket, per-call deciders, interim reads refusal, startup gates)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 20:53:42 +00:00
d38db97823 Merge pull request 'Desk wire, part 2: the envelope (wire names mind/authority/subject/deciders, deciders 1..64 unique, generic cores, schemas)' (#35) from eureka-substrate/desk-wire-envelope into main 2026-11-10 20:47:56 +00:00
14a914a634 Desk wire envelope delta: decode refuses an empty decider list (minItems 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 20:44:11 +00:00
0e590f3638 Desk wire envelope delta: failing tests first (empty deciders refused at decode, minItems 1, refusal round trip)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 20:43:31 +00:00
a19fc5b494 Desk wire envelope: DeskRequest with Libby's wire names, deciders per call (max 64), generic envelope cores, desk schemas
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>
2026-11-10 20:31:21 +00:00
ab1b150d2f Desk wire envelope: failing tests first (deciders 64/65, wire names, no crossing, frame, schemas)
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>
2026-11-10 20:28:16 +00:00
9c28a7a9ef Merge pull request 'Pin the InvitePending notice: a pending invitation is told not to be sent again' (#34) from eureka-body/open-direct-pin-wording into main 2026-11-10 20:26:32 +00:00
63d1825628 Pin the InvitePending notice: tell her not to send another invite
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 20:26:19 +00:00
8fef8bdd9e Merge pull request 'Persona: open_direct, her ask that the mouth open a DM with a person she was shown' (#32) from eureka/persona-open-direct into main 2026-11-10 20:22:48 +00:00
c5a98a2884 Merge pull request 'Desk wire lows: replay gate pinned for stored refusals and revisions; every bad fork id is fork_unknown' (#33) from eureka-substrate/desk-wire-s2-lows into main 2026-11-10 19:57:54 +00:00
7550514dcf Desk wire: any bad fork id is fork_unknown, including the key and campaign the Mind derives from it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 19:57:34 +00:00
c64ce59c36 Desk wire tests: a stored refusal and a stored revision replay under an empty decider list
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 19:56:54 +00:00
664be6e77a Merge pull request 'Desk wire, part 1: Libby's answer documents, the one n<seq> conversion, the projection and Mind::desk_answer' (#31) from eureka-substrate/desk-wire into main 2026-11-10 19:44:17 +00:00
732ed009f2 Persona: pin the schema a Direct session runs under; describe open_direct in the module doc
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 19:25:06 +00:00
bc6be42ae9 Desk wire tests: the replay's id map is asserted one-to-one
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>
2026-11-10 19:23:25 +00:00
fc25fc925b Desk wire tests: a key outside its fork's n<seq> form projects Unavailable; the conversion round-trips over many sequences
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>
2026-11-10 19:23:03 +00:00