v0.7.0
latest2026-07-19Project isolation — filter-by-default scoping, provenance quarantine, and the self-improving core loop actually runs
+ Added
- +Filter-by-default scoping on every surface — search, prompt-recall injection, resume checkpoints, and depth hints are restricted to the current project's family plus explicitly-global memories. A session in project A never sees project B's content; widen deliberately with --all-projects / all_projects: true (every hit then carries its project label) or hard-filter with --project
- +Provenance quarantine — a save whose project cannot be determined is never silently global: it lands under _unknown (visible in list as [?project], flagged by lint, surfaced nowhere) until relabeled. Explicit global is now an intentional act: memgit add --global or project: ""
- +detect_project() — one detection path everywhere: MEMGIT_PROJECT > hook cwd > CLAUDE_PROJECT_DIR > cwd; the MCP server re-detects per call instead of freezing the server process's startup cwd
- +memgit doctor — store hygiene: report quarantined/global memories, bulk --relabel from a JSON mapping (timestamps preserved, one checkpoint), --prune-usage, --clean-caches (30-day session-cache GC, also run opportunistically on sync)
- +Any-install-method hook binary resolution — memgit setup hooks writes the absolute path of the binary that is actually running (pipx, pip, brew, npm, choco), falling back to PATH lookup, then python -m memgit.cli
- +Resume digest hard budget (9.5 KB) — measured on real sessions, 78% of digests exceeded the host's 10 KB inline hook limit and arrived truncated; the digest now trims itself (core guide and status board are never trimmed)
✓ Fixed
- ✓The 0.5.0 self-improving core-guide loop had never run in production — the installed Stop-hook template's cd <store> && memgit sync poisoned the cwd-derived project label, so auto-promotion silently no-oped every session. The cd is gone (sync finds the default store from any cwd) and auto-core is guarded against store-cwd sessions
- ✓Gemini delivery was inert — .gemini/memgit.md is a file Gemini CLI never loads. The core guide now ships as a marker-delimited block in GEMINI.md (the Codex mechanism); the old inert file is cleaned up on sync
- ✓CLI search parity — search now applies the same project boost as MCP and prints the project field in table and --json output (it previously printed foreign hits with no origin at all)
- ✓memgit stats no longer fabricates savings — the dump-everything strawman baseline, phantom critical-overhead figure, and invented weekly/annualised projections are gone; what remains is measured (the digest is actually rendered) or labeled as an estimate
- ✓Folded/multi-line YAML descriptions in seeded core guides are no longer truncated mid-sentence
- ✓Test suite fully isolated from the live store via MEMGIT_STORE (exclusive when set)