Releases: samvallad33/vestige
Release list
v2.3.0 — Cognitive Observatory + Zero-Knowledge Sync
The first release in three weeks, and the biggest visual change Vestige has had.
The Cognitive Observatory
A raw-WebGPU living memory field is now the main dashboard graph renderer, with a Field/Classic toggle and click-to-inspect GPU picking. Browsers without a working WebGPU adapter fall back to the Classic Three.js renderer automatically, so nobody gets a dead canvas.
42 bug fixes that had never shipped
Three adversarial audits (#139, #140, #141) fixed 42 backend bugs that were sitting on main unreleased since July 2. Highlights: a migration path that could brick a database mid-upgrade, a suppress/undo pair that was not actually reversible, a UTF-8 boundary panic in the intention parser, and vestige backup failing silently on encrypted databases.
Auto-consolidation is now opt-out, and respects your pins
Thanks to @Vrakoss, who both reported the problem and wrote the fix (#142, #143). Set VESTIGE_AUTO_CONSOLIDATE_MERGE=0 to disable the background merge pass. Protected (pinned) memories are now excluded from it. Being honest about the remaining gap: when the pass is enabled, its merges are still hard deletes with no reversible trail. Use the dedup tool for merges you can undo.
Installs fixed
npm install has been failing on every Intel Mac since v2.2.1, because the release tarball ships INSTALL-INTEL-MAC.md and the installer rejected any archive member outside the three binaries. Fixed.
source_sync was a compiled-out stub on Windows and Intel Mac, so one of the 13 advertised tools silently did nothing there. Both platforms now ship the connectors feature.
Cloud sync is zero-knowledge or nothing
The optional cloud-sync client now requires end-to-end encryption in both directions. It refuses to upload plaintext and refuses to accept a plaintext remote archive. Endpoints must be https. Your passphrase never leaves your machine, and losing it means the data is unrecoverable by design.
The local core remains free forever and is never metered.
Upgrade notes
Migrations V19 and V20 run automatically. If you synced more than one project of the same source system under 2.2.x, their records could clobber each other. V20 clears the connector cursors so your next source_sync does a full re-scan and repairs them, no manual step required.
Black Box tracing is on by default and can be disabled with VESTIGE_TRACE=0. Traces are pruned after 30 days, tunable via VESTIGE_TRACE_RETENTION_DAYS.
If you used cloud sync on 2.2.x without a passphrase, 2.3.0 will refuse the plaintext archive. Set VESTIGE_CLOUD_ENCRYPTION_KEY and re-upload from the machine that still holds your local data.
Release gates
| Gate | Result |
|---|---|
cargo test --workspace |
1588 passed, 0 failed |
cargo clippy -- -D warnings |
clean |
svelte-check |
937 files, 0 errors |
| dashboard build | green |
cargo audit |
0 vulnerabilities |
| CI | 12/12 |
SECURITY.md previously claimed zero vulnerabilities while cargo audit reported five. The dependencies were updated so the claim is now true.
CI had also been red on main since July 18: there was no toolchain pin, so a Rust 1.97 lint change broke a line that had been in the tree since v1.0.0. This release adds rust-toolchain.toml so a future Rust release cannot turn main red with no code change.
Full detail in CHANGELOG.md.
v2.2.1 — Windows embeddings fix + backfill safety
Patch release. Fixes Windows embeddings, makes Retroactive Salience Backfill bounded + disableable, and adds a first-run guide.
Fixed
- Windows embeddings never initialized (#101). The v2.2.0
x86_64-pc-windows-msvcbinary was built without thevector-searchfeature, so embeddings were never persisted or queried — "Embedding Service: Not Ready", 0% coverage, no model download. This release rebuilds the Windows binary withvector-search. Windows users: reinstall to get working embeddings. Thanks @Vrakoss for the report. - Retroactive Salience Backfill safety (#103). Backfill promotion now bounds the FSRS stability multiply to
MIN(stability * 1.5, stability + 365)(previously uncapped), and auto-fire is disableable viaVESTIGE_BACKFILL_AUTOFIRE=0(on by default). Thanks @randomnimbus for the report and initial patch (#104).
Added
- First-run guide —
docs/GETTING-STARTED.md: install to first backward-reach in 30 minutes (#83).
Install
npm install -g vestige-mcp-server@latest
Full details in the CHANGELOG.
v2.2.0 — Retroactive Salience + Tool Consolidation
Vestige v2.2.0 — the complete system
Three coherent value streams ship together:
🧠 Retroactive Salience Backfill — "Memory with hindsight"
A faithful port of Cai 2024 (Nature). When a failure is recorded, Vestige reaches backward in time and promotes the quiet earlier memory that caused it — the root cause a vector search structurally cannot surface (not similar to the failure, only causally upstream). Auto-fires in consolidation; exposed as the backfill MCP tool + vestige backfill CLI.
🛠️ MCP Tool Consolidation (34 → 13 advertised tools)
recall (search + deep_reference + contradictions), maintain, dedup (8→1), graph, memory_status, + memory/codebase/intention/smart_ingest/source_sync/session_start/suppress + the flagship backfill. Old names remain dispatchable as back-compat aliases.
🔍 deep_reference engine upgrades
F32 embeddings (paraphrase-band recall lift), Reciprocal Rank Fusion in hybrid search, claim-vs-memory contradiction detection (claim_contradicts_memory instead of confident silence), never-composed semantic-band gate, and new vestige recall / vestige compose CLI commands.
🔒 Security & correctness
SSRF/token-exfil hardening, panic/DoS/overflow + deadlock fixes (multi-model audit swarm). usearch keeps fp16lib (Windows MSVC C1021 fix).
Quality gates: 1,550 tests pass · clippy -D warnings clean · dashboard check + build clean.
The Black Box / trace-receipt / cloud-sync / launch-UI bundle (#98) is a separate coupled feature stream shipping as its own follow-up release.
v2.1.27 — External-Source Connectors
Roadmap #57, Phases 1–4 (complete). Vestige can now act as a durable, local, semantically-searchable retrieval layer over an external system of record — GitHub Issues and Redmine — without replacing it. The external system stays canonical; Vestige indexes, connects, retrieves, and cites back to the source record.
Unlike a live ticket-system MCP proxy (stateless, rate-limited per query, online-only), Vestige keeps a durable embedded index: searchable offline, semantically, joinable with the rest of your memory, temporally versioned, and re-syncable idempotently with no duplication.
Highlights
source_syncMCP tool — index a GitHub repo ({"source":"github","repo":"owner/name"}) or Redmine project ({"source":"redmine","project":"<id>"}). Re-running updates changed issues in place (no duplicates);reconcile:truetombstones issues removed upstream. Tokens read from env only (GITHUB_TOKEN,REDMINE_URL/REDMINE_API_KEY).- Source-aware investigation filters on
search— bysource_system,source_project,source_id,source_type,source_author, an updated-at date range, andsource_status(valid/tombstoned/any). - Source envelope on every connector memory (system, id, URL, content hash, project, type, author) — search results cite the canonical record URL.
- Migration V17 — additive provenance columns + a partial UNIQUE index (one memory per external record) + connector cursor checkpoints. Existing memories untouched.
Local-first and optional: with no source_sync call, behavior is unchanged. The connector HTTP client is on by default in the MCP server and off in the core library's default features.
See CHANGELOG.md and docs/CONNECTORS.md for full details.
2.1.26 - Configurable Output
v2.1.25 - Merge / Supersede Controls
v2.1.25 ships Phase 3: diff-previewed, confidence-gated, reversible merge/supersede controls on a never-delete bitemporal store. It adds seven MCP tools for merge candidates, merge/supersede planning, apply, undo/reflog, protection, and policy; plus Migration V14 for merge plans, merge operations, protected memories, and superseded lineage.
Release assets are built by the Release workflow. Publish npm only after the platform archives and checksums are present, because the npm postinstall downloads from this GitHub release.
v2.1.23 - Receipt Lock Hardening
v2.1.23 hardens the Sanhedrin launch path so Receipt Lock is portable, observable, and precise enough for broader use.
Added
- Model-agnostic Sanhedrin backend presets for OpenAI-compatible servers, laptops, Ollama, MLX, vLLM, llama.cpp, hosted APIs, and Anthropic via LiteLLM.
- Fail-open telemetry in
fail-open.jsonl, plus a dashboard telemetry API and 7-day ambient dashboard counters. - Receipt schema documentation covering receipt artifacts, appeals, command ledgers, fail-open logs, compatibility rules, and staged-evidence trust boundaries.
- Opt-in CUDA feature flags for Qwen3 embedding builds on NVIDIA hardware.
Changed
- Receipt Lock strips code fences, inline code, blockquotes, quoted regions, and scoped epistemic hedges before matching verification claims.
- Structured transcript tool-use receipts are now the default evidence path; loose JSON command scanning requires
VESTIGE_SANHEDRIN_ALLOW_LOOSE_LEDGER=1. - Claim-mode sampling prioritizes higher-severity claims.
- Hosted Sanhedrin credentials are only sent to the configured Sanhedrin endpoint.
smart_ingestbatch mode defaults tobatchMergePolicy: "force_create"unless callers opt into smart merging.- CUDA-enabled Qwen3 builds try
Device::new_cuda(0)before falling back to Metal or CPU.
Fixed
- Standalone dashboard mode now hydrates the cognitive engine for Dream and Deep Reference.
--data-dirrejects existing non-directory paths with a clear error.vestige-restorehandles--helpand--version.- Smart ingest merge/update responses include
previousContent,mergedFrom, andmergePreview. - Daily Sanhedrin telemetry preserves NOTE and CAUTION buckets.
Validation: PR #63 passed all 11 GitHub checks before release.
v2.1.22 — Sanhedrin Receipts
v2.1.22 makes the optional Sanhedrin hook quieter and more accountable by
turning draft judgment into local, appealable receipts instead of opaque vetoes.
Added
- Receipt Lock blocks unsupported verification claims such as "tests passed"
unless the current transcript contains a matching successful test, build,
lint, or typecheck command receipt. - Veto receipts are written to
~/.vestige/sanhedrin/latest.jsonand
latest.htmlwith Claim -> Verdict -> Precedent -> Fix -> Appeal fields. - Dashboard Verdict Bar surfaces the latest PASS, NOTE, CAUTION, VETO, or
APPEALED state and lets users appeal stale, wrong, or too-strict vetoes. - Appeal training records feedback in
appeals.jsonland suppresses future
vetoes for the same claim fingerprint.
Changed
- Sanhedrin claim-mode output now feeds a per-claim receipt ledger while keeping
the existing one-line Stop-hook contract for Claude Code.
v2.1.21
v2.1.2 — Honest Memory
Honest Memory
v2.1.2 focuses on operational trust: exact search stays exact, purge really removes content, contradictions are directly inspectable, and the update flow no longer depends on copied curl commands.
Added
- Concrete search mode —
searchnow auto-detects literal queries such as quoted strings, env vars, UUIDs, paths, and code identifiers. Those queries take a keyword/literal path that skips HyDE, semantic fusion, FSRS reweighting, retrieval competition, and spreading activation so exact matches land first. - Irreversible purge —
memory(action="purge", confirm=true)permanently removes memory content and embeddings, scrubsinsights.source_memories, detaches temporal-summary children, prunes graph edges, and writes only a non-contentdeletion_tombstonesrow for sync/audit. - First-class contradictions tool — new
contradictionsMCP tool scans a topic or recent memories for trust-weighted disagreements using the same local contradiction logic asdeep_reference. - Simple update flow —
vestige updaterefreshes installed binaries and companion Sandwich files without requiring users to paste a curl installer. - Pro waitlist preview —
/dashboard/waitlistadds a local-only marketing surface for Solo Pro and Team Pro early-access signups.VITE_WAITLIST_ENDPOINTandVITE_SUPPORT_BOT_ENDPOINTare opt-in dashboard env vars, so no signup data is captured unless endpoints are configured.
Fixed
- Dream connection persistence cap — dense single-domain dreams now persist every connection discovered in that run instead of losing everything beyond the old 1,000-entry live buffer. The live dreamer buffer now keeps up to 200,000 high-scoring recent connections, and the MCP
dreamtool exposesmin_similarityfor corpus-specific tuning. - Embedding-model upgrade repair —
vestige consolidatenow re-embeds every missing or active-model-mismatched memory in one pass, so v1/v2 mixed stores are no longer left partially unreachable after only the first 100 legacy embeddings are regenerated.
Release Shape
- 25 MCP tools
- SQLite migration v13
- Backwards compatible:
deleteremains apurgealias - Closes #50 and #51
Install / Update
vestige updateFresh npm install once the GitHub release assets and npm package are published:
npm install -g vestige-mcp-server@latest