v1.3 — Memory Decision Console, hardened
·
15 commits
to master
since this release
Reviewer-driven hardening on top of the Memory Decision Console.
Security & correctness
- Session ownership enforced end-to-end: /api/messages, /api/chat and the new /api/turn_audit all 404 across users (asserted in tests/test_session_isolation.py over real HTTP; PRAGMA foreign_keys on).
- Sleep-cluster purity and belief revision covered by store-level tests.
Chat that works as a chat
- Drag-resizable / focusable chat dock (height persisted), smart follow-only-near-bottom streaming with a ↓ New-Response pill.
- Cursor pagination: full history reachable via Load-earlier (was capped at the last 40 messages).
- Per-turn memory-decision audits: every assistant turn freezes its selected + rejected candidates, score components, the exact context handed to Qwen, resulting memory ops, usage and latency — replayable from chat history into the Decision Inspector.
Tests & CI
- 4-spec Playwright E2E (console load, chat → audit replay, IME Enter guard, judge demo 5/5 live-verified) in offline fake-Qwen mode, plus a frontend JS syntax gate — all on every push.
Docs
- Judge demo timing, sleep threshold (.55 production default, env-tunable), benchmark cost and S5 similarity spread now match the code exactly.
Live: https://engram.hackthon.site · mirror https://engram.axiqo.xyz · DevOps scenario ?seed=devops
Judge quickstart: JUDGING.md · Proof: docs/proof-of-deployment.md