mirror of
https://github.com/samvallad33/vestige.git
synced 2026-05-09 15:52:37 +02:00
Some checks failed
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
Test Suite / Unit Tests (push) Has been cancelled
Test Suite / MCP E2E Tests (push) Has been cancelled
Test Suite / Dashboard Build (push) Has been cancelled
Test Suite / Code Coverage (push) Has been cancelled
CI / Release Build (aarch64-apple-darwin) (push) Has been cancelled
CI / Release Build (x86_64-unknown-linux-gnu) (push) Has been cancelled
Test Suite / User Journey Tests (push) Has been cancelled
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.
93 lines
3 KiB
TOML
93 lines
3 KiB
TOML
[package]
|
|
name = "vestige-mcp"
|
|
version = "2.0.5"
|
|
edition = "2024"
|
|
description = "Cognitive memory MCP server for Claude - FSRS-6, spreading activation, synaptic tagging, 3D dashboard, and 130 years of memory research"
|
|
authors = ["samvallad33"]
|
|
license = "AGPL-3.0-only"
|
|
keywords = ["mcp", "ai", "memory", "fsrs", "neuroscience", "cognitive-science", "spaced-repetition"]
|
|
categories = ["command-line-utilities", "database"]
|
|
repository = "https://github.com/samvallad33/vestige"
|
|
|
|
[features]
|
|
default = ["embeddings", "vector-search"]
|
|
embeddings = ["vestige-core/embeddings"]
|
|
vector-search = ["vestige-core/vector-search"]
|
|
# 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"]
|
|
|
|
[[bin]]
|
|
name = "vestige-mcp"
|
|
path = "src/main.rs"
|
|
|
|
[[bin]]
|
|
name = "vestige-restore"
|
|
path = "src/bin/restore.rs"
|
|
|
|
[[bin]]
|
|
name = "vestige"
|
|
path = "src/bin/cli.rs"
|
|
|
|
[dependencies]
|
|
# ============================================================================
|
|
# VESTIGE CORE - The cognitive science engine
|
|
# ============================================================================
|
|
# Includes: FSRS-6, spreading activation, synaptic tagging, hippocampal indexing,
|
|
# 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"] }
|
|
|
|
# ============================================================================
|
|
# 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"] }
|
|
|
|
# Constant-time comparison for auth tokens (prevents timing side-channels)
|
|
subtle = "2"
|
|
|
|
# Error handling
|
|
thiserror = "2"
|
|
anyhow = "1"
|
|
|
|
# Logging
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
|
|
|
# Platform directories
|
|
directories = "6"
|
|
|
|
# CLI
|
|
clap = { version = "4", features = ["derive"] }
|
|
colored = "3"
|
|
|
|
# SQLite (for backup WAL checkpoint)
|
|
rusqlite = { version = "0.38", features = ["bundled"] }
|
|
|
|
# Dashboard (v2.0) - HTTP server + WebSocket + embedded SvelteKit
|
|
axum = { version = "0.8", default-features = false, features = ["json", "query", "tokio", "http1", "ws"] }
|
|
tower = { version = "0.5", features = ["limit"] }
|
|
tower-http = { version = "0.6", features = ["cors", "set-header"] }
|
|
futures-util = "0.3"
|
|
open = "5"
|
|
|
|
# Embedded SvelteKit dashboard (v2.0)
|
|
include_dir = "0.7"
|
|
mime_guess = "2"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|