The door context carries mind, authority, subject and deciders (fork-card.md M5).
Deciders are 1 to 64 unique ids per Mind, refused at startup and again before any
door call. A throwing credential port or account lookup answers 503 unavailable.
Startup refuses two Minds sharing one socket. Behavioural tests for the per-Mind
list, the body cap to the byte, Retry-After, audience case, no-store, cancellation
and the stale-fork card read.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
GET /api/desk/{mind}/forks and /forks/{fork_id}; the query is judged as
request_invalid before the Mind lookup. Every door call (answer, read, list)
carries the configured deciders; the vectors' 22 auth cases and 57 route cases
now replay for all three routes.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
POST /api/desk/{mind}/answers behind one pipeline: raw target, bearer, audience,
scope, Active membership, body shape, {mind} lookup, door. Mapped only when the
Desk section exists; a configured desk without its credential and door ports
stops startup. Stale_fork answers carry the current card read through the door.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Hand mutation showed strict UTF-8, non-ASCII refusal and bad-escape refusal
were unobserved; a configured id that spells the failure now exposes each.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
DeskOptions binds Minds as an ordinal array with sockets and per-Mind
deciders, plus Operator/Stewards attribution. StartupConfigurationValidator
refuses blank or repeated ids, relative sockets, non-lowercase-D account ids
and an Operator listed as steward. DeskMindRoutes.Resolve percent-decodes the
raw segment once (strict UTF-8) and compares ordinally; tests replay every
mindRoutes vector segment. No route is mapped.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Records for the CultLib fork-card contract (answer_request, refusal,
unavailable, card, desk_answer, answer_result), DeskBodyShape (cap, forbidden
keys at any depth, closed keys, types and formats, UTF-8 byte note limit) and
fork-card-vectors.json vendored from CultLib 6231ecad with a sha256 pin. Tests
replay the vector arrays row by row. Nothing is mapped yet.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>