Skip to content

Releases: samvallad33/vestige

v2.3.0 — Cognitive Observatory + Zero-Knowledge Sync

Choose a tag to compare

@samvallad33 samvallad33 released this 26 Jul 04:18
54f69b3

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

Choose a tag to compare

@samvallad33 samvallad33 released this 02 Jul 17:02
f7530af

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-msvc binary was built without the vector-search feature, so embeddings were never persisted or queried — "Embedding Service: Not Ready", 0% coverage, no model download. This release rebuilds the Windows binary with vector-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 via VESTIGE_BACKFILL_AUTOFIRE=0 (on by default). Thanks @randomnimbus for the report and initial patch (#104).

Added

  • First-run guidedocs/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

Choose a tag to compare

@samvallad33 samvallad33 released this 29 Jun 20:18

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

Choose a tag to compare

@samvallad33 samvallad33 released this 19 Jun 16:11

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_sync MCP 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:true tombstones issues removed upstream. Tokens read from env only (GITHUB_TOKEN, REDMINE_URL/REDMINE_API_KEY).
  • Source-aware investigation filters on search — by source_system, source_project, source_id, source_type, source_author, an updated-at date range, and source_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

Choose a tag to compare

@samvallad33 samvallad33 released this 19 Jun 04:23

Configurable output defaults and profiles are now available via vestige.toml. This release is tagged 2.1.26 and includes merged fixes from PR #75 and #76.

Release assets are built automatically by CI on publish.

v2.1.25 - Merge / Supersede Controls

Choose a tag to compare

@samvallad33 samvallad33 released this 15 Jun 18:38
c23d7a3

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

Choose a tag to compare

@samvallad33 samvallad33 released this 28 May 00:04
14b061f

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_ingest batch mode defaults to batchMergePolicy: "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-dir rejects existing non-directory paths with a clear error.
  • vestige-restore handles --help and --version.
  • Smart ingest merge/update responses include previousContent, mergedFrom, and mergePreview.
  • Daily Sanhedrin telemetry preserves NOTE and CAUTION buckets.

Validation: PR #63 passed all 11 GitHub checks before release.

v2.1.22 — Sanhedrin Receipts

Choose a tag to compare

@samvallad33 samvallad33 released this 25 May 06:22

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.json and
    latest.html with 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.jsonl and 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

Choose a tag to compare

@github-actions github-actions released this 24 May 21:18
v2.1.21 Agent-Neutral Hardening

v2.1.2 — Honest Memory

Choose a tag to compare

@samvallad33 samvallad33 released this 07 May 04:15

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 modesearch now 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 purgememory(action="purge", confirm=true) permanently removes memory content and embeddings, scrubs insights.source_memories, detaches temporal-summary children, prunes graph edges, and writes only a non-content deletion_tombstones row for sync/audit.
  • First-class contradictions tool — new contradictions MCP tool scans a topic or recent memories for trust-weighted disagreements using the same local contradiction logic as deep_reference.
  • Simple update flowvestige update refreshes installed binaries and companion Sandwich files without requiring users to paste a curl installer.
  • Pro waitlist preview/dashboard/waitlist adds a local-only marketing surface for Solo Pro and Team Pro early-access signups. VITE_WAITLIST_ENDPOINT and VITE_SUPPORT_BOT_ENDPOINT are 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 dream tool exposes min_similarity for corpus-specific tuning.
  • Embedding-model upgrade repairvestige consolidate now 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: delete remains a purge alias
  • Closes #50 and #51

Install / Update

vestige update

Fresh npm install once the GitHub release assets and npm package are published:

npm install -g vestige-mcp-server@latest