cultmesh-py: answer an unreadable RUDP frame and end the session after 8 consecutive refusals #45
Loading…
Reference in a new issue
No description provided.
Delete branch "libby/py-refused-frames-cap"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Heimdall's parity ruling (2026-11-08), Python side; Rust is #43 (
4828c416), TS is #44. Differs from TS: the python RUDP server dropped a frame that is no msgpack map silently, so this also adds the answer (message_invalid,details.field = "message", fixed reason) and keeps the session. Then the shared cap,MAX_CONSECUTIVE_REFUSED_FRAMES = 8(module constant incultmesh_py.server): the 8th consecutive unreadable frame, or 8th consecutive delete the write authority refuses (a response carryingwrite_not_authorized), is answered with the goodbye and ends that peer's session. A decoded map resets the unreadable run; any delete that is not refused, or any non-delete, resets the delete run.Touches the write-authority path (refused deletes are counted from the authority's refusal response); the authority's decision and refusals are unchanged. Left unmerged for Heimdall.
Tests: two new (7 answered, reset, 7 more, 8th answered then ended; same for deletes with a granted delete and a snapshot as resets). Six hand mutants fail them under prlimit as=4GiB cpu=300 (cap 7, cap 9, unreadable never resets, delete run never resets, delete never counts, cap removed). cultmesh-py suite passes.
🤖 Generated with Claude Code