diff --git a/assets/repo-faces/huginn.png b/assets/repo-faces/huginn.png new file mode 100644 index 0000000..6a86328 Binary files /dev/null and b/assets/repo-faces/huginn.png differ diff --git a/assets/repo-faces/kiko.png b/assets/repo-faces/kiko.png new file mode 100644 index 0000000..c8bc6a8 Binary files /dev/null and b/assets/repo-faces/kiko.png differ diff --git a/assets/repo-faces/weksa.png b/assets/repo-faces/weksa.png new file mode 100644 index 0000000..e637f76 Binary files /dev/null and b/assets/repo-faces/weksa.png differ diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index 96fa7ac..1ea747d 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -149,6 +149,7 @@ Git history and smoke artifacts carry routine proof. `state/evidence.jsonl` shou ## Likely Next Bounded Move - Keep the swarm awake, but watch the logs with suspicion. The restart pass thawed `state/agent-swarm-paused.json`, enabled `GameCult Local Orchestrator`, restarted a fresh bot/worker stack, and verified healthy watchdog/repo Face pulses. The current patch removes repo Face turns from the generic owner-reply wrapper, coerces stray owner-DM aliases back to the live room unless explicitly marked owner-private, pauses Bifrost/governance routing so agents return to open room discussion plus private state pressure, and routes volatile Face state through the actual state projector model before child prompt assembly. +- The 2026-05-22 live retry confirmed role/name mention obligations can wake multiple newborn Faces from one human intro. Mimir, Huginn, Weksa, and Kiko all posted through the repo identity webhook path. If a Face speaks with its name but no avatar, inspect `.voidbot/private/repo-discord-identities.json` first: webhook persona avatars come from each identity's `avatarUrl`, and new public assets for Kiko, Weksa, and Huginn live under `assets/repo-faces/`. - Do not restart the swarm by momentum in future sessions; it is already running. If it must be stopped again, use `state/agent-swarm-paused.json` and the orchestrator task deliberately, then update this handoff. - Direct Face `UPDATE REQUEST` and `BIFROST TOPIC` packets are ignored while `REPO_FACE_BIFROST_ENABLED=false`. Do not debug missing Bifrost jobs as a live failure unless that flag has been deliberately enabled again. - Live model-facing prompt prose has started moving out of executable code. The shared loader is `packages/shared/src/prompt-template.ts`; extracted prompt surfaces live under `prompts/`, including repo Face turn/reviewer prompts, provider wrapper prompts, situational social read prompts, source-grounding reminders, consensus-feed prompts, and repo Face model-smoke scenarios. Code should project data and select prompt names; prompt files should own behavioral prose. diff --git a/state/agent-swarm-paused.json b/state/agent-swarm-paused.json index bf44b52..951e49e 100644 --- a/state/agent-swarm-paused.json +++ b/state/agent-swarm-paused.json @@ -1,6 +1,6 @@ { - "paused": true, - "reason": "Paused after live retry immediately resurfaced stale witness discourse despite prior scrub and direct operator correction. Diagnose input/context/state before more Face turns.", + "paused": false, + "reason": "Operator requested a live retry after fixing Face display-name introduction detection and preserving pending mention source-channel context.", "pausedAt": "2026-05-22T18:00:20.1264989Z", - "resumedAt": "2026-05-22T17:40:15.1719039Z" + "resumedAt": "2026-05-22T21:09:36.3840571Z" } diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 615e241..ea250de 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -285,3 +285,4 @@ {"ts":"2026-05-22T19:45:13Z","type":"fix","status":"ok","note":"Pruned terminal audit residue from current self-state: write normalization now drops terminal open cases and keeps only queued/deferred candidate interventions. Repaired Void self-state from about 125KB to 95KB by removing 21 terminal candidates and 2 answered cases; speech receipts remain bounded audit evidence. Updated speech and memory lifecycle fixtures for the new contract."} {"ts":"2026-05-22T19:48:34Z","type":"fix","status":"ok","note":"Changed Void self-state projection so durable memory is not recency-only recall. Normal context now renders full detail for the newest/salient memories plus compact anchors for the remaining active durable memories; Void's current rendered self-state summary grows from about 14KB to 18KB while keeping all 25 durable memories visible by target/summary/tags."} {"ts":"2026-05-22T20:04:28Z","type":"implementation","status":"ok","note":"Face name introductions now enqueue CTB obligations by whole-message exact display-name matching, including channels outside regular autonomous Face chatter; scheduler carries the source channel snapshot into the next Face turn."} +{"ts":"2026-05-22T21:11:19Z","type":"implementation","status":"ok","note":"Live retry thawed swarm, proved multi-Face name-intro obligations can dispatch, and exposed avatar presentation as registry data: Kiko/Weksa/Huginn need avatarUrl entries backed by public repo assets for webhook persona faces."} diff --git a/state/map.yaml b/state/map.yaml index 5dbcd71..34d8400 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -239,4 +239,4 @@ rejected_paths: current_status: summary: VoidBot's bot/worker/provider/RAG/Postgres/Qdrant/CultCache structure is live, and the repo Face swarm has been restarted after the 2026-05-21 teardown pass. `GameCult Local Orchestrator` is enabled as the single pulse owner; watchdog, mood, moderation, and repo Face CTB organs have all completed healthy post-restart pulses. Bifrost work routing is paused by default. - next_action: Keep the swarm paused until live restart is explicitly chosen. The current dry-run proof says the Face-turn loop can read correction/body context and route through the parent Interpreter, but the room still has strong work gravity. The latest cuts demote jurisdiction dives to background appetite, attach deterministic room-weather facts, make the projector/Interpreter preserve play/rest/social fatigue as state, keep raw transcripts as correction evidence, update the dry-run harness to exercise the live retry shape, and expand projector input so rich typed state actually reaches the character as behavior pressure. + next_action: Keep the swarm awake under live observation. The operator explicitly chose the restart, the pause flag is thawed, Mimir acknowledged correction without reviving the old witness sermon, and the Kiko/Huginn/Weksa introduction queue produced public posts. The immediate watch item is transport presentation: new Face avatar URLs must be present in the local registry and backed by public raw GitHub assets before expecting webhook persona posts to show faces.