Commit graph Odin/scripts
Author SHA1 Message Date
soul-probe
092ff997b4 Delete deploy, restart, health and start/stop scripts for other services
Odin does not deploy, restart or health-probe anything: Idunn owns
deployment and daemon survival, and every service in this set is either
Idunn-deployed from its own repo recipe or archived. Removed from
scripts/: deploy-yggdrasil-{heimdall,repixelizer,source-app,streampixels}
(.ps1/.cmd, armed behind IDUNN_ACTUATOR=1) and the linux heimdall deploy;
restart-* (odin, stonks, vili, weksa, nightwing eve dashboard and browser
reference; several already exit 2 or throw as archived); health-* (odin,
voidbot, stonks, vili, weksa, mimir, nightwing, raven capture mux,
yggdrasil heimdall/repixelizer/streampixels/source-app; archived stubs and
orphans); start-odin.ps1 and stop-odin.ps1 (launched the deleted Node
coordinator).

Kept: write-gjallar-persona-cc.mjs (persona tooling, package.json
gjallar scripts) and the nightwing usb-move helpers, wasapi loopback,
firewall and wireguard scripts, none of which is a lifecycle actuator.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 00:22:19 +02:00
soul-probe
06282c47d8 Delete the retired Node coordinator, its tests and npm entry points
src/odin-coordinator.cjs and src/odin/* (probes.cjs docker/adb host
probes, state.cjs, provider-ingress.cjs with its 120 s TTL) were retired
when the Rust odin-daemon became the deployed body (state/map.yaml: the
Node coordinator that held 17871 is retired). The recipe builds only
odin-daemon; nothing in the Rust crate graph loads a .cjs file. The live
Yggdrasil hermodr container runs from the immutable release
/srv/odin/current, not from this tree.

Removes src/, test/ (4 test files for that JS), scripts/check-syntax.cjs
(the JS syntax gate), and the package.json scripts start, check, test,
muninn:build, muninn:start (the last two named a crate that is not in the
workspace). gjallar:persona and rust:test stay.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 00:21:30 +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
4ac621ce8e Carry contracts/cultnet in the StreamPixels CultLib archive
cultnet-ts's build (generate-swarm-contracts.mjs) mirrors CultLib's
canonical contracts/cultnet into its own package tree at build time, so
`npm run build:ts` fails on cultnet-ts on a host that only has the
packages the previous archive list carried. Verified by a dry run of the
Cut E archive on Yggdrasil: build:ts failed with ENOENT on
CultLib/contracts/cultnet until this path was added.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 15:58:50 +02:00
Meta Vens
1449640ef0 Carry CultLib's build files and cultmesh-ts/cultmesh-browser in the StreamPixels archive
The archive built only packages/cultnet-ts and packages/cultcache-ts, and
dist/ is gitignored in both, so the current actuator ships CultLib
packages with no dist/ and the service fails at import (P1). Add the
CultLib root package.json/package-lock.json and
scripts/run-typescript-workspaces.mjs so the deploy host can build
CultLib's TS dist/ itself, and carry packages/cultmesh-ts and
packages/cultmesh-browser alongside the two packages already archived.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 15:54:11 +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
2265184da3 Ship all three Python packages to Repixelizer
CultLib split packages/cultcache-py into cultcache-py, cultnet-py and
cultmesh-py. Module names did not change, so archiving only the first
still succeeds and produces a tarball missing two thirds of the library --
a failure that surfaces later as an ImportError with nothing pointing back
to this line.

The two sibling deploy scripts ship cultnet-ts and cultcache-ts and are
unaffected by a Python split.

Not exercised: repixelizer.service is inactive, so this is a trap defused
rather than a break repaired.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 21:41:42 +02:00
Meta Vens
3f22fd1d76 Hermodr leaves Odin
Hermodr is a browser lowering, not an all-seer organ. It lived here as Node
inside a Rust repository, sharing a module directory with the coordinator, and
until this week it ran its own provider ingress and accepted publications into a
private store. The ingress went first on purpose: extracting it beforehand would
have relocated a second acceptance authority and called that progress.

Removed: the daemon, its provider subscription source and state stream, both
test files, four lifecycle scripts, the persona avatar, the hermodr:start
script, and src/odin/utils.cjs, whose only remaining consumer was Hermodr and
which it used for one of six functions.

src/odin/ falls from fourteen modules to eleven. The CommonJS surface falls from
sixteen files to twelve. What is left is the coordinator, the Rust organs, and
two adapters declaring contracts other repositories own.

The plan document stays as the record of what left and why. Phase 5, static
lowering, is Hermodr's business now.

5 tests pass, syntax check clean over twelve files.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 19:46:06 +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
515a864ef0 Rebase Idunn actuator scripts off the projects root
The previous commit fixed the target catalog and the operator alarm, but the
actuators the catalog invokes carried the same E: paths. Idunn would have
resolved every target and then failed on the first restart or deploy it ran,
for exactly the reason the alarm failed.

Rebased 41 references across 27 scripts:

- .cmd bodies invoke their sibling .ps1 through %~dp0 instead of an absolute
  drive path, and restart-weksa.cmd reaches its sibling repo the same way.
- .ps1 parameter defaults and assignments derive from $PSScriptRoot: one level
  up for paths inside Odin, two for sibling repos under the projects root.

Left deliberately alone: $RemoteViliRoot and $StateRoot in restart-vili.ps1.
Both are consumed inside the EncodedCommand block that restart-vili ssh's to
raven, so they describe raven's filesystem, not starfire's. Whether raven also
moved off E: is an operator question, not something to infer from here.

Verified: all 46 scripts under scripts/ parse clean, and the derivation
resolves to F:\Projects\Odin and F:\Projects on this host.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 01:05:40 +02:00
Meta Vens
70ad92c8e3 Restore Idunn starfire paths after the E: drive loss
The projects root moved from E: to F:, but Idunn's starfire-local surfaces
still named E:\Projects. Local Idunn died on 2026-08-16 with "fatal: cannot
change to 'E:\Projects\Heimdall'" and every one of its 16 operator alarms
also failed (0xfffd0000), because notify-idunn-operator-alarm.cmd shelled to
an E: path that no longer existed. The supervisor was down for 18 days and
could not say so.

Rather than swap one hardcoded drive letter for another, derive the projects
root the way this catalog already derives its repo root:

- notify-idunn-operator-alarm.cmd invokes its sibling via %~dp0.
- notify-idunn-operator-alarm.ps1 resolves Bifrost from the projects root.
- idunn-deployment-targets.ps1 gains $projectsRoot and rebases 19 LocalPath
  values onto it. The remote /srv/build/VoidBot path is left alone.

Verified: the catalog resolves 15 of 20 targets to real directories, the
remote target is untouched, and the alarm chain now runs to exit 0 emitting
a valid gamecult.operator_dm_request.v1 under IDUNN_OPERATOR_ALARM_DRY_RUN.

Still broken, not addressed here: stonks, vili, StreamPixels and repixelizer
have no directory under F:\Projects, and the Bifrost publisher's non-dry path
throws "definition.schema.parse is not a function" against the current
CultMesh.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 23:14:48 +02:00
Meta Vens
32cbb5f028 Bind Idunn deployment and runtime admission 2026-09-02 13:53:07 +02:00
Meta Vens
446657a1bd Rename Epiphany capstone target 2026-08-25 12:11:43 +02:00
Meta Vens
fa0057c0c1 Add isolated Epiphany container target 2026-08-25 04:33:18 +02:00
Meta Vens
45e98fe8d4 Give Codex Connector an independent Idunn target 2026-08-24 21:19:13 +02:00
Meta Vens
22897fdbaa Refresh Gjallar Yggdrasil memory 2026-08-24 20:51:02 +02:00
Meta Vens
98c67e3579 Move Gjallar supervision to Yggdrasil 2026-08-24 20:40:19 +02:00
Meta Vens
8b972715c4 Expose Idunn deployment brake denial causes 2026-08-22 16:09:20 +02:00
Meta Vens
11b7669c75 Let Idunn lock deployment brake snapshots 2026-08-22 15:57:02 +02:00
Meta Vens
93d17187ba Authorize Epiphany unit promotion 2026-08-22 13:00:07 +02:00
Meta Vens
2a5cb3e08f Authorize Ghostlight deployment surfaces 2026-08-22 03:00:49 +02:00
Meta Vens
7c5246fc09 Give Idunn Epiphany source change authority 2026-08-21 20:59:11 +02:00
Meta Vens
13caf9bad5 Remove Odin runtime from Idunn bootstrap inputs 2026-08-21 20:07:57 +02:00
Meta Vens
c7012a87c9 Admit Odin as a signed Idunn target 2026-08-21 19:50:24 +02:00
Meta Vens
325442a0fa Decouple Idunn runtime from Epiphany 2026-08-20 19:14:45 +02:00
Meta Vens
b907a9d0c0 Make Idunn deployment brake read-only 2026-07-20 00:07:04 +01:00
Meta Vens
2b1f1ee64e Gate Idunn actuation with typed deployment brake 2026-07-19 23:56:42 +01:00
Meta Vens
67e752c562 Move Bifrost Persona feedback deployment onto Yggdrasil 2026-07-18 21:20:00 +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
b529dc4375 Carry Idunn authority through sudo actuator 2026-07-15 20:37:42 +01:00
Meta Vens
4c6670d89b Grant Idunn its hosted release roots 2026-07-15 20:34:00 +01:00
Meta Vens
c5d71e1991 Give Idunn ownership of Yggdrasil VoidBot releases 2026-07-15 20:25:16 +01:00
Meta Vens
4ffcf5d8e2 Add Heimdall Idunn build deploy manifest 2026-07-15 03:53:32 +01:00
Meta Vens
641f0d3c56 Add Yggdrasil Idunn service boundary 2026-07-15 03:18:04 +01:00
Meta Vens
60f5c97059 Add Yggdrasil-local Idunn authority 2026-07-15 03:17:04 +01:00
Meta Vens
b5c7add6cf Advertise Nightwing commands over WireGuard 2026-07-13 05:34:11 +01:00
Meta Vens
cf87d1ca4b Tune Move tracker exposure per camera 2026-07-13 01:23:11 +01:00
Meta Vens
137ef85dbe Terminate private Move workers with their Muninn generation 2026-07-13 01:14:47 +01:00
Meta Vens
c70020e8ba Collapse Nightwing Move cameras into one Muninn provider 2026-07-13 00:22:23 +01:00
Meta Vens
69a9a736ef Run Nightwing cameras as isolated Muninn observers 2026-07-12 23:56:39 +01:00
Meta Vens
dd82ae7302 Trace Muninn provider command handshakes 2026-07-12 23:22:43 +01:00
Meta Vens
ca56e65e78 Advertise Nightwing command ingress on working LAN route 2026-07-12 23:12:28 +01:00
Meta Vens
e2ef0c9087 Give Muninn a provider-owned command route 2026-07-12 22:54:41 +01:00
Meta Vens
c078e77e94 Restore single healthy Nightwing tracker 2026-07-12 22:48:46 +01:00
Meta Vens
0e5aef7bc5 Observe both Nightwing PS3 Eyes 2026-07-12 22:45:15 +01:00
Meta Vens
c246ce424e Run Nightwing Eye as a light-passive observer 2026-07-12 22:10:03 +01:00
Meta Vens
88534fca87 Deploy explicit-runtime health on Starfire 2026-07-12 21:53:52 +01:00
Meta Vens
673f1f36ad Deploy independent Muninn heartbeat on Starfire 2026-07-12 21:50:01 +01:00
Meta Vens
6b40422a55 Serialize Starfire Muninn restart authority 2026-07-12 21:46:19 +01:00