Phase 2 references for the host-agent Dune adapter, moved out of volatile /tmp
into docs/reference-repos/ (per Commander). Three upstream projects, .git +
node_modules + compiled binaries stripped (16MB source). Nested AI-instruction
files (.claude/, CLAUDE.md) removed so they don't pollute Corrosion sessions.
- icehunter/ dune-admin (Go+React) — 4 control planes; SETUP_DOCKER.md is the
closest analog to our agent's Dune docker control plane (compose
lifecycle, docker logs, RabbitMQ-via-exec, dune Postgres schema)
- adainrivers/ Rust/Tauri desktop — SSH+k8s BattleGroup control, maintenance
daemon, in-game admin console (Rust idiom reference)
- the4rchangel/ Node web UI replacing battlegroup.bat — matches the Commander's
Hyper-V self-host path + game-config schema
See docs/reference-repos/README.md for the full index + how we use each.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Two reported issues against v0.3.7 — both fixed.
Reinstall step
After updating the desktop app, click Install / Update on the Management Service card so the refreshed on-host service binary is pushed.
Fixed
Install management servicefailed withinstall: No such file or directorywhen SSH'ing in asrooton Ubuntu 24.04+. Root cause: the install-init and write-token steps piped base64-decoded content intosudo install /dev/stdin <dest>, and sudoers'Defaults use_pty(default on noble) allocates a pty for the child process which severs the upstream pipe. The same flow worked when SSH'ing asdunebecause that account's sudoers entry bypassesuse_pty. Both steps now stage their payload to a real temp file viamktempfirst, thensudo install <tmp> <dest>, sidestepping the pty entirely.- Director tunnel button grayed out even on a fully running BattleGroup. We were parsing the vendor wrapper's
battlegroup statustext table for phase information, but newer Funcom operator builds changed the row vocabulary (the "Status" column now shows the partial world name, "Director" shows anN/Mready ratio, "Uptime" shows aHealthy/Unhealthyword instead of a duration). None of those values matched our phase allowlist, so the UI thought the BattleGroup was not started. We now read phase / serverGroupPhase / directorPhase / databasePhase / uptime / per-server stats directly from the BattleGroup CR'sstatusobject viakubectl get battlegroup ... -o json, which is the stable Kubernetes schema and immune to future wrapper text format changes.
Changed
- Server status reads no longer go through the vendor wrapper. Start, stop, restart, and update lifecycle actions still use the wrapper (where it's the source of truth for orchestration).