Commit graph Odin/Cargo.lock
Author SHA1 Message Date
soul-probe
99f9a22fa4 odin-core: keep the cultnet-rs dependency (cultmesh_documents! expands to it)
The previous commit dropped cultnet-rs from odin-core's manifest as
unused; cultmesh_documents! emits cultnet_rs paths, so the crate needs it
in scope. Restore the dependency and its lockfile entry.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 00:22:45 +02:00
soul-probe
6aba9a8801 Delete odin-core's Idunn lifecycle planner and idunn.* schemas
crates/odin-core/src/idunn.rs (plan_keepalive: observe, alarm, deploy or
restart from IdunnDaemonHealthRecord) had no caller: odin-daemon does not
depend on odin-core, and the deployed recipe builds only odin-daemon.
Idunn owns deployment and daemon survival; nothing in Idunn reads these
records (its own live in cultnet-rs).

Also removes from documents.rs the idunn.* and bifrost release-authority
schema constants and records, their OdinDocuments registrations, the
cultnet re-exports of Idunn health types, and the tests that only
exercised them. The muninn.* copies stay. cultnet-rs and rmp-serde drop
out of odin-core's manifest and lockfile entry (no remaining user).

Muninn pins odin-core at 3e96c6c and is unaffected until its next bump,
which must drop IdunnDaemonHealthRecord.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 00:20:38 +02:00
Meta Vens
2dea7f6eed Bump CultLib pin to 3bf1c0ce (RUDP stray-packet hardening)
Odin crashed on a stray RUDP packet; CultLib 3bf1c0ce hardens stray-packet
handling in all runtimes. Both manifests (odin-core, odin-daemon; Odin has no
workspace.dependencies) move from a8aeddac to 3bf1c0ce. No API breaks: the
workspace compiles and tests unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 22:11:27 +02:00
Meta Vens
d2e9234d79 Delete crates/sleipnir-daemon: Sleipnir lives in the Muninn workspace
Sleipnir moved into Muninn with its history (Muninn f4f1f85, operator ruling
Q9); the StreamPixels ship that gated this deletion completed 2026-09-29.
Removes the crate, its workspace member, its Cargo.lock entries (including
vigem-client), the sleipnir:build/sleipnir:start package scripts, and the
deploy/restart/start launcher scripts that shipped Odin's sleipnir.exe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 22:09:41 +02:00
Meta Vens
b8ef6c62ae Odin exits cleanly on SIGTERM; bootstrap waits up to five minutes for its lease
Idunn runs the daemon as PID 1 of its own PID namespace, and a namespace init
ignores every signal it has not caught. Every stop was a ninety-second wait
for SIGKILL, which is what fencing the incumbent cost tonight's fold-back
candidate: it gave up on its sixty-second bootstrap wait before Idunn could
grant the lease. Odin now catches SIGTERM and SIGINT and returns from its
loops; the bootstrap wait is bounded at five minutes, with Idunn's abort as
the real owner of a candidate nobody leases.

Verified in rust:1.95-bookworm on yggdrasil: 22 + 13 (+1 ignored) + 4 passed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 00:42:28 +02:00
Meta Vens
d41c744b2e Muninn has one body: drop the workspace copy
The three muninn crates, their seventeen actuator scripts, the two Raven
capture-mux wrappers that called one of them, and the two Muninn docs all
leave this workspace. GameCult/Muninn has carried them since 2026-09-09 and
has moved on (media stream advertisement, receivers dialling the producer);
this copy was a fork drifting behind under the same name, and gamecult-ops
now binds every Muninn target to the Muninn repository. Odin keeps the
Muninn records in odin-core until they are moved; that is the remaining
piece of the extraction.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 23:39:16 +02:00
Meta Vens
f7e3fc341a Update Cargo.lock for the CultLib bump
0e540ca moved the rev in four Cargo.toml files and left the lock naming
c13b6ba. Idunn's build runner passes --locked, precisely so a sealed
source builds the dependency set it was sealed with, and refused:

  error: cannot update the lock file /workspace/Cargo.lock because
  --locked was passed to prevent this

Which is the runner doing its job. The failure landed in Sealing, before
fencing, so the admitted incumbent was never touched -- Odin stayed up on
the same pid throughout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 12:10:43 +02:00
Meta Vens
222fe03896 Move Idunn's unit files, docs and operator scripts out of Odin
Completes the extraction. Unit files and documentation went to the Idunn
repository, where a service's own deployment surface belongs. Operator scripts
went to gamecult-ops, which is where fleet tooling lives.

To Idunn: scripts/linux/idunn-yggdrasil{,.service,.sudoers}, docs/idunn.md,
docs/idunn-deployment-authority.md,
docs/idunn-signed-daemon-health-authority.md, src/Idunn/README.md.

To gamecult-ops/scripts/idunn/: the eight PowerShell and cmd operator tools --
deployment targets, startup install, swarm coverage health, operator alarm
notification, local start.

Staying in Odin, deliberately: crates/odin-core/src/idunn.rs, Odin's own
projection of Idunn state for aggregation; src/odin/idunn-rudp.cjs, its client
for talking to Idunn; test/idunn-signed-health.test.cjs, its own integration
test; and deployment/idunn/recipe.toml, which despite the path builds
odin-daemon and is Odin's recipe expressed in Idunn's format.

docs/transport-shortcut-inventory.md is a dated evidence ledger citing several
of the moved script paths. Its entries are left as written and a path note
added at the top -- rewriting a ledger to match a later reorganisation would
destroy the record it exists to keep.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 18:16:38 +02:00
Meta Vens
0995222c17 Sever idunn-daemon's last import from odin-core
IdunnDaemonHealthTrustBindingRecord and its schema constant moved to
cultnet-rs (GameCult/CultLib@c13b6ba). odin-core now imports them from
cultnet_rs instead of defining them, and idunn-daemon/provisioning.rs
pulls all six provider-health symbols from cultnet_rs directly, merged
into its existing cultnet_rs use block. Dropped the odin-core path
dependency from idunn-daemon/Cargo.toml — nothing in the crate reaches
odin_core:: anymore. Bumped the CultLib git rev across all six
consuming manifests to the new commit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 17:43:24 +02:00
Meta Vens
ba8b4afbb6 Bump CultLib to ae0ac0d and give odin-core its missing rmp-serde dev-dep
Moves all six CultLib pins from cbde940 to ae0ac0d, which carries the
reconciled cultmesh-rs. The delta is three commits and near-nothing in the
packages Odin consumes: a license line, two lines in cultnet-rs replication,
and one additive pub fn.

The dev-dependency is a real pre-existing defect, not fallout from the bump.
odin-core's tests use rmp_serde in crates/odin-core/src/idunn.rs but never
declared it, so the lib-test target has never compiled. Verified pre-existing:
9 errors at the old pin, 8 at the new. With the dep declared, odin-core tests
compile and 22 pass -- including idunn_records_round_trip_through_cultmesh,
which matters for the extraction this branch is preparing.

Note for anyone checking this on Windows: odin-daemon does not build here and
that is expected, not a regression. It imports std::os::fd and from_raw_fd,
which are Unix-only. Identical failure at both pins.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-05 17:35:54 +02:00
Meta Vens
27cc8156bc Consume CultCache and CultNet from CultLib instead of forking them
The CultNet submodule and the in-tree CultCache copy are gone. Both now come
from CultLib, and vendor/cultmesh-rs is the only fork left -- it too consumes
CultLib, so exactly one version of each crate spans the graph. That mattered:
mixing sources would have put two cultnet-rs crates in one build, and the types
would not have unified.

The in-flight CultMesh RUDP document server comes with it because it is a
prerequisite, not a coincidence. The previously committed CultMesh calls
assume_connected(), a CultNet method Odin's fork carried and CultLib does not,
so the old code cannot build against CultLib at all. The newer code no longer
calls it. Verified by reverting the file and watching it fail.

Three API differences needed adapting: CultLib's transport options carry a
reconnect_policy the fork lacked (7 sites), its create_ack builds the packet
straight from ack state and so cannot fail, and its transport profile owns each
channel's reliable expiry.

Everything but odin-daemon builds; odin-daemon is Unix-only and does not compile
on this machine either way. muninn and sleipnir pass 162 tests. The one failure,
rudp_media_transport_options_follow_low_latency_profile, expects an Unreliable
media channel while every CultNet lineage including both revisions Odin had
pinned declares it Reliable, so it failed before this change too.

The in-flight idunn-daemon work is deliberately left uncommitted; the committed
tree was verified to build without it. Also left alone: the untracked
odin-daemon crate and deployment recipe, and the root manifest, whose now-dead
vendor excludes are inert. That recipe still requires the vendor/cultnet-rs
gitlink and will refuse admission until that line is dropped -- the fix is in
the working tree, waiting on that directory being tracked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 14:54:58 +02:00
Meta Vens
8692553908 Fence parent-only runtime signing credentials 2026-09-03 06:02:54 +02:00
Meta Vens
167c234276 Lock Idunn deployment parser dependencies 2026-09-02 18:53:12 +02:00
Meta Vens
c05e37ca6e Add typed service signing identities to CultNet 2026-07-19 20:08:40 +01:00
Meta Vens
d3ca28ff0a Kill Idunn command process groups on timeout 2026-07-18 21:23:29 +01:00
Meta Vens
92fab01d37 Make Idunn admission atomic and request-bound 2026-07-17 02:37:42 +01:00
Meta Vens
ecaac7f835 Gate Yggdrasil releases through Bifrost 2026-07-16 18:34:26 +01:00
Meta Vens
a014e38e99 Run Move tracking through PSMoveAPI 2026-07-12 21:11:20 +01:00
Meta Vens
35a4bfd1fb Wire Muninn Move marker evidence seam 2026-07-08 22:10:46 +01:00
Meta Vens
4ad8bdb481 Rework Odin transport ownership and service names 2026-07-04 22:38:43 +01:00
Meta Vens
7d3646b95b Buffer Muninn RUDP media sender 2026-06-19 17:30:23 +01:00
Meta Vens
f77d00be6e Tune Muninn RUDP media for LAN quality 2026-06-19 01:53:04 +01:00
Meta Vens
d26f0c5412 Publish Muninn provider witness records 2026-06-16 21:45:52 +01:00
Meta Vens
789ef4a76d Publish Starfire Muninn health over RUDP 2026-06-16 00:07:55 +01:00
Meta Vens
55309df767 Add Idunn RUDP health ingress 2026-06-15 22:50:43 +01:00
Meta Vens
a754db74c7 Publish Idunn RUDP runtime self-check 2026-06-15 22:35:00 +01:00
Meta Vens
d9d9ba3fda Own Starfire Move lights in Muninn 2026-06-14 19:57:49 +01:00
Meta Vens
8e6322c7a1 Stream Muninn Move evidence over CultMesh 2026-06-12 10:45:47 +01:00
Meta Vens
067a4c54b4 Publish Muninn Move controller state 2026-06-11 17:48:15 +01:00
Meta Vens
8e57257cf1 Move Move marker extraction into Muninn 2026-06-10 20:51:46 +01:00
Meta Vens
b63f8e4241 Add lazy Muninn telemetry organ 2026-06-08 20:28:39 +01:00
Meta Vens
d4e9af5678 Make Gjallar the Nightwing compositor 2026-06-05 16:24:36 +01:00
Meta Vens
c87a9f8a4d Make Gjallar the Nightwing overview compositor 2026-06-05 02:12:16 +01:00
Meta Vens
113d5bf5e5 Move Gjallar daemon body to Rust 2026-06-04 21:10:55 +01:00
Meta Vens
a73950a7fe Move Idunn into Odin Rust body 2026-06-04 21:07:42 +01:00
Meta Vens
24b2e5c2bc Add Rust typed Odin core 2026-06-03 01:39:18 +01:00