v0.1.4 — The Accountable-Judgment Release
The accountable-judgment release — memory that flags its own staleness instead of silently trusting (or deleting) it. Six features, ~330 lines, no new dependencies, the same 14-tool MCP surface.
📦 pip install -U projectmem · 📰 Release post · 🎓 Research paper (arXiv:2606.12329) · 🎬 Tutorial video
✨ New
- Stale-memory detection — flag, never delete. Every decision/fix/note that cites a file is cross-checked against that file's git history. When the file moved on (3+ commits, or it no longer exists),
pjm precheckand the MCPprecheck_filetool flag the memory — "predates 7 commits to auth.py — confirm or supersede." Nothing is deleted; a human decides. Deterministicgit logcounts, no embeddings, no daemon. - Superseded-decision marking.
pjm decision "switch to argon2" --supersedes <event-id>(also on MCPadd_decision) retires an old decision without rewriting history: it leavessummary.md, stays in the append-only log, and shows inpjm searchtagged(superseded). Search now prints event ids. pjm brief— one-screen session-start briefing: active warnings, possibly-stale memories, open issues, recent decisions, stack gotchas, and your prevention score with a weekly delta.- Precheck snooze.
pjm precheck --snooze 2hpauses warnings for a bounded window instead of pushing you to--no-verify. The snooze is itself logged — even the silence is audited.--unsnoozerestores early. - Failed approaches listed in the warning. Precheck now shows the dead ends themselves ("✗ tried CSS contain:layout"), and
pjm search --failed-onlylists a project's full catalogue of dead ends. pjm export --claude-md(and--cursor) — compiles live decisions (stale ones flagged), gotchas, and a "Do NOT retry — these already failed" list into a marked block in CLAUDE.md / .cursorrules. Agents without MCP inherit the project's judgment.- Dashboard Overview tab —
pjm visualizeopens on an all-at-a-glance view (failure heatmap, A+→F prevention gauge, project graph with failure rings, typed-event timeline), re-themed light.
🐛 Fixed
- Walk-up discovery no longer mistakes
~/.projectmem(the machine-wide global store) for a project — found by dogfooding 0.1.4 on this very repo. pjm precheck payment.py auth.py— named files now work directly from the CLI.pjm search payment.pymatches thelocationfield, so per-file lookups behave like precheck.
📋 Compatibility
One new optional event field (supersedes); existing logs parse unchanged; MCP surface unchanged (14 tools). After upgrading run pjm hooks install once per project. 23 new tests — 81 passing.
Full changelog: https://projectmem.dev/changelog