diff --git a/scripts/run-repo-face-heartbeats.ts b/scripts/run-repo-face-heartbeats.ts index 4ed7669..3fd5a9d 100644 --- a/scripts/run-repo-face-heartbeats.ts +++ b/scripts/run-repo-face-heartbeats.ts @@ -115,7 +115,6 @@ async function main(): Promise { }); if (!dryRun) { await writeHeartbeatState(config.repoFaceHeartbeats.statePath, state); - publishSwarmDashboardSurface(); } process.stdout.write( `${JSON.stringify({ @@ -139,7 +138,6 @@ async function main(): Promise { reason: "repo_face_heartbeats_disabled", }); await writeHeartbeatState(config.repoFaceHeartbeats.statePath, state); - publishSwarmDashboardSurface(); return; } diff --git a/state/evidence.jsonl b/state/evidence.jsonl index ad84fa0..cc4d7d6 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -409,3 +409,4 @@ {"ts":"2026-07-15T23:17:32Z","type":"implementation","status":"ok","note":"Completed the swarm Eve live-state authority migration: voidbot.swarm_operator_view.v1 now owns summary, queue, selected Face/state/channels, operations, pressure, mentions/events, and route projections; Eve binds them as typed props instead of recomputing browser-visible facts from a generation snapshot. The renderer also registers the retained operator-view schema when reopening the shared CultCache store. Focused tests, TypeScript build, and isolated render/store smoke passed."} {"ts":"2026-07-15T23:19:00Z","type":"repair","status":"ok","note":"Yggdrasil selected-turn execution exposed a missing extname import in native Persona memory rendering after source extraction. Restored the direct node:path dependency; typecheck, initiative smoke, and full dry-run selection passed before push."} {"ts":"2026-07-15T23:27:00Z","type":"implementation","status":"ok","note":"Persona scheduler persistence now has one typed CultCache owner: state-store.ts stores voidbot.persona_scheduler_state in repo-face-heartbeats.cc, canonicalizes legacy .json configuration, migrates the old JSON once with a storage_migrated witness, fails closed on malformed .cc, commits before attention-inbox acknowledgement, and emits JSON only as a derived dashboard/debug projection. Tests prove the projection cannot override canonical state and bot/scheduler mention paths converge on the same .cc inbox."} +{"ts":"2026-07-15T23:29:00Z","type":"repair","status":"ok","note":"Applied the live swarm brake after Yggdrasil showed an accumulated ready backlog still dispatching one Persona per minute at heat 0.05. The paused branch exposed obsolete publishSwarmDashboardSurface calls whose renderer subprocess implementation had already been removed; deleted those calls because the resident swarm publisher watches the state projection and owns publication."}