Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"mcpServers": {
"tokensave": {
"command": "/home/zack/projects/tokensave/.worktrees/holographic-memory/scripts/tokensave-dev-mcp.sh",
"env": {
"TOKENSAVE_DEV_PROJECT_ROOT": "/home/zack/projects/tokensave/.worktrees/holographic-memory"
}
}
}
}
26 changes: 6 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [master]
branches: [master, feature/holographic-memory]
pull_request:
branches: [master]
branches: [master, feature/holographic-memory]

permissions:
contents: read
Expand All @@ -15,35 +15,21 @@ env:
jobs:
test:
name: Test ${{ matrix.name }}
runs-on: ${{ matrix.runner }}
runs-on: ${{ fromJSON(matrix.runner) }}
strategy:
fail-fast: false
matrix:
include:
- name: Linux
runner: ubuntu-latest
runner: '"ubuntu-latest"'
- name: macOS
runner: macos-14
runner: '"macos-14"'
- name: Windows
runner: windows-latest
runner: '"windows-latest"'

steps:
- uses: actions/checkout@v4

# The Linux runner ships with ~10 GB free, which our 713 MB cache restore
# plus the cargo target dir (34 tree-sitter parsers compiled in) can
# exceed. See v4.5.1 CI flake: "No space left on device" mid-test.
- name: Free disk space (Linux only)
if: matrix.name == 'Linux'
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: false
swap-storage: false

- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2
Expand Down
3 changes: 3 additions & 0 deletions src/mcp/tools/handlers/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,10 @@ mod tests {
"tokensave_str_replace",
"tokensave_multi_str_replace",
"tokensave_insert_at",
"tokensave_replace_symbol",
"tokensave_insert_at_symbol",
"tokensave_ast_grep_rewrite",
"tokensave_run_affected_tests",
"tokensave_session_start",
"tokensave_session_end",
"tokensave_record_decision",
Expand Down
6 changes: 6 additions & 0 deletions tests/mcp_handler_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4616,6 +4616,12 @@ async fn mcp_server_owns_watcher_and_refreshes_token_map_on_change() {
cg.sync().await.unwrap();

let server = tokensave::mcp::McpServer::new(cg, None).await;
assert!(
server
.wait_for_startup_catch_up(std::time::Duration::from_secs(2))
.await,
"startup catch-up sync should finish before mutating the project"
);

let initial_count = server.file_token_map_snapshot().len();

Expand Down
Loading