Desk door: listing gate and account-id grammar at decode (PR B of cut-desk-feed-listing.r8; stacked on #62) #63

Open
eureka wants to merge 3 commits from eureka-substrate/desk-listing-gate into main

2026-11-11

docs: published schemas type nullable answerer/raised_at as plain string
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 21:30:01 +00:00
Desk door: the listing gate and the account-id grammar at decode
A non-decider reads a fork only while the Mind's desk_listing for it is in force; a decider sees
every showable fork. Counts, pages and cursors are over the visible set; a hidden fork reads as a
missing one (same bytes). New kind desk_listing (epiphany.pipeline.desk_listing.v2, key
<campaign>:desk_listing:<question-label>; unlist = Withdrawn resolution, relist = withdraw that),
new citation role Listed (ALL is 27), admitted on the Admit door only (the desk door refuses one).

subject and every deciders entry are AccountId (lowercase D-format UUID) at decode, refused as
payload-not-a-request naming the field and never the value; the stored desk_answer.answerer is an
AccountId. The longest kind name is now desk_listing, so the resolution local bound is 112.

Tests move to account ids (fixtures::account); refused-request fixtures and their failure frames;
all published schemas, the golden envelopes and the catalog index regenerated.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 21:24:50 +00:00