From 0e540cae18a2f3e08e269a059ca85e44e108e393 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 10 Sep 2026 12:04:12 +0200 Subject: [PATCH] Bump CultLib to a8aedda for bounded fragment reassembly cultnet-rs removed a fragment buffer only on successful reassembly and refused new fragmented payloads once 64 sets were stranded, so any sustained loss on a fragmenting channel ended with the receiver returning "RUDP pending fragment-set limit reached" for every subsequent fragmented payload. Odin is the rendezvous every other target is observed through; a receiver that stops accepting fragmented traffic after a bounded number of losses is the wrong failure mode for that role. Measured on Raven at 3% loss, 12 Mbps: the old receiver dies at 3 and 6 fragments per payload, the new one delivers 91.0% and 82.7%, and the loss amplification matches 1-(1-p)^n exactly. The pin also carries the media stream contracts and the media delivery option, neither of which Odin uses, and the TypeScript and Python halves of the same eviction fix. All 11 CultLib revs across odin-core, odin-daemon, muninn-daemon and sleipnir-daemon move together; leaving any behind gives two cultcache-rs copies and a DatabaseEntry that is not DatabaseEntry. cargo test -p odin-core -p odin-daemon -> 22 passed, 10 passed, 4 passed, 0 failed muninn-psmoveapi-tracker still fails to link in the build image for want of libpsmoveapi. It declares no CultLib dependency, so the pin cannot reach it; that is a missing native library on the builder. Co-Authored-By: Claude Opus 5 --- crates/muninn-daemon/Cargo.toml | 4 ++-- crates/odin-core/Cargo.toml | 6 +++--- crates/odin-daemon/Cargo.toml | 6 +++--- crates/sleipnir-daemon/Cargo.toml | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/crates/muninn-daemon/Cargo.toml b/crates/muninn-daemon/Cargo.toml index 9a2fc33..3710975 100644 --- a/crates/muninn-daemon/Cargo.toml +++ b/crates/muninn-daemon/Cargo.toml @@ -15,8 +15,8 @@ path = "src/main.rs" [dependencies] anyhow = "1" -cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultmesh-rs" } -cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultnet-rs" } +cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultmesh-rs" } +cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultnet-rs" } libc = "0.2" muninn-move-tracker = { path = "../muninn-move-tracker" } muninn-psmoveapi-tracker = { path = "../muninn-psmoveapi-tracker", optional = true } diff --git a/crates/odin-core/Cargo.toml b/crates/odin-core/Cargo.toml index 3d62c96..be4af96 100644 --- a/crates/odin-core/Cargo.toml +++ b/crates/odin-core/Cargo.toml @@ -11,10 +11,10 @@ path = "src/lib.rs" [dependencies] anyhow = "1" -cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultcache-rs" } -cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultmesh-rs" } +cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultcache-rs" } +cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultmesh-rs" } serde_json = "1" -cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultnet-rs" } +cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultnet-rs" } serde = { version = "1", features = ["derive"] } [dev-dependencies] diff --git a/crates/odin-daemon/Cargo.toml b/crates/odin-daemon/Cargo.toml index a7c0dac..f170a02 100644 --- a/crates/odin-daemon/Cargo.toml +++ b/crates/odin-daemon/Cargo.toml @@ -12,9 +12,9 @@ path = "src/lib.rs" [dependencies] anyhow = "1" chrono = "0.4" -cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultcache-rs" } -cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultmesh-rs" } -cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultnet-rs" } +cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultcache-rs" } +cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultmesh-rs" } +cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultnet-rs" } fs2 = "0.4" rmp-serde = "1.3" serde = "1" diff --git a/crates/sleipnir-daemon/Cargo.toml b/crates/sleipnir-daemon/Cargo.toml index 6179ff5..c0372a4 100644 --- a/crates/sleipnir-daemon/Cargo.toml +++ b/crates/sleipnir-daemon/Cargo.toml @@ -11,9 +11,9 @@ path = "src/main.rs" [dependencies] anyhow = "1" -cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultmesh-rs" } -cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultnet-rs" } -cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultcache-rs" } +cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultmesh-rs" } +cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultnet-rs" } +cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "a8aeddacab7dd4b9e634b4420867ea3b402cb858", package = "cultcache-rs" } odin-core = { path = "../odin-core" } rmp-serde = "1.3" serde_json = "1"