vestige/docs/integrations/windsurf.md
Sam Valladares 04781a95e2 feat: v2.0.4 "Deep Reference" — cognitive reasoning engine + 10 bug fixes
New features:
- deep_reference tool (#22): 8-stage cognitive reasoning pipeline with FSRS-6
  trust scoring, intent classification (FactCheck/Timeline/RootCause/Comparison/
  Synthesis), spreading activation expansion, temporal supersession, trust-weighted
  contradiction analysis, relation assessment, dream insight integration, and
  algorithmic reasoning chain generation — all without calling an LLM
- cross_reference (#23): backward-compatible alias for deep_reference
- retrieval_mode parameter on search (precise/balanced/exhaustive)
- get_batch action on memory tool (up to 20 IDs per call)
- Token budget raised from 10K to 100K on search + session_context
- Dates (createdAt/updatedAt) on all search results and session_context lines

Bug fixes (GitHub Issue #25 — all 10 resolved):
- state_transitions empty: wired record_memory_access into strengthen_batch
- chain/bridges no storage fallback: added with edge deduplication
- knowledge_edges dead schema: documented as deprecated
- insights not persisted from dream: wired save_insight after generation
- find_duplicates threshold dropped: serde alias fix
- search min_retention ignored: serde aliases for snake_case params
- intention time triggers null: removed dead trigger_at embedding
- changelog missing dreams: added get_dream_history + event integration
- phantom Related IDs: clarified message text
- fsrs_cards empty: documented as harmless dead schema

Security hardening:
- HTTP transport CORS: permissive() → localhost-only
- Auth token panic guard: &token[..8] → safe min(8) slice
- UTF-8 boundary fix: floor_char_boundary on content truncation
- All unwrap() removed from HTTP transport (unwrap_or_else fallback)
- Dream memory_count capped at 500 (prevents O(N²) hang)
- Dormant state threshold aligned (0.3 → 0.4)

Stats: 23 tools, 758 tests, 0 failures, 0 warnings, 0 unwraps in production

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 16:15:26 -05:00

156 lines
3 KiB
Markdown

# Windsurf
> Give Cascade a brain that remembers between sessions.
Windsurf has native MCP support through its Cascade AI. Add Vestige and Cascade remembers your architecture, preferences, and past decisions across every session.
---
## Setup
### 1. Open the config file
**Option A — Via UI:**
1. Open **Windsurf > Settings > Advanced Settings**
2. Scroll to the **"Cascade"** section
3. Click **"view the raw JSON config file"**
**Option B — Direct path:**
| Platform | Path |
|----------|------|
| macOS / Linux | `~/.codeium/windsurf/mcp_config.json` |
| Windows | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` |
```bash
# macOS / Linux
open -e ~/.codeium/windsurf/mcp_config.json
```
### 2. Add Vestige
```json
{
"mcpServers": {
"vestige": {
"command": "/usr/local/bin/vestige-mcp",
"args": [],
"env": {}
}
}
}
```
**With environment variable expansion** (Windsurf-specific feature):
```json
{
"mcpServers": {
"vestige": {
"command": "${env:HOME}/.cargo/bin/vestige-mcp",
"args": [],
"env": {}
}
}
}
```
**Windows:**
```json
{
"mcpServers": {
"vestige": {
"command": "C:\\Users\\you\\.cargo\\bin\\vestige-mcp.exe",
"args": [],
"env": {}
}
}
}
```
### 3. Restart Windsurf
Restart the IDE or refresh the Cascade panel.
### 4. Verify
Open Cascade and ask:
> "What MCP tools do you have?"
You should see Vestige's tools listed.
---
## First Use
In Cascade:
> "Remember that this project uses Next.js 15 with the App Router and Drizzle ORM"
Start a **new Cascade session**, then:
> "What framework does this project use?"
It remembers.
---
## Project-Specific Memory
```json
{
"mcpServers": {
"vestige": {
"command": "/usr/local/bin/vestige-mcp",
"args": ["--data-dir", "${env:HOME}/projects/my-app/.vestige"],
"env": {}
}
}
}
```
---
## Important: Tool Limit
Windsurf has a **hard cap of 100 tools** across all MCP servers. Vestige uses 23 tools, leaving plenty of room for other servers.
---
## Troubleshooting
<details>
<summary>Vestige not appearing in Cascade</summary>
1. Verify the config file is valid JSON:
```bash
cat ~/.codeium/windsurf/mcp_config.json | python3 -m json.tool
```
2. Ensure you're using absolute paths (or `${env:HOME}` expansion).
3. Check the Cascade panel for error messages.
4. Fully restart Windsurf.
</details>
<details>
<summary>Tool limit exceeded</summary>
If you have many MCP servers and exceed 100 total tools, Cascade will ignore excess servers. Remove unused servers or use Vestige's unified tools (each handles multiple operations).
</details>
---
## Also Works With
| IDE | Guide |
|-----|-------|
| Xcode 26.3 | [Setup](./xcode.md) |
| Cursor | [Setup](./cursor.md) |
| VS Code (Copilot) | [Setup](./vscode.md) |
| Codex | [Setup](./codex.md) |
| JetBrains | [Setup](./jetbrains.md) |
| Claude Code | [Setup](../CONFIGURATION.md#claude-code-one-liner) |
| Claude Desktop | [Setup](../CONFIGURATION.md#claude-desktop-macos) |
Your AI remembers everything, everywhere.