* fix: restore Intel Mac build via ort-dynamic + system libonnxruntime
Microsoft is discontinuing x86_64 macOS ONNX Runtime prebuilts after
v1.23.0, so ort-sys 2.0.0-rc.11 can't ship an Intel Mac binary and never
will. Previous Intel Mac attempts kept dying in the ort-sys build script
with "does not provide prebuilt binaries for the target x86_64-apple-darwin
with feature set (no features)." Issue #41 was the latest casualty.
Fix: route Intel Mac through the ort-dynamic feature path (runtime dlopen
against a system libonnxruntime installed via Homebrew). This sidesteps
ort-sys prebuilts entirely and works today.
Changes:
- crates/vestige-core/Cargo.toml: split `embeddings` into code-only vs
backend-choice. The embeddings feature now just pulls fastembed + hf-hub
+ image-models and activates the 27 #[cfg(feature = "embeddings")] gates
throughout the crate. New `ort-download` feature carries the
download-binaries-native-tls backend (the historical default). Existing
`ort-dynamic` feature now transitively enables `embeddings`, so the
cfg gates stay active when users swap backends.
Default feature set expands `["embeddings", ...]` -> `["embeddings",
"ort-download", ...]` so existing consumers see identical behavior.
- crates/vestige-mcp/Cargo.toml: mirrors the split. Adds `ort-download`
feature that chains to vestige-core/ort-download, keeps `ort-dynamic`
that chains to vestige-core/ort-dynamic. Both transitively pull
`embeddings`. Default adds `ort-download` so `cargo install vestige-mcp`
still picks the prebuilt-ort backend like before.
- .github/workflows/ci.yml: re-adds x86_64-apple-darwin to the
release-build matrix with `--no-default-features --features
ort-dynamic,vector-search`. Adds a `brew install onnxruntime` step that
sets ORT_DYLIB_PATH from `brew --prefix onnxruntime`.
- .github/workflows/release.yml: re-adds x86_64-apple-darwin to the
release matrix with the same flags + brew install step. The Intel Mac
tarball now also bundles docs/INSTALL-INTEL-MAC.md so binary consumers
get the `brew install onnxruntime` + ORT_DYLIB_PATH prereq out of the
box.
- docs/INSTALL-INTEL-MAC.md: new install guide covering the Homebrew
prereq, binary install, source build, troubleshooting, and the v2.1
ort-candle migration plan.
- README.md: replaces the "Intel Mac and Windows build from source only"
paragraph with the prebuilt Intel Mac install (brew + curl + env var)
and a link to the full guide. Platform table updated: Intel Mac back
on the "prebuilt" list.
Verified locally on aarch64-apple-darwin:
- `cargo check --release -p vestige-mcp` -> clean (default features)
- `cargo check --release -p vestige-mcp --no-default-features
--features ort-dynamic,vector-search` -> clean
Runtime path on Intel Mac (verified on CI):
brew install onnxruntime
export ORT_DYLIB_PATH=$(brew --prefix onnxruntime)/lib/libonnxruntime.dylib
vestige-mcp --version
Fixes#41. Long-term plan (v2.1): migrate to ort-candle pure-Rust backend
so no system ONNX Runtime dep is needed on any platform.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(ci): drop unused brew install + ORT_DYLIB_PATH from CI steps
Build is a cross-compile (macos-latest runner is Apple Silicon targeting
x86_64-apple-darwin) and ort-load-dynamic doesn't link libonnxruntime at
build time — only at runtime via dlopen. So the brew install step and
ORT_DYLIB_PATH export were ceremony without payload. Removed to cut CI
time. Runtime setup remains documented in docs/INSTALL-INTEL-MAC.md for
end users installing the tarball on their own Intel Mac.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ci: run release-build on PRs too — catch Intel Mac regressions pre-merge
Previously release-build was gated behind `github.ref == 'refs/heads/main'`,
so the Intel Mac, aarch64-apple-darwin, and Linux release targets were only
validated AFTER merge to main. If someone broke the Intel Mac cross-compile
by touching feature flags or Cargo dependencies, we'd only find out when
the release tag was cut and the job exploded on main. Extending the guard
to also fire on pull_request means regressions surface in the PR status
check instead of on a release branch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Same reconciliation as the prior commit — three files missed the first
pass because of a Read-before-Edit harness constraint. Bumps CONTRIBUTING
module table and both Windsurf + Xcode integration guides to the
asserted-in-server.rs tool count of 24.
Includes HN post with prepared FAQ, Reddit cross-posts (r/rust, r/ClaudeAI,
r/LocalLLaMA), MCP Dev Summit demo scripts (30s/3min/10min versions), and
technical blog post covering FSRS-6, PE Gating, HyDE, STC, and dreaming.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Discovered that Xcode's claudeai-mcp feature gate blocks custom MCP
servers from the global .claude config. Project-level .mcp.json files
bypass this gate entirely — this is now the documented method.
- Add scripts/xcode-setup.sh: auto-installs vestige-mcp and configures
.mcp.json for any Xcode project with checksum verification
- Rewrite docs/integrations/xcode.md with .mcp.json method, gate bypass
docs, and new troubleshooting for "Agent has been closed" error
- Add docs/blog/xcode-memory.md: launch blog post for Vestige on Xcode
- Add integration guides for Xcode 26.3, Cursor, VS Code, JetBrains, Windsurf
- First cognitive memory server with documented Xcode 26.3 MCP support
- Add npx @vestige/init — zero-config CLI that auto-detects IDEs and injects config
- Overhaul README: "The open-source cognitive engine for AI"
- Add "Why Not Just Use RAG?" comparison and cognitive science stack docs
- Update license badge to AGPL-3.0
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>
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>