Record MiMo unpause gate blocker

This commit is contained in:
Meta Vens 2026-07-03 01:34:35 +01:00
commit 28a58ab60e
4 changed files with 7 additions and 5 deletions

View file

@ -164,7 +164,7 @@ Git history and smoke artifacts carry routine proof. `state/evidence.jsonl` shou
## Likely Next Bounded Move
- The repo Face swarm is currently paused by `state/agent-swarm-paused.json` after the 2026-06-14 routing-context concern. The MiMo direct-provider pass wired `openai_api` as an OpenAI-compatible Chat Completions provider, configured future repo Face/persona heartbeat jobs to use `mimo-v2.5-pro`, and kept owner Codex separate. The MiMo token-plan key in `gamecult-ops` works with the Europe token-plan base URL; live `.env` references the key file instead of copying the secret. Dry-run outputs live under `.voidbot/artifacts/mimo-dry-runs/`: Face prose was usable, the Interpreter followed the block format, and one low-output-budget run showed MiMo can spend the whole completion on `reasoning_content`, so live config uses a larger completion budget. `scripts/smoke-mimo-nibu-crashout.mjs` now compares MiMo's Nibu crashout trajectory against Codex GPT-5.5 low as ground truth. The current report at `.voidbot/status/mimo-nibu-crashout-smoke-current.json` passed structurally: all MiMo Interpreter passes routed, MiMo was flatter than baseline on the first spark beat, and MiMo matched or beat the baseline on territorial crashout and recovery into concrete worldbuilding. Keep the swarm paused; rerun charged Persona comparisons as needed, then run one bounded current-context no-post Face plus Interpreter pass before unpausing scheduled live turns.
- The repo Face swarm remains paused after a 2026-07-03 unpause attempt. The MiMo direct-provider pass wired `openai_api` as an OpenAI-compatible Chat Completions provider, configured future repo Face/persona heartbeat jobs to use `mimo-v2.5-pro`, and kept owner Codex separate. The MiMo token-plan key in `gamecult-ops` works with the Europe token-plan base URL; live `.env` references the key file instead of copying the secret. Dry-run outputs live under `.voidbot/artifacts/mimo-dry-runs/`: Face prose was usable, the Interpreter followed the block format, and one low-output-budget run showed MiMo can spend the whole completion on `reasoning_content`, so live config uses a larger completion budget. `scripts/smoke-mimo-nibu-crashout.mjs` compares MiMo's Nibu crashout trajectory against Codex GPT-5.5 low as ground truth. The current report at `.voidbot/status/mimo-nibu-crashout-smoke-current.json` passed structurally: all MiMo Interpreter passes routed, MiMo was flatter than baseline on the first spark beat, and MiMo matched or beat the baseline on territorial crashout and recovery into concrete worldbuilding. A current-context no-post Nibu gate then caught a missing #pics context anchor on attempt 1 and routed cleanly on retry with STATE NOTE/STATE NOTE/SAY. However, after `state/agent-swarm-paused.json` was briefly set false, GameCult Local Orchestrator repeatedly reached `repo-face-heartbeats` and then failed to advance the status/lock summary; the live heartbeat child processes were stopped and the pause flag was restored to `"paused": true`. Next move is scheduler/heartbeat handoff diagnosis with bounded direct runs or targeted logging, not more MiMo quality debate.
- 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/`.
- Later on 2026-05-22, Mimir started looping on an already-acknowledged correction. Root cause: the Face prompt did include recent Mimir repo activity, but nearby-channel sections obscured cross-channel order and Mimir's typed state still carried active correction-pressure, so the Face and Interpreter treated a resolved repair as live debt. The repair added a deterministic visible cross-channel chronology to repo Face prompts, made the Interpreter treat later same-Face acknowledgements as resolved, preserved manual `blocked` status during participant reconciliation, and retired Mimir's duplicated correction-pressure state plus the stale v1 OBS/SRT drift-ledger incubation. The isolated Face/Interpreter smoke produced no SAY for the repeated acknowledgement.
- Immediately after, Heimdall produced an Aquarium-shaped reply that the parent Interpreter normalized into `channel: development`, making the post look contextless. Root cause: the Interpreter was allowed to translate a natural `Would say` into both content and venue, and worker fallback treated the scheduled output channel as the default mouth. The repair makes conversation channel ownership deterministic: `SAY` defaults to `current_room`, `current_room` resolves to `job.guildContext.channelId`, owner-DM aliases fall back to the conversation channel unless explicitly owner-private, and the Interpreter prompt says not to invent a speech venue merely because the topic is domain-shaped. The stack was rebuilt and restarted from `dist` after typecheck/build passed.

View file

@ -1,5 +1,5 @@
{
"paused": true,
"reason": "Paused by Codex on 2026-06-14 after repo Faces still routed source-channel context through channel: current_room into Aquarium. Keep paused until current_room is no longer accepted as explicit context when multiple active conversation contexts are visible.",
"updatedAt": "2026-06-14T18:55:00.0000000Z"
"reason": "Re-paused by Codex on 2026-07-03 after MiMo quality gates passed but the live GameCult Local Orchestrator repeatedly reached repo-face-heartbeats and then failed to advance its status/lock summary. The model/provider path is good enough for more tests; the live scheduler handoff needs diagnosis before unattended turns.",
"updatedAt": "2026-07-03T01:31:12.1534400+01:00"
}

View file

@ -367,3 +367,5 @@
{"ts":"2026-06-14T20:01:05Z","type":"implementation","status":"ok","note":"Closed the surviving repo Face context leak: channel: current_room no longer counts as explicit routing when multiple active conversation channels are visible, and bare parent-interpreter text is no longer wrapped into SAY fallback under multi-context jobs. Swarm paused while this fix is verified live."}
{"ts":"2026-07-02T23:14:18Z","type":"implementation","status":"ok","note":"Wired openai_api as an OpenAI-compatible direct chat provider and configured repo Face heartbeat jobs to use MiMo via openai_api. MiMo token-plan key works against https://token-plan-ams.xiaomimimo.com/v1. Dry-run Face prompts produced usable persona text; a 1200-token run spent all output on reasoning_content, so live config uses OPENAI_API_MAX_COMPLETION_TOKENS=8192. Live swarm remains paused."}
{"ts":"2026-07-03T00:03:31Z","type":"verification","status":"ok","note":"Added and ran a no-post MiMo-vs-Codex Nibu crashout smoke fixture. Codex GPT-5.5 low is the baseline lane; MiMo mimo-v2.5-pro is the candidate lane. The fixture passed structurally: all three MiMo Interpreter passes routed cleanly, no robotic leakage or unsafe abuse was detected. MiMo was flatter than Codex on the initial spark/mechanism beat, but matched or exceeded baseline heuristics on territorial crashout and recovery into concrete worldbuilding. Report: .voidbot/status/mimo-nibu-crashout-smoke-current.json."}
{"ts":"2026-07-03T00:24:30Z","type":"verification","status":"ok","note":"Unpaused repo Face swarm after the current-context no-post Nibu gate. First MiMo Interpreter pass caught a missing #pics context anchor and requested retry; retry passed with route and parsed STATE NOTE/STATE NOTE/SAY. Swarm pause flag is now paused=false. Watch first live scheduled MiMo turns for source-channel context ownership regressions, first-spark flattening, and hidden reasoning-token exhaustion."}
{"ts":"2026-07-03T00:31:25Z","type":"verification","status":"blocked","note":"Attempted to unpause repo Face swarm after MiMo quality gates passed. Current-context no-post Nibu gate behaved correctly: first Interpreter pass caught missing #pics context anchor, retry routed STATE NOTE/STATE NOTE/SAY. After setting paused=false, the scheduled GameCult Local Orchestrator reached repo-face-heartbeats but repeatedly failed to advance status/lock summary; live heartbeat child processes were stopped and the pause flag was restored to paused=true. Next work is scheduler/heartbeat handoff diagnosis, not MiMo persona quality."}

View file

@ -262,5 +262,5 @@ rejected_paths:
reason: sleep/distillation that collapses concrete claims into generic abstraction creates memory nonsense and then forces later cleanup compensators
current_status:
summary: VoidBot's bot/worker/provider/RAG/Postgres/Qdrant/CultCache structure is live. Repo Face scheduling remains behind `state/agent-swarm-paused.json`, currently paused after the 2026-06-14 routing-context concern. Local runtime config points Face heartbeats at Aquarium, keeps the expensive state-projector pass disabled, and now routes future repo Face/persona heartbeat jobs through the direct `openai_api` provider configured for MiMo `mimo-v2.5-pro` instead of Codex. Dry-run MiMo calls against saved Face prompts produced usable persona text, but one low-output-budget run spent all tokens on `reasoning_content`, so the live OpenAI-compatible provider uses a larger completion budget. A no-post Nibu crashout fixture now compares MiMo against Codex GPT-5.5 low ground truth: MiMo routed cleanly through the Interpreter and handled territorial crashout/recovery well, while the first spark beat was flatter than baseline. GameCult Local Orchestrator remains the single pulse owner; Bifrost work routing remains paused by default.
next_action: Keep the swarm paused. Use `agents:mimo-nibu-crashout-smoke` or the explicit Node command to rerun charged Persona quality comparisons, then run one bounded current-context no-post Face plus Interpreter pass before unpausing scheduled live turns. Watch especially for MiMo flattening the first ignition beat and for hidden reasoning token exhaustion.
summary: VoidBot's bot/worker/provider/RAG/Postgres/Qdrant/CultCache structure is live. Repo Face scheduling remains paused behind `state/agent-swarm-paused.json` after a 2026-07-03 unpause attempt exposed a live orchestrator/heartbeat handoff problem. Local runtime config points Face heartbeats at Aquarium, keeps the expensive state-projector pass disabled, and routes repo Face/persona heartbeat jobs through the direct `openai_api` provider configured for MiMo `mimo-v2.5-pro` instead of Codex. Dry-run MiMo calls against saved Face prompts produced usable persona text, but one low-output-budget run spent all tokens on `reasoning_content`, so the live OpenAI-compatible provider uses a larger completion budget. A no-post Nibu crashout fixture compares MiMo against Codex GPT-5.5 low ground truth: MiMo routed cleanly through the Interpreter and handled territorial crashout/recovery well, while the first spark beat was flatter than baseline. A current-context no-post Nibu gate caught a missing #pics context anchor on attempt 1 and routed cleanly on retry. When the pause was lifted, GameCult Local Orchestrator repeatedly reached `repo-face-heartbeats` but did not advance its status/lock summary, so the heartbeat children were stopped and the pause was restored. Bifrost work routing remains paused by default.
next_action: Diagnose the live GameCult Local Orchestrator -> repo-face-heartbeats handoff while the swarm remains paused. Reproduce the hang with a bounded direct heartbeat run or targeted logging, then only unpause again after `repo-face-heartbeats` can finish and write status cleanly. MiMo persona quality is good enough for more tests; the blocker is scheduler/runtime handoff.