CultLib/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens cbde940df2 Let the advertised profile own each channel's reliable expiry
The first pass put the media deadline on the transport options and carried it as
a runtime field on the connection and hub. That is a second answer to what a
channel does, able to disagree with the profile the peer was actually shown.

CultNetTransportChannel now carries reliable_expire_after_ms and the send path
resolves the deadline from the profile, so there is one answer. The runtime
fields are deleted rather than left as a shadow copy. The transport option
remains as the knob that populates the profile, not as a parallel authority.

Odin's fork had the field in exactly this place, which is how the gap surfaced:
its muninn test reads it off the channel descriptor.

This is wire-visible, unlike the rest of the expiry work. The field is optional
and skipped when absent, so a profile that does not set it is byte-identical to
one from a runtime that has never heard of it -- but the RUDP profile does set
it on the media channel, so Rust peers now advertise it. Verified against the
interop lane: TypeScript, C# and Kotlin all accept the profile unchanged, in
five passing lanes each. The Python lanes cannot run here because this machine's
Python runtime has no msgpack, and they fail identically before and after this
change.

The other four runtimes should grow the field so a profile round-trips through
them without losing the channel's declared behaviour.

cultnet-rs: 107 tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 03:57:44 +02:00
..
cultcache-py Finish the sequence-domain split in Python and Kotlin 2026-09-04 00:40:05 +02:00
cultcache-rs Add the per-entry snapshot compare-exchange Odin consumes 2026-09-04 03:32:07 +02:00
cultcache-ts Make TypeScript packages release-packable 2026-07-13 23:47:38 +01:00
cultmath Clarify CultMath and CultGeometry ownership 2026-08-26 17:47:06 +02:00
cultmesh-browser Harden CultMesh route fallback and secure onboarding 2026-08-18 19:41:03 +02:00
cultmesh-kotlin Finish the sequence-domain split in Python and Kotlin 2026-09-04 00:40:05 +02:00
cultmesh-rs Give the Rust CultMesh runtime a home 2026-09-03 23:09:45 +02:00
cultmesh-ts Recover authority-bound CultMesh and atomic generations 2026-08-26 19:01:24 +02:00
cultnet-rs Let the advertised profile own each channel's reliable expiry 2026-09-04 03:57:44 +02:00
cultnet-ts Separate RUDP reliable and lossy sequence domains 2026-09-04 00:33:16 +02:00