Repository navigation
Vesma 5.1.0 — project graph as memory, native auto-indexing
Vesma 5.1.0 is the first minor release after the rebrand: the memory server now also knows your codebase. The project code graph (ADR-0032) ships as a first-class subsystem — a memory-grade symbol graph over registered project roots, exposed through 10 MCP tools and a /graph/ REST namespace, stored in a sidecar database that never touches the main store or the vault. Both graph families are now ON by default, the record canon v1.0.0 is enforced at the write path, and the mesh gains the W3 agent leg with Ed25519 agent tokens and a per-request data gate.
What's changed
- Project graph as memory (#438) — index a registered project root once, then search symbols, trace call/import/inheritance paths, pull file outlines and always-fresh code snippets via
mnemos_search_graph,mnemos_trace_path,mnemos_get_code_snippetand friends, with/graph/*REST twins. Security invariants PG1–PG7 are enforced by construction: zero bytes of source stored (names, ranges, signature shapes only), root confinement, secrets-detected files poisoned forever, snippets freshness-checked and secret-scanned at issuance, export-blind (graph artifacts never federate), fail-closed index limits, per-agent audit on every call. - Graphs ON by default (#440) —
graph_auto_mint,graph_walk,feedback_applyand the project graph (code_graph.enabled/code_graph.watch) default totrue; tree-sitter is now a core dependency, not an optional extra. Nothing self-starts (the graph waits for an explicitindex_project), and either family hides with one flag. - vesmaro-canon v1.0.0 enforced (#416, #418, #419) — checkpoints mint a server-signed canon envelope (forged copies stripped), the render always emits all five sections, and a write-path validator checks every enveloped record with six machine-parseable codes — warn by default,
strictmode rejects on create. The canon integration pack (#426, #431) ships record-standard instructions, a writing skill and the five pinned JSON Schemas to every connected harness natively. - Canon engine integrity (#441, cascade review) —
canon_warningsis single-writer gate-owned, client task/decision/report envelopes persist per canon §2, the strict gate runs before the vault write (a rejected record leaves no file behind), JSON import strips server-minted keys (--trusted-restorefor trusted backups), and schema deploys verify the canon pin in both directions. - Mesh W3 agent leg (ADR-0018 variant (c)) — the AgentGateway contract, Ed25519 agent tokens (
vesmaro agent-token issue/rotate/revoke/list), theValidateAgentTokenRPC, and the per-request agent data gate with effective-scope narrowing on List/Read/Write — a compromised mesh node can no longer skip the gate by dialing core data RPCs directly. - Watch tools rebuilt —
mnemos_watch_start/stop/statusnow register the project-graph watch poll with honest prerequisites and status reporting; the M8-era stub that reported false success is gone (legacy directory-watcher arguments are refused with an explanation — see the changelog for the migration note).
Also in this release: opaque core-owned subscription cursors with storage revisions (ADR-0020), the ADR-0004 decision-provider seam with a deterministic baseline (#439), and the P3 project-graph review tails fixed (trackers 10173a2a, 57ae9a66).
Verification
Full suite: 4656 passed / 0 failed (1 skip). mypy --strict: clean (115 files). ruff check src/ tests/: clean. Bench S1 gate: PASS — recall@5 = 0.9493 (corridor floor 0.9121).
Compatibility and rollback
Minor, additive release on top of 5.0.0. Two behaviour changes to note: graphs are on by default (disable with code_graph.enabled: false or VESMARO_MNEMOS__GRAPH_WALK=false), and the legacy mnemos_watch_start directory-watcher form is refused. Rollback: pin the previous release (vesma==5.0.0).
PRs: #416 #418 #419 #426 #431 #436 #438 #439 #440 #441. Merge line: 0046526 → 8ad07ca.
Native auto-indexing — zero harness wiring (PG-0.5)
Indexation now happens BY ITSELF: every MCP call / pre_llm_call hook emits a cheap activity hint; a project whose cwd carries a packaging manifest auto-registers and gets its first index (or a stale reindex) in the background on one cooperative thread. One root = one graph; manifest-only markers ($HOME and bare-.git refused); a failed first index suspends auto-retries; the recall beacon then appears on its own. No instructions, no skills, nothing to remember. (ADR-0032 update 2026-09-29; 15 e2e tests.)