mirror of
https://github.com/samvallad33/vestige.git
synced 2026-07-02 22:01:01 +02:00
Bounded follow-up (tight acceptance criteria, no scope expansion): flip the dream.patch producer from "quiet because no dream ran" to a recorded live event. The dream tool's `insights` array carries no per-item id, so the recorder extracted zero proposals and dream.patch never fired even on a real dream. Fix: derive a stable proposal id from each insight's REAL content (its insight_type + the source memories it consolidated). The dream genuinely ran; this just gives each real proposal a deterministic handle. Unit-tested against the exact dream output shape. Proven end to end (run_dream_proof, 6 memories consolidated): - one dream.patch event: dream:RecurringPattern:5d941c7f+a41aca72+... - SQLite + /api/traces/:runId: dream-trace.json (14 events, last is dream.patch) - WebSocket: dream-websocket-events.jsonl (the dream.patch TraceEvent) - dashboard: screenshots/dream-producers.png — the row flips to "fired this run" PROOF.md updated: dream.patch moves from CAVEAT to REAL (still not live by default — it fires only when a dream actually runs, and the UI says so). sanhedrin.veto remains an honest CAVEAT (optional hook, off by default). Gates: 957 lib tests pass, clippy -D warnings clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| vestige-core | ||
| vestige-mcp | ||