Commit graph

147 commits

Author SHA1 Message Date
Sam Valladares
eb16d684fc fix: use platform cache dir for fastembed models
Previously, fastembed created .fastembed_cache in the current working
directory, polluting project folders with symlinks.

Now uses platform-appropriate cache directories:
- macOS: ~/Library/Caches/com.vestige.core/fastembed
- Linux: ~/.cache/vestige/fastembed
- Windows: %LOCALAPPDATA%\vestige\cache\fastembed

Can still be overridden with FASTEMBED_CACHE_PATH env var.

Fixes user feedback about .fastembed_cache appearing in random folders.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 02:32:23 -06:00
Sam Valladares
497f149b64 docs: restructure README for 30-second onboarding
README: 1,565 → 196 lines (87% reduction)

New structure:
- Quick Start above the fold (download → connect → test)
- Why Vestige in 5-row table
- Tools reference
- CLAUDE.md trigger words
- Collapsible troubleshooting
- Links to detailed docs

New docs/:
- FAQ.md: 870 lines of community Q&A
- SCIENCE.md: FSRS-6, dual-strength memory, neuroscience
- STORAGE.md: Global, per-project, multi-Claude setup
- CLAUDE-SETUP.md: Full templates for proactive memory
- CONFIGURATION.md: CLI commands, env vars

All content preserved, just reorganized for scannability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 02:28:39 -06:00
Sam Valladares
a8eb9e7bae docs: update README for v1.1.1 release
- Add v1.1.1 changelog with bug fixes
- Add pre-built binary download options for all platforms
- Replace basic CLAUDE.md with comprehensive proactive memory setup
- Add release badge
- Update version table and references

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 02:12:48 -06:00
Sam Valladares
9a56a8ce40 fix(ci): correct rust-toolchain action name and add write permissions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:32:47 -06:00
Sam Valladares
c005a46c82 ci: add GitHub Actions workflow for multi-platform releases
Automatically builds binaries for:
- Linux x86_64 (ubuntu-latest)
- Windows x86_64 (windows-latest)
- macOS x86_64 Intel (macos-latest)
- macOS ARM64 Apple Silicon (macos-latest)

Triggers on release creation or manual workflow dispatch.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:32:01 -06:00
Sam Valladares
ad1e1796f3 chore: apply clippy fixes to e2e tests
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:23:33 -06:00
Sam Valladares
e06dd3d69a chore: cleanup dead code warnings and apply clippy fixes for v1.1.1
- Add #![allow(dead_code)] to deprecated tool modules (kept for
  backwards compatibility but not exposed in MCP tool list)
- Mark unused functions with #[allow(dead_code)] annotations
- Fix unused variable warnings (prefix with _)
- Apply clippy auto-fixes for redundant closures and derives
- Fix test to account for protocol version negotiation
- Reorganize tools/mod.rs to clarify active vs deprecated tools

Security review: LOW RISK - no critical vulnerabilities found
Dead code review: deprecated tools properly annotated

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:23:27 -06:00
Sam Valladares
bfa91474a6 fix: resolve UTF-8 string slicing bugs and feature flag issues
- Fix silent errors in stdio.rs: clients now receive fallback error
  responses instead of hanging when JSON serialization fails
- Fix UTF-8 panics in keyword.rs: use char-aware slicing instead of
  byte offsets for query sanitization and term highlighting
- Fix UTF-8 panics in prospective_memory.rs: replace hard-coded byte
  offsets with char-aware slicing for natural language parsing
- Fix UTF-8 panics in git.rs: convert byte positions to char positions
  before slicing commit messages
- Fix feature flag bug in vestige-mcp: add proper [features] section
  to forward embeddings and vector-search features from vestige-core,
  enabling the #[cfg(feature = "embeddings")] initialization code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:14:59 -06:00
Sam Valladares
f10367ecd0 fix: add explicit embedding initialization with error logging
When embeddings fail to initialize in the MCP server context (e.g., due
to working directory issues), the error was silently swallowed and
smart_ingest would fall back to regular ingest without explanation.

Changes:
- Add init_embeddings() method to Storage for explicit initialization
- Initialize embeddings at MCP server startup with error logging
- Add check_ready() method to EmbeddingService for error access
- Log warning when is_ready() returns false

Now users will see clear error messages like:
"Failed to initialize embedding service: ..."
"Hint: Check FASTEMBED_CACHE_PATH or ensure ~/.fastembed_cache exists"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 01:04:06 -06:00
Sam Valladares
6ccbc7d2c0 fix: implement MCP protocol version negotiation
Claude Desktop requests protocol version 2025-06-18 but Vestige was
responding with 2025-11-25, causing Claude Desktop to disconnect.

Now the server negotiates: if the client requests an older version,
use it. This maintains backward compatibility with older clients.

Fixes: Claude Desktop "Server transport closed unexpectedly" error

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 00:59:53 -06:00
Sam Valladares
ab1a3a885a chore: bump vestige-mcp version to 1.1.1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 00:56:42 -06:00
Sam Valladares
b779b54c5c fix: reduce visible tools from 30 to 8
Users were seeing 30 tools in /mcp which was overwhelming. Now only 8
essential tools are listed:

1. search - unified hybrid search
2. memory - get/delete/state operations
3. codebase - patterns and decisions
4. intention - prospective memory
5. ingest - add memories
6. smart_ingest - intelligent ingestion
7. promote_memory - thumbs up
8. demote_memory - thumbs down

Deprecated tools (recall, semantic_search, etc.) still work internally
for backward compatibility but are no longer listed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 00:42:19 -06:00
Sam Valladares
ed6aeadb70 feat: add MCPB bundle and fix npm package distribution
Two distribution methods now available:

1. npm (for Claude Code / developers):
   npm install -g vestige-mcp-server
   claude mcp add vestige vestige-mcp -s user

2. MCPB (for Claude Desktop / one-click install):
   Download vestige-1.1.0.mcpb from releases, double-click

Changes:
- Renamed npm package to vestige-mcp-server (vestige-mcp was taken)
- Fixed postinstall to download binaries from GitHub releases
- Added vestige-mcpb package with manifest and build script
- Uploaded .mcpb bundle to v1.1.0 release

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 00:15:17 -06:00
Sam Valladares
a104219db2 fix(npm): add .npmignore to exclude cache and binaries
Prevents accidentally publishing the 547MB embedding model cache
or downloaded binaries.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 23:50:40 -06:00
Sam Valladares
1e06344319 fix(npm): download binaries during postinstall
The npm package was missing the actual binary download step - users got
wrapper scripts pointing to non-existent binaries.

Changes:
- postinstall.js now downloads correct binary from GitHub releases
- Added vestige.js wrapper for CLI binary
- Exposed both vestige-mcp and vestige commands in package.json
- Updated README with troubleshooting, storage info, CLI docs
- Added .gitignore for downloaded binaries

Fixes fresh install issues where Claude Desktop couldn't attach and
vestige CLI wasn't found.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 23:48:23 -06:00
Sam Valladares
e5b27ff1e5 docs: fix README installation and cache documentation
- Add -s user flag to claude mcp add commands for user scope install
- Correct fastembed cache location docs (.fastembed_cache in CWD, not ~/.cache/huggingface)
- Add troubleshooting section for .fastembed_cache folder in project directories
- Include FASTEMBED_CACHE_PATH env var workaround

Fixes issues reported by Reddit user feedback.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:34:10 -06:00
Sam Valladares
9d702b6f57 fix(ci): add contents:write permission for release creation
GitHub Actions needs explicit permission to create releases.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:38:54 -06:00
Sam Valladares
524c39a87d feat(ci): add Windows x86_64 to release builds
Now shipping 3 platforms:
- aarch64-apple-darwin (macOS Apple Silicon) - .tar.gz
- x86_64-unknown-linux-gnu (Linux x86_64) - .tar.gz
- x86_64-pc-windows-msvc (Windows x86_64) - .zip

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:29:30 -06:00
Sam Valladares
46a635f1e1 fix(ci): simplify release to 2 platforms
Drop problematic targets:
- x86_64-apple-darwin: No free Intel macOS runners after macos-13 retirement
- aarch64-unknown-linux-gnu: Cross-compile OpenSSL issues with vendored feature

Ship with 2 platforms that work reliably:
- aarch64-apple-darwin (macOS Apple Silicon)
- x86_64-unknown-linux-gnu (Linux x86_64)

Users on Intel Mac or ARM64 Linux can build from source with cargo.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:25:06 -06:00
Sam Valladares
3b5ab01966 fix(ci): use macos-15-large for Intel builds
macos-13 was retired in December 2025. Use macos-15-large for x86_64
macOS builds as recommended by GitHub.

See: https://github.blog/changelog/2025-09-19-github-actions-macos-13-runner-image-is-closing-down/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:22:32 -06:00
Sam Valladares
78810f2f5c chore: update Cargo.lock for vendored-openssl
Adds openssl-src v300.5.4+3.5.4 to lockfile.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:20:23 -06:00
Sam Valladares
0bcceab717 fix(ci): use vendored-openssl and actions-rust-cross
Two-pronged fix for cross-compilation:

1. git2 with vendored-openssl feature - compiles OpenSSL from source,
   eliminating system dependency issues across all platforms

2. houseabsolute/actions-rust-cross@v1 - dedicated GitHub Action that
   properly handles cross-compilation with Docker containers

Sources:
- https://github.com/rust-lang/git2-rs
- https://github.com/houseabsolute/actions-rust-cross

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:18:18 -06:00
Sam Valladares
ed2fbe60ee fix(ci): use native runners for each platform
- macOS ARM64: macos-latest (Apple Silicon)
- macOS x86_64: macos-13 (Intel) - no cross-compilation
- Linux x86_64: ubuntu-latest with OpenSSL
- Linux ARM64: cross tool for proper Docker-based cross-compilation

Install OpenSSL via homebrew on macOS and set OPENSSL_DIR.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:12:28 -06:00
Sam Valladares
564fb72f39 fix(ci): remove hardcoded CARGO_HOME path
CARGO_HOME path differs between Linux and macOS runners.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:09:51 -06:00
Sam Valladares
9af06f0e67 fix(ci): use cross for ARM64 Linux builds
Cross-compilation for aarch64-unknown-linux-gnu requires OpenSSL
dev libraries for the target platform. Using `cross` handles this
automatically via Docker containers with pre-installed dependencies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:08:51 -06:00
Sam Valladares
3fb6a77bc7 fix(cli): use Cargo.toml version instead of hardcoded
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:06:22 -06:00
Sam Valladares
1b9004f88e chore(v1.1): move stats tools to CLI, add feedback protocol
- Remove get_stats, health_check, run_consolidation from MCP server
- These tools now CLI-only: vestige stats, vestige health, vestige consolidate
- Add feedback protocol to server instructions (promote/demote guidance)
- Update README with CLI Admin Commands section and Feedback Tools table
- Update release note: "8 Cognitive Primitives + 3 CLI Admin Commands"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 02:05:06 -06:00
Sam Valladares
a6ba67884d docs: professionalize data storage warning section
Replace casual tone with clear risk assessment table and
professional recommendations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:48:16 -06:00
Sam Valladares
086cc2fa2c chore: bump version to 1.1.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:44:30 -06:00
Sam Valladares
3023e58ce3 docs: add What's New in v1.1 section at top of README
Highlights v1.1 features prominently:
- Tool consolidation (29 → 8)
- New CLI binary commands
- Documentation improvements
- Backward compatibility note

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:41:34 -06:00
Sam Valladares
3ac85eeff4 docs: add version pinning and release tags documentation
- Document how to pin to specific versions
- List available versions (v1.0.0, v1.1.0)
- Add version check command

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:37:55 -06:00
Sam Valladares
36244f3c95 docs(faq): clarify Vestige vs Claude native memory compatibility
Address common question: users don't need to disable Claude's native
memory to use Vestige. They're independent systems that can run
simultaneously.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:34:56 -06:00
Sam Valladares
8bb6500985 feat(v1.1): consolidate 29 tools → 8 unified tools + CLI
Tool Consolidation:
- search: merges recall, semantic_search, hybrid_search
- memory: merges get_knowledge, delete_knowledge, get_memory_state
- codebase: merges remember_pattern, remember_decision, get_codebase_context
- intention: merges all 5 intention tools into action-based API

New CLI Binary:
- vestige stats [--tagging] [--states]
- vestige health
- vestige consolidate
- vestige restore <file>

Documentation:
- Verify all neuroscience claims against codebase
- Fix Memory States table: "Retention" → "Accessibility" with formula
- Clarify Spreading Activation: embedding similarity vs full network module
- Update Synaptic Tagging: clarify 9h/2h implementation vs biology
- Add comprehensive FAQ with 30+ questions
- Add storage modes: global, per-project, multi-Claude household
- Add CLAUDE.md setup instructions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 01:31:58 -06:00
Sam Valladares
29130c3068 fix: accurate science claims, security docs, remove hardcoded path
## Changes

### README.md
- Fix FSRS-6 formula: power law (not exponential Ebbinghaus)
- Correct formula: R(t,S) = (1 + factor × t/S)^(-w₂₀)
- Honest "The Science" table showing what's fully implemented vs inspired
- Added / indicators for implementation accuracy
- Transparency note about honest marketing

### demo.sh
- Remove hardcoded /Users/entity002 path (security/privacy)
- Use relative path with fallback: ${VESTIGE:-$(dirname "$0")/...}

### SECURITY.md (new)
- Document trust model and security boundaries
- Explain data storage locations
- List input validation measures
- Security contact process

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:29:37 -06:00
Sam Valladares
3a4a19fa20 docs: add comprehensive data backup warnings
- Detail what causes data loss (delete, corrupt, lost device)
- Clarify "For AI memory = fine, For critical data = not fine"
- Add automated cron job backup example
- Mention Time Machine / Windows Backup as options

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:00:51 -06:00
Sam Valladares
bd41ec3388 docs: comprehensive README rewrite
- Add one-liner CLI install (claude mcp add vestige vestige-mcp)
- Document first-run network requirement (~130MB model download)
- Add data storage locations and backup instructions
- Reorganize all 29 tools into clear tables
- Add troubleshooting section
- Honest framing of neuroscience claims

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:49:36 -06:00
Sam Valladares
7440f21402 Add vestige-restore binary for backup restoration 2026-01-25 13:52:01 -06:00
Sam Valladares
f4842a12c1 Remove comparison section from README 2026-01-25 13:34:36 -06:00
Sam Valladares
dbb1c7bb3b Remove comparison column from Why Vestige section 2026-01-25 13:33:33 -06:00
Sam Valladares
a4d14f268c Update README with improved installation guide and 29 tools
- Simple 4-step Quick Start (2 minutes)
- Global install instructions (sudo cp to /usr/local/bin)
- Claude Code and Claude Desktop config examples
- Full 29-tool reference with descriptions
- Prediction Error Gating section with visual diagram
- Troubleshooting section
- Updating instructions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:31:37 -06:00
Sam Valladares
bbd1c15b4a Add Prediction Error Gating and smart_ingest tool (26 tools total)
Implements neuroscience-inspired memory gating based on prediction error:
- New smart_ingest MCP tool that auto-decides CREATE/UPDATE/SUPERSEDE
- PredictionErrorGate evaluates semantic similarity vs existing memories
- Automatically supersedes demoted memories with similar new content
- Reinforces near-identical memories instead of creating duplicates
- Adds promote_memory/demote_memory/request_feedback tools

Thresholds:
- >0.92 similarity = Reinforce existing
- >0.75 similarity = Update/Merge
- <0.75 similarity = Create new
- Demoted + similar = Auto-supersede

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:30:03 -06:00
Sam Valladares
5337efdfa7 Switch embedding model from BGE to nomic-embed-text-v1.5
- Replace BGE-base-en-v1.5 with nomic-embed-text-v1.5
- 8192 token context window (vs 512 for BGE)
- Matryoshka representation learning support
- Fully open source with training data released
- Same 768 dimensions, no schema changes required

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 03:11:15 -06:00
Sam Valladares
449d60754a Replace all engram references with vestige
Updated TypeScript packages, npm package, and config files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:44:11 -06:00
Sam Valladares
d9b762030e Fix CI: correct test names and remove undefined benchmarks
- Fix journey_tests (was 'journeys')
- Remove benchmarks job (no benchmarks defined)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:41:40 -06:00
Sam Valladares
b1f593dd67 Remove cognitive science and extreme validation tests for v1.0
Will be added in a later release.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:40:37 -06:00
Sam Valladares
042ec15467 Fix CI: Update package names from engram to vestige
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:39:30 -06:00
Sam Valladares
f9c60eb5a7 Initial commit: Vestige v1.0.0 - Cognitive memory MCP server
FSRS-6 spaced repetition, spreading activation, synaptic tagging,
hippocampal indexing, and 130 years of memory research.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:31:03 -06:00