diff --git a/.cursor/mcp.json b/.cursor/mcp.json new file mode 100644 index 0000000000..fd90a87e23 --- /dev/null +++ b/.cursor/mcp.json @@ -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" + } + } + } +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f25bdc08e2..af5b3b4b8e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 @@ -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 diff --git a/src/mcp/tools/handlers/mod.rs b/src/mcp/tools/handlers/mod.rs index 4eb943ea69..b91b8656f9 100644 --- a/src/mcp/tools/handlers/mod.rs +++ b/src/mcp/tools/handlers/mod.rs @@ -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", diff --git a/tests/mcp_handler_test.rs b/tests/mcp_handler_test.rs index 8751e1df7b..d061176803 100644 --- a/tests/mcp_handler_test.rs +++ b/tests/mcp_handler_test.rs @@ -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();