diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index c932b39..81242ea 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -173,6 +173,7 @@ Git history and smoke artifacts carry routine proof. `state/evidence.jsonl` shou - The `voidbot.swarm` CultMesh provider store is generated state, not authority. If `.voidbot/status/cultmesh/voidbot-swarm-state.cc` develops duplicate global documents, `scripts/render-voidbot-swarm-dashboard.mjs` archives the bad store and regenerates a clean one; Odin should then rediscover `voidbot.swarm`. - Swarm heat now has a real typed operator path. The Eve/CultUI dashboard places one heat slider beside the eight-entry CTB horizon; Hermodr publishes `gamecult.eve.command.v1` to `cultmesh://voidbot.local/commands/swarm`, the provider route resolves to RUDP `127.0.0.1:17873` with connection id `0x43554c54`, and the VoidBot swarm server validates `swarm.set_heat` in the range `0.05..2.00`. Accepted heat lives in `.voidbot/private/swarm-controls.cc`; `scripts/run-repo-face-heartbeats.ts` reads it before falling back to `REPO_FACE_HEARTBEAT_GLOBAL_HEAT`. `node scripts/smoke-swarm-heat-command.mjs ` verifies the provider consumer directly. A 2026-07-13 Hermodr browser live-fire set heat to `1.25` and the following CTB pass projected that exact global and per-Face heat. - The receipt-driven slider repair is gone. CultLib dev provides typed live-publication handles, authenticated provider sessions, reliable reconnect evidence, and RUDP receipts (`ebd8c78c`, `d4934233`, `8965f3c0`). Eve resolves component bindings and removes receipt-to-DOM authority (`85b0139`, `522df00`). Hermodr ingests retained provider sessions and lowers ordered state over SSE without polling (`5cb819e`, `561e320`). VoidBot publishes accepted heat as typed state (`060da23`, `3d86b93`). Live-fire proved initial `0.65`, provider-driven `0.75`, and browser-command `0.85` all reached the visible slider through the same state subscription. +- Production browser lowering now lives on Yggdrasil: Starfire Chrome reaches Hermodr at `http://10.77.0.1:8798` over WireGuard; Hermodr consumes Odin at `10.77.0.1:17871`, accepts VoidBot's authenticated retained publications on loopback `127.0.0.1:17874`, and sends typed commands to VoidBot's advertised loopback RUDP route at `127.0.0.1:17873`. The 2026-07-15 repair proved Starfire HTTP/catalog/surface access, an SSE snapshot containing global heat `0.05`, and a reconciled `swarm.set_heat` receipt owned by VoidBot. Do not recreate Hermodr or VoidBot on Starfire. - The new state/notes surfaces are now the continuity spine for future nontrivial work. - `npm run agents:feed-consensus -- --agent --cwd --task ""` writes a recent Aquarium consensus packet and target Codex prompt under `.voidbot/artifacts/chat-consensus/`. Add `--execute` only when the packet should be sent directly to `codex exec` in that workspace. diff --git a/state/evidence.jsonl b/state/evidence.jsonl index ab83cb6..b2d172a 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -404,3 +404,5 @@ {"ts":"2026-07-15T22:37:10Z","type":"verification","status":"ok","note":"Yggdrasil exposed a missing spawnSync import after the Bifrost source extraction when a real selected turn entered repo-activity assembly. The remaining repo-activity dependency was restored; local assembly advanced past that call and stopped only at absent local Postgres. Hosted selected-turn verification remains required."} {"ts":"2026-07-15T22:51:45Z","type":"implementation","status":"ok","note":"Home-repo body context now comes through repo-activity-source.ts, which owns source/cursor resolution, bounded read-only exporter invocation, and typed observations; prompt composition no longer owns subprocess or JSON parsing."} {"ts":"2026-07-15T22:51:46Z","type":"verification","status":"ok","note":"Idunn live-path audit found /srv/odin/deploy-manifests/voidbot was the invoked actuator while /usr/local/sbin was only an unused copy. gamecult-ops now installs both from one source and runs all build-repository Git operations as idunn; live manifest hashes match and Git ownership was repaired."} +{"ts":"2026-07-15T23:12:25Z","type":"repair","status":"ok","note":"Repaired the production Starfire Chrome -> Yggdrasil Hermodr -> VoidBot path. Hermodr now serves 10.77.0.1:8798 over WireGuard, accepts authenticated retained provider publications on Ygg loopback 17874, discovers through Odin 17871, and routes commands to VoidBot 17873. Starfire observed health/catalog/surface, live SSE projected globalHeat 0.05, and a browser-shaped swarm.set_heat command returned a reconciled VoidBot-owned receipt."} +{"ts":"2026-07-15T23:03:20Z","type":"operations","status":"ok","note":"Reduced live swarm global heat to the minimum accepted 0.05 after one-minute Persona traffic burned tokens. Two following resident scheduler ticks selected and queued nobody. The daemon may pulse every minute; speech must remain initiative/rest gated rather than equated with the pulse."} diff --git a/state/map.yaml b/state/map.yaml index d6dba90..d46c537 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -209,6 +209,7 @@ accepted_design: - VoidBot's Verse contract is documented in `docs/architecture/voidbot-verse-service-contract.md`: durable agent/service state should be typed CultCache `.cc` or have a `.cc` witness/export; `voidbot.swarm` currently publishes through `cultmesh://voidbot.local/eve/providers/voidbot.swarm`; target Eve surfaces are `voidbot.discord`, `voidbot.reddit`, `voidbot.archive`, `voidbot.source`, `voidbot.repo_face`, and `voidbot.swarm`; static/browser dashboard output is only a lowering, not authority. - The `voidbot.swarm` CultMesh store at `.voidbot/status/cultmesh/voidbot-swarm-state.cc` is derived provider state. If duplicate global documents corrupt it, archive the bad store and regenerate from `scripts/render-voidbot-swarm-dashboard.mjs`; do not treat the broken generated store as canonical truth. - Eve v2 live state has one owner path. CultLib dev supplies typed live-publication handles, authenticated retained provider sessions, reconnect evidence, and application receipts (`ebd8c78c`, `d4934233`, `8965f3c0`). Eve resolves component `stateBindings` and owns subscription teardown/rebind without receipt DOM writes (`85b0139`, `522df00`). Hermodr ingests provider sessions and emits ordered snapshot/update/stale/reconnected events without polling (`5cb819e`, `561e320`). VoidBot publishes accepted heat as typed control state and binds both visible heat components to it (`060da23`, `3d86b93`). Live-fire proved initial, provider-driven, and browser-command updates converge through that one path. + - The production Eve browser nerve is Starfire Chrome -> `http://10.77.0.1:8798` -> Hermodr on Yggdrasil -> Odin discovery and provider-owned VoidBot RUDP on Yggdrasil. Hermodr's browser listener is WireGuard-only, its authenticated retained-publication ingress is host-loopback `127.0.0.1:17874`, and VoidBot remains the state/command owner at `127.0.0.1:17873`. Starfire owns no Hermodr, Odin, or VoidBot deployment body. - Long-running work should expose durable logs or status files instead of relying on one attached session and hope. - Persistent project memory must stay ruthlessly distilled; git history and artifacts carry routine proof.