2026-01-25 01:31:03 -06:00
|
|
|
[package]
|
|
|
|
|
name = "vestige-mcp"
|
feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control
First AI memory system to model forgetting as a neuroscience-grounded
PROCESS rather than passive decay. Adds the `suppress` MCP tool (#24),
Rac1 cascade worker, migration V10, and dashboard forgetting indicators.
Based on:
- Anderson, Hanslmayr & Quaegebeur (2025), Nat Rev Neurosci — right
lateral PFC as the domain-general inhibitory controller; SIF
compounds with each stopping attempt.
- Cervantes-Sandoval et al. (2020), Front Cell Neurosci PMC7477079 —
Rac1 GTPase as the active synaptic destabilization mechanism.
What's new:
* `suppress` MCP tool — each call compounds `suppression_count` and
subtracts a `0.15 × count` penalty (saturating at 80%) from
retrieval scores during hybrid search. Distinct from delete
(removes) and demote (one-shot).
* Rac1 cascade worker — background sweep piggybacks the 6h
consolidation loop, walks `memory_connections` edges from
recently-suppressed seeds, applies attenuated FSRS decay to
co-activated neighbors. You don't just forget Jake — you fade
the café, the roommate, the birthday.
* 24h labile window — reversible via `suppress({id, reverse: true})`
within 24 hours. Matches Nader reconsolidation semantics.
* Migration V10 — additive-only (`suppression_count`, `suppressed_at`
+ partial indices). All v2.0.x DBs upgrade seamlessly on first launch.
* Dashboard: `ForgettingIndicator.svelte` pulses when suppressions
are active. 3D graph nodes dim to 20% opacity when suppressed.
New WebSocket events: `MemorySuppressed`, `MemoryUnsuppressed`,
`Rac1CascadeSwept`. Heartbeat carries `suppressed_count`.
* Search pipeline: SIF penalty inserted into the accessibility stage
so it stacks on top of passive FSRS decay.
* Tool count bumped 23 → 24. Cognitive modules 29 → 30.
Memories persist — they are INHIBITED, not erased. `memory.get(id)`
returns full content through any number of suppressions. The 24h
labile window is a grace period for regret.
Also fixes issue #31 (dashboard graph view buggy) as a companion UI
bug discovered during the v2.0.5 audit cycle:
* Root cause: node glow `SpriteMaterial` had no `map`, so
`THREE.Sprite` rendered as a solid-coloured 1×1 plane. Additive
blending + `UnrealBloomPass(0.8, 0.4, 0.85)` amplified the square
edges into hard-edged glowing cubes.
* Fix: shared 128×128 radial-gradient `CanvasTexture` singleton used
as the sprite map. Retuned bloom to `(0.55, 0.6, 0.2)`. Halved fog
density (0.008 → 0.0035). Edges bumped from dark navy `0x4a4a7a`
to brand violet `0x8b5cf6` with higher opacity. Added explicit
`scene.background` and a 2000-point starfield for depth.
* 21 regression tests added in `ui-fixes.test.ts` locking every
invariant in (shared texture singleton, depthWrite:false, scale
×6, bloom magic numbers via source regex, starfield presence).
Tests: 1,284 Rust (+47) + 171 Vitest (+21) = 1,455 total, 0 failed
Clippy: clean across all targets, zero warnings
Release binary: 22.6MB, `cargo build --release -p vestige-mcp` green
Versions: workspace aligned at 2.0.5 across all 6 crates/packages
Closes #31
2026-04-14 17:30:30 -05:00
|
|
|
version = "2.0.5"
|
2026-02-12 03:19:07 -06:00
|
|
|
edition = "2024"
|
feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events
The biggest release in Vestige history. Complete visual and cognitive overhaul.
Dashboard:
- SvelteKit 2 + Three.js 3D neural visualization at localhost:3927/dashboard
- 7 interactive pages: Graph, Memories, Timeline, Feed, Explore, Intentions, Stats
- WebSocket event bus with 16 event types, real-time 3D animations
- Bloom post-processing, GPU instanced rendering, force-directed layout
- Dream visualization mode, FSRS retention curves, command palette (Cmd+K)
- Keyboard shortcuts, responsive mobile layout, PWA installable
- Single binary deployment via include_dir! (22MB)
Engine:
- HyDE query expansion (intent classification + 3-5 semantic variants + centroid)
- fastembed 5.11 with optional Nomic v2 MoE + Qwen3 reranker + Metal GPU
- Emotional memory module (#29)
- Criterion benchmark suite
Backend:
- Axum WebSocket at /ws with heartbeat + event broadcast
- 7 new REST endpoints for cognitive operations
- Event emission from MCP tools via shared broadcast channel
- CORS for SvelteKit dev mode
Distribution:
- GitHub issue templates (bug report, feature request)
- CHANGELOG with comprehensive v2.0 release notes
- README updated with dashboard docs, architecture diagram, comparison table
734 tests passing, zero warnings, 22MB release binary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 03:07:25 -06:00
|
|
|
description = "Cognitive memory MCP server for Claude - FSRS-6, spreading activation, synaptic tagging, 3D dashboard, and 130 years of memory research"
|
2026-01-25 01:31:03 -06:00
|
|
|
authors = ["samvallad33"]
|
chore: license AGPL-3.0, zero clippy warnings, CHANGELOG through v1.6.0
License:
- Replace MIT/Apache-2.0 with AGPL-3.0-only across all crates and npm packages
- Replace LICENSE file with official GNU AGPL-3.0 text
- Remove LICENSE-MIT and LICENSE-APACHE
Code quality:
- Fix all 44 clippy warnings (zero remaining)
- Collapsible if statements, redundant closures, manual Option::map
- Remove duplicate #[allow(dead_code)] attributes in deprecated tool modules
- Add Default impl for CognitiveEngine
- Replace manual sort_by with sort_by_key
Documentation:
- Update CHANGELOG with v1.2.0, v1.3.0, v1.5.0, v1.6.0 entries
- Update README with v1.6.0 highlights and accurate stats (52K lines, 1100+ tests)
- Add fastembed-rs/ to .gitignore
- Add fastembed-rs to workspace exclude
1115 tests passing, zero warnings, RUSTFLAGS="-Dwarnings" clean.
2026-02-19 03:00:39 -06:00
|
|
|
license = "AGPL-3.0-only"
|
2026-01-25 01:31:03 -06:00
|
|
|
keywords = ["mcp", "ai", "memory", "fsrs", "neuroscience", "cognitive-science", "spaced-repetition"]
|
|
|
|
|
categories = ["command-line-utilities", "database"]
|
|
|
|
|
repository = "https://github.com/samvallad33/vestige"
|
|
|
|
|
|
2026-01-27 01:14:59 -06:00
|
|
|
[features]
|
|
|
|
|
default = ["embeddings", "vector-search"]
|
|
|
|
|
embeddings = ["vestige-core/embeddings"]
|
|
|
|
|
vector-search = ["vestige-core/vector-search"]
|
2026-04-11 08:21:53 +02:00
|
|
|
# For systems with glibc < 2.38 — use runtime-loaded ORT instead of the downloaded pre-built binary.
|
|
|
|
|
# Usage: cargo install --path crates/vestige-mcp --no-default-features --features ort-dynamic,vector-search
|
|
|
|
|
ort-dynamic = ["vestige-core/ort-dynamic"]
|
2026-01-27 01:14:59 -06:00
|
|
|
|
2026-01-25 01:31:03 -06:00
|
|
|
[[bin]]
|
|
|
|
|
name = "vestige-mcp"
|
|
|
|
|
path = "src/main.rs"
|
|
|
|
|
|
2026-01-25 13:30:03 -06:00
|
|
|
[[bin]]
|
|
|
|
|
name = "vestige-restore"
|
|
|
|
|
path = "src/bin/restore.rs"
|
|
|
|
|
|
2026-01-26 01:31:58 -06:00
|
|
|
[[bin]]
|
|
|
|
|
name = "vestige"
|
|
|
|
|
path = "src/bin/cli.rs"
|
|
|
|
|
|
2026-01-25 01:31:03 -06:00
|
|
|
[dependencies]
|
|
|
|
|
# ============================================================================
|
|
|
|
|
# VESTIGE CORE - The cognitive science engine
|
|
|
|
|
# ============================================================================
|
|
|
|
|
# Includes: FSRS-6, spreading activation, synaptic tagging, hippocampal indexing,
|
fix(ci): unblock Intel Mac + Windows MSVC builds in v2.0.5 release workflow
Two unrelated upstream issues were stopping two of our four release targets.
Root-caused and fixed both so v2.0.5 ships on 100% of supported platforms.
Windows MSVC (new regression in v2.0.5):
`usearch 2.24.0` introduced a `memory_mapping_allocator_gt` template
that references the POSIX `MAP_FAILED` macro from <sys/mman.h>, which
doesn't exist on MSVC. Confirmed upstream as unum-cloud/usearch#746
(open). The bump from 2.23.0 happened during the v2.0.5 Cargo.lock
refresh. Pinned `usearch = "=2.23.0"` in crates/vestige-core/Cargo.toml
with a comment linking the upstream issue. Unpin when the fix lands.
Intel Mac (latent bug exposed by the ci workaround):
Root cause was feature-propagation, not the release workflow.
crates/vestige-mcp/Cargo.toml hardcoded
`features = ["bundled-sqlite", "embeddings", "vector-search"]` on its
vestige-core dep, which forcibly enabled vestige-core's embeddings
feature regardless of whether vestige-mcp's own `embeddings` feature
flag was set. With `--no-default-features` at the top level (the old
Intel Mac ci workaround), vestige-mcp's feature flags turned off but
vestige-core's embeddings stayed on through the hardcoded list. That
pulled in fastembed -> ort-sys, but without any of the flags that
select ort-sys' backend binaries, so the ort-sys build script failed
with "does not provide prebuilt binaries for the target
x86_64-apple-darwin with feature set (no features)".
Fix:
- Drop `embeddings` and `vector-search` from the hardcoded features
list in crates/vestige-mcp/Cargo.toml. Leave only `bundled-sqlite`
as an always-on base feature. The existing
`embeddings = ["vestige-core/embeddings"]` /
`vector-search = ["vestige-core/vector-search"]` flag declarations
now actually gate those features as intended.
- Bump the vestige-core dep version ref 2.0.4 -> 2.0.5 (was stale).
- Drop `cargo_flags: "--no-default-features"` from the Intel Mac
target in .github/workflows/release.yml. The original reason for
that workaround was sidestepping the same ort-sys issue, but with
the feature-propagation bug fixed, Intel Mac now builds with full
default features the same way aarch64-darwin does on the same
macos-14 runner.
Verification:
- `cargo tree -p vestige-mcp --no-default-features -i fastembed`
-> "did not match any packages" (fastembed truly absent now)
- `cargo tree -p vestige-mcp --no-default-features -i ort-sys` -> same
- `cargo build --release -p vestige-mcp` -> clean, 1m 21s, usearch 2.23.0
Same v2.0.5 tag. Rust source code identical to 8178beb. Re-triggering
the release workflow via workflow_dispatch will rebuild all four
platforms and upload to the existing v2.0.5 release page.
2026-04-14 18:03:56 -05:00
|
|
|
# memory states, context memory, importance signals, dreams, and more.
|
|
|
|
|
#
|
|
|
|
|
# Only `bundled-sqlite` is always on. `embeddings` and `vector-search` are
|
|
|
|
|
# toggled via vestige-mcp's own feature flags below so `--no-default-features`
|
|
|
|
|
# actually works (previously hardcoded here, which silently defeated the flag).
|
|
|
|
|
vestige-core = { version = "2.0.5", path = "../vestige-core", default-features = false, features = ["bundled-sqlite"] }
|
2026-01-25 01:31:03 -06:00
|
|
|
|
|
|
|
|
# ============================================================================
|
|
|
|
|
# MCP Server Dependencies
|
|
|
|
|
# ============================================================================
|
|
|
|
|
# Async runtime
|
|
|
|
|
tokio = { version = "1", features = ["full", "io-std"] }
|
|
|
|
|
|
|
|
|
|
# Serialization
|
|
|
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
|
serde_json = "1"
|
|
|
|
|
|
|
|
|
|
# Date/Time
|
|
|
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
|
|
|
|
|
|
# UUID
|
|
|
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
|
|
|
|
2026-03-02 10:51:41 -06:00
|
|
|
# Constant-time comparison for auth tokens (prevents timing side-channels)
|
|
|
|
|
subtle = "2"
|
|
|
|
|
|
2026-01-25 01:31:03 -06:00
|
|
|
# Error handling
|
|
|
|
|
thiserror = "2"
|
2026-01-25 13:30:03 -06:00
|
|
|
anyhow = "1"
|
2026-01-25 01:31:03 -06:00
|
|
|
|
|
|
|
|
# Logging
|
|
|
|
|
tracing = "0.1"
|
|
|
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
|
|
|
|
|
|
|
|
|
# Platform directories
|
|
|
|
|
directories = "6"
|
|
|
|
|
|
2026-01-26 01:31:58 -06:00
|
|
|
# CLI
|
|
|
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
|
colored = "3"
|
|
|
|
|
|
2026-02-12 03:02:32 -06:00
|
|
|
# SQLite (for backup WAL checkpoint)
|
|
|
|
|
rusqlite = { version = "0.38", features = ["bundled"] }
|
|
|
|
|
|
fix: v2.0.1 release — fix broken installs, CI, security, and docs
Critical fixes:
- npm postinstall.js: BINARY_VERSION '1.1.3' → '2.0.1' (every install was 404ing)
- npm package name: corrected error messages to 'vestige-mcp-server'
- README: npm install command pointed to wrong package
- MSRV: bumped from 1.85 to 1.91 (uses floor_char_boundary from 1.91)
- CI: removed stale 'develop' branch from test.yml triggers
Security hardening:
- CSP: restricted connect-src from wildcard 'ws: wss:' to localhost-only
- Added X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy headers
- Added frame-ancestors 'none', base-uri 'self', form-action 'self' to CSP
- Capped retention_distribution endpoint from 10k to 1k nodes
- Added debug logging for WebSocket connections without Origin header
Maintenance:
- All clippy warnings fixed (58 total: redundant closures, collapsible ifs, no-op casts)
- All versions harmonized to 2.0.1 across Cargo.toml and package.json
- CLAUDE.md updated to match v2.0.1 (21 tools, 29 modules, 1238 tests)
- docs/CLAUDE-SETUP.md updated deprecated function names
- License corrected to AGPL-3.0-only in root package.json
1,238 tests passing, 0 clippy warnings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 20:20:14 -06:00
|
|
|
# Dashboard (v2.0) - HTTP server + WebSocket + embedded SvelteKit
|
feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events
The biggest release in Vestige history. Complete visual and cognitive overhaul.
Dashboard:
- SvelteKit 2 + Three.js 3D neural visualization at localhost:3927/dashboard
- 7 interactive pages: Graph, Memories, Timeline, Feed, Explore, Intentions, Stats
- WebSocket event bus with 16 event types, real-time 3D animations
- Bloom post-processing, GPU instanced rendering, force-directed layout
- Dream visualization mode, FSRS retention curves, command palette (Cmd+K)
- Keyboard shortcuts, responsive mobile layout, PWA installable
- Single binary deployment via include_dir! (22MB)
Engine:
- HyDE query expansion (intent classification + 3-5 semantic variants + centroid)
- fastembed 5.11 with optional Nomic v2 MoE + Qwen3 reranker + Metal GPU
- Emotional memory module (#29)
- Criterion benchmark suite
Backend:
- Axum WebSocket at /ws with heartbeat + event broadcast
- 7 new REST endpoints for cognitive operations
- Event emission from MCP tools via shared broadcast channel
- CORS for SvelteKit dev mode
Distribution:
- GitHub issue templates (bug report, feature request)
- CHANGELOG with comprehensive v2.0 release notes
- README updated with dashboard docs, architecture diagram, comparison table
734 tests passing, zero warnings, 22MB release binary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 03:07:25 -06:00
|
|
|
axum = { version = "0.8", default-features = false, features = ["json", "query", "tokio", "http1", "ws"] }
|
feat: Vestige v1.2.0 — dashboard, temporal tools, maintenance tools, detail levels
Add web dashboard (axum) on port 3927 with memory browser, search, and
system stats. New MCP tools: memory_timeline, memory_changelog,
health_check, consolidate, stats, backup, export, gc. Search now supports
detail_level (brief/summary/full) to control token usage. Add backup_to()
and get_recent_state_transitions() to storage layer. Bump to v1.2.0.
2026-02-12 04:33:05 -06:00
|
|
|
tower = { version = "0.5", features = ["limit"] }
|
|
|
|
|
tower-http = { version = "0.6", features = ["cors", "set-header"] }
|
feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events
The biggest release in Vestige history. Complete visual and cognitive overhaul.
Dashboard:
- SvelteKit 2 + Three.js 3D neural visualization at localhost:3927/dashboard
- 7 interactive pages: Graph, Memories, Timeline, Feed, Explore, Intentions, Stats
- WebSocket event bus with 16 event types, real-time 3D animations
- Bloom post-processing, GPU instanced rendering, force-directed layout
- Dream visualization mode, FSRS retention curves, command palette (Cmd+K)
- Keyboard shortcuts, responsive mobile layout, PWA installable
- Single binary deployment via include_dir! (22MB)
Engine:
- HyDE query expansion (intent classification + 3-5 semantic variants + centroid)
- fastembed 5.11 with optional Nomic v2 MoE + Qwen3 reranker + Metal GPU
- Emotional memory module (#29)
- Criterion benchmark suite
Backend:
- Axum WebSocket at /ws with heartbeat + event broadcast
- 7 new REST endpoints for cognitive operations
- Event emission from MCP tools via shared broadcast channel
- CORS for SvelteKit dev mode
Distribution:
- GitHub issue templates (bug report, feature request)
- CHANGELOG with comprehensive v2.0 release notes
- README updated with dashboard docs, architecture diagram, comparison table
734 tests passing, zero warnings, 22MB release binary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 03:07:25 -06:00
|
|
|
futures-util = "0.3"
|
feat: Vestige v1.2.0 — dashboard, temporal tools, maintenance tools, detail levels
Add web dashboard (axum) on port 3927 with memory browser, search, and
system stats. New MCP tools: memory_timeline, memory_changelog,
health_check, consolidate, stats, backup, export, gc. Search now supports
detail_level (brief/summary/full) to control token usage. Add backup_to()
and get_recent_state_transitions() to storage layer. Bump to v1.2.0.
2026-02-12 04:33:05 -06:00
|
|
|
open = "5"
|
|
|
|
|
|
feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events
The biggest release in Vestige history. Complete visual and cognitive overhaul.
Dashboard:
- SvelteKit 2 + Three.js 3D neural visualization at localhost:3927/dashboard
- 7 interactive pages: Graph, Memories, Timeline, Feed, Explore, Intentions, Stats
- WebSocket event bus with 16 event types, real-time 3D animations
- Bloom post-processing, GPU instanced rendering, force-directed layout
- Dream visualization mode, FSRS retention curves, command palette (Cmd+K)
- Keyboard shortcuts, responsive mobile layout, PWA installable
- Single binary deployment via include_dir! (22MB)
Engine:
- HyDE query expansion (intent classification + 3-5 semantic variants + centroid)
- fastembed 5.11 with optional Nomic v2 MoE + Qwen3 reranker + Metal GPU
- Emotional memory module (#29)
- Criterion benchmark suite
Backend:
- Axum WebSocket at /ws with heartbeat + event broadcast
- 7 new REST endpoints for cognitive operations
- Event emission from MCP tools via shared broadcast channel
- CORS for SvelteKit dev mode
Distribution:
- GitHub issue templates (bug report, feature request)
- CHANGELOG with comprehensive v2.0 release notes
- README updated with dashboard docs, architecture diagram, comparison table
734 tests passing, zero warnings, 22MB release binary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 03:07:25 -06:00
|
|
|
# Embedded SvelteKit dashboard (v2.0)
|
|
|
|
|
include_dir = "0.7"
|
|
|
|
|
mime_guess = "2"
|
|
|
|
|
|
2026-01-25 01:31:03 -06:00
|
|
|
[dev-dependencies]
|
|
|
|
|
tempfile = "3"
|