cultmesh-ts: write authority decide timeout counts as a typed refusal #40

Merged
libby merged 3 commits from libby/ts-decide-timeout into main 2026-11-08 09:13:11 +00:00
Member

Closes follow-up ts-authority-decide-timeout. Touches write authority: do not merge until Heimdall has said so.

  • createRudpDocumentServer gains writeAuthorityTimeoutMs (default 5000). A decide() that has not settled by then is refused as write_not_authorized, reported to onError, and no longer blocks later frames on the session.
  • Test: first put hangs forever, second put (granted) is applied and the first is refused after the timeout.
  • remote-write-authority.test.ts granted-path test now asserts the canonical schemaId.
  • cultmesh-ts suite file remote-write-authority.test passes (17/17). No tag, no publish.

🤖 Generated with Claude Code

Closes follow-up `ts-authority-decide-timeout`. Touches write authority: **do not merge until Heimdall has said so.** - `createRudpDocumentServer` gains `writeAuthorityTimeoutMs` (default 5000). A `decide()` that has not settled by then is refused as `write_not_authorized`, reported to `onError`, and no longer blocks later frames on the session. - Test: first put hangs forever, second put (granted) is applied and the first is refused after the timeout. - `remote-write-authority.test.ts` granted-path test now asserts the canonical `schemaId`. - cultmesh-ts suite file `remote-write-authority.test` passes (17/17). No tag, no publish. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
cultmesh-ts: write authority decide timeout counts as a typed refusal
Some checks failed
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) Failing after 5m41s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 31s
3f150799f0
A never-settling decide() held up the later frames of its session. The
server now races it against writeAuthorityTimeoutMs (default 5000) and
refuses with write_not_authorized on expiry. The granted-path test now
asserts the canonical schemaId the authority saw.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultmesh-ts: refuse an unusable writeAuthorityTimeoutMs at construction
Some checks failed
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) Failing after 6m2s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 46s
43abf9762f
Review finding: NaN, Infinity or >2^31-1 becomes a 1 ms Node timer and would
refuse every write that is not instant; 0 and negatives were silently clamped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultmesh-ts: test that a grant arriving after the decide timeout is refused and never reaches the handler
Some checks failed
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) Failing after 4m41s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 57s
386f036849
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit fd119ea36c into main 2026-11-08 09:13:11 +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!40
No description provided.