Fork card: fork_too_large (422) for a list whose first entry, or a read whose entry, is past the reply cap #88

Merged
libby merged 4 commits from libby/fork-too-large-draft into main 2026-11-11 01:29:35 +00:00
Member

Persona decision 2026-11-11. New refusal code fork_too_large, HTTP 422, on list (the first entry of a page alone is past the receiver's response budget; error names fork id and order; client continues with c<order>; at order 0 the client has reached the end) and on read (the whole entry is past the reply cap, 65536 bytes in Huginn's daemon; error names the fork id, no cursor).

  • fork-card.md: code list, List and Read paragraphs; a page may hold fewer than limit entries and next_cursor resumes below the last entry returned; the too-large fork is skipped by the cursor; request_id_conflict is answer-only and a door conflict on read or list is a door fault shown as 503 unavailable; open choices 12 (cap on answers per fork, tracked as libby-body:follow_up:answers-per-fork-cap) and 13 (the read form is a target: Huginn answers ResponseTooLarge{bytes,limit} today, which Bifrost must map using the route's fork_id).
  • Schema: fork_too_large added to the refusal enum.
  • Vectors (generated, additions only): transport.listShortPages (short page, refusal at order 3 continued by c3, refusal at order 0), readTooLarge, doorFaults (read/list/answer with response bytes), doorRefusals entry at 422. Both judges assert 422 and the exact bytes.

Verified: TS governance-vectors 24/24, C# --filter GovernanceVector 21/21; generator output byte-identical; Soul held on origin/main..9394be3d, hand mutations (413, order in the read text, doorFaults bytes) fail both judges. Branch CI was not consulted: the forge's single runner queue was still working through earlier runs.

🤖 Generated with Claude Code

Persona decision 2026-11-11. New refusal code `fork_too_large`, HTTP 422, on list (the first entry of a page alone is past the receiver's response budget; error names fork id and order; client continues with `c<order>`; at order 0 the client has reached the end) and on read (the whole entry is past the reply cap, 65536 bytes in Huginn's daemon; error names the fork id, no cursor). - fork-card.md: code list, List and Read paragraphs; a page may hold fewer than `limit` entries and `next_cursor` resumes below the last entry returned; the too-large fork is skipped by the cursor; `request_id_conflict` is answer-only and a door conflict on read or list is a door fault shown as 503 `unavailable`; open choices 12 (cap on answers per fork, tracked as libby-body:follow_up:answers-per-fork-cap) and 13 (the read form is a target: Huginn answers `ResponseTooLarge{bytes,limit}` today, which Bifrost must map using the route's fork_id). - Schema: `fork_too_large` added to the refusal enum. - Vectors (generated, additions only): `transport.listShortPages` (short page, refusal at order 3 continued by `c3`, refusal at order 0), `readTooLarge`, `doorFaults` (read/list/answer with response bytes), `doorRefusals` entry at 422. Both judges assert 422 and the exact bytes. Verified: TS governance-vectors 24/24, C# `--filter GovernanceVector` 21/21; generator output byte-identical; Soul held on origin/main..9394be3d, hand mutations (413, order in the read text, doorFaults bytes) fail both judges. Branch CI was not consulted: the forge's single runner queue was still working through earlier runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fork-card.md: say the read form of fork_too_large is a target; Huginn answers ResponseTooLarge today
All checks were successful
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 17m20s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 41s
d07a07e857
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit f6c9bf5f97 into main 2026-11-11 01:29:35 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!88
No description provided.