Commit Graph
100 Commits
Author SHA1 Message Date
Riz Ashraf 7dc0c329ad fix(core): remove all unwraps, fix unpolled futures, and fix search index memory leak on restart 2026-09-21 18:54:19 +01:00
Riz Ashraf ae0ea9ab22 feat(server): persist activity history on the server and expose it to the dashboard UI via /api/activity instead of relying on fragile localStorage 2026-09-21 18:01:21 +01:00
Riz Ashraf bf7bf48163 fix(server): gracefully ignore MCP notifications (e.g. notifications/roots/list_changed) instead of returning a Method Not Found error that causes JSON-RPC clients to drop connections 2026-09-21 17:47:48 +01:00
Riz Ashraf d3fce30ca5 perf(search): eliminate full struct clones when indexing documents into tantivy by building documents on the dispatch thread before crossing the spawn_blocking boundary 2026-09-21 17:20:01 +01:00
Riz Ashraf 58ad2e76a3 style(server): fix all clippy warnings including derivable traits, redundant locals, collapsible blocks and needless borrows 2026-09-21 17:08:57 +01:00
Riz Ashraf 4c4150a042 perf(tasks): refactor update and delete task handlers to eliminate string clones when mapping task relationships by relying on reference closures and index queues 2026-09-21 16:55:06 +01:00
Riz Ashraf 42d3638cf8 fix(server): remove rwlock unwraps to prevent panic on lock poison and optimize omni search to serialize inner loops without allocations 2026-09-21 16:49:21 +01:00
Riz Ashraf 1af21b3aec perf(search): eliminate full database cloning during tantivy index rebuilds by moving iteration into a synchronized blocking thread 2026-09-21 16:42:14 +01:00
Riz Ashraf 8934857635 perf(graph): eliminate heavy allocations by substituting KnowledgeGraph clones with BorrowedGraph for json serialization 2026-09-21 16:33:48 +01:00
Riz Ashraf 1d5e4bd00d perf(server): eliminate implicit full-collection clones by removing Store::read() in favor of read_with() 2026-09-21 16:25:57 +01:00
Riz Ashraf 84ad64156c docs(server): modify tool_def to extract rich descriptions from struct docstrings via schemars instead of using hardcoded generic names 2026-09-21 16:09:08 +01:00
Riz Ashraf 075bc50645 docs(nvim): enrich mcp tools/list schema description to explicitly enforce AST and autosave rules 2026-09-21 16:04:17 +01:00
Riz Ashraf 891bd481b9 feat(nvim): bake in strict interactive AST blocks for win-nvim to prevent headless deadlock 2026-09-21 15:59:49 +01:00
Riz Ashraf 1f40e6d32b fix(stub): resolve TCP socket leak on target server disconnect and hanging connection attempt 2026-09-21 15:47:33 +01:00
Riz Ashraf 8e10950fc0 fix(nvim): resolve concurrent msgid clashes and eliminate continuous buffer memory leak 2026-09-21 15:39:15 +01:00
Riz Ashraf f8d98a77fd perf: remove totally redundant and highly allocating .to_lowercase() calls from search endpoints 2026-09-21 15:33:35 +01:00
Riz Ashraf 9476bcd649 perf: completely eradicate large vector allocations and state locking double-clones in main, meta, env, workspaces, and notes modules 2026-09-21 15:22:44 +01:00
Riz Ashraf 6b37799cc5 perf: fix lifetime issues and optimize remaining string allocations in graph traversal endpoints 2026-09-21 13:47:09 +01:00
Riz Ashraf 3c31aeec1f perf: replace inefficient memory cloning vectors with fast zero-allocation read iterators 2026-09-21 12:51:26 +01:00
Riz Ashraf 5da422d23a fix: apply automatic clippy fixes across workspace 2026-09-21 11:41:55 +01:00
Riz Ashraf 73ab5037d8 fix(search): replace unsafe unwrap on mutex locks 2026-09-21 11:37:22 +01:00
Riz Ashraf 8afbf97b11 refactor: apply zero-unwrap policy and optimize locks in store.rs and handlers 2026-09-21 11:34:21 +01:00
Riz Ashraf 9f24e66d88 refactor: deduplicate simple list tool handlers via handle_list_with_namespace macro 2026-09-21 09:51:39 +01:00
Riz Ashraf d237f5c5ad perf: remove redundant clone of json args in every tool handler 2026-09-21 09:48:36 +01:00
Riz Ashraf dc59aa9238 perf: eliminate loop string allocations and proxy mem spikes 2026-09-21 09:40:37 +01:00
Riz Ashraf d5a05f8416 perf: fix store mem leak, batch DB flushes, and remove double-clones 2026-09-21 09:32:16 +01:00
Riz Ashraf 2c5953e4f5 perf: fix NVIM_CONN deadlock and unoptimized lock across await point 2026-09-21 09:25:22 +01:00
Riz Ashraf 5715625220 perf: eliminate tokio::sync::Mutex across async boundaries in stub and nvim-core 2026-09-21 08:32:13 +01:00
Riz Ashraf 573c9586fd fix: memory leaks and unoptimized websocket broadcasts 2026-09-21 08:22:25 +01:00
Riz Ashraf 9b349e6459 Optimize handlers to avoid deep clones of KnowledgeGraph, and fix database write concurrency issues 2026-09-21 06:53:32 +01:00
Riz Ashraf 7a48fa5d34 Fix unawaited Tokio spawn locks by moving macro clones and formatting allocations to blocking executor 2026-09-21 06:32:06 +01:00
Riz Ashraf e098c257c2 Optimize Store persistence by eliminating deep clone of internal lock, and optimize relation merging by using retain deduplication. 2026-09-21 06:22:05 +01:00
Riz Ashraf a9885a65d7 Optimize full graph rebuilds with batch indexing to prevent thread exhaustion, and fix adr/snippet search availability before restart 2026-09-21 05:56:58 +01:00
Riz Ashraf 84672a00b9 Fix task memory leak in nvim-core pending request cleanup loop 2026-09-21 05:51:38 +01:00
Riz Ashraf ed42f738f1 Optimize graph relation filtering and fix concurrent connection storms 2026-09-21 05:44:34 +01:00
Riz Ashraf cbd3d5801c Resolve blocking commit deadlock and clippy warnings 2026-09-21 05:05:45 +01:00
Riz Ashraf afc7cbdad5 Address compiler warnings and fix send_text_result macro 2026-09-21 04:45:36 +01:00
Riz Ashraf 2191ea5ce7 Fix memory leak in nvim-core by sweeping timed-out pending requests 2026-09-21 04:38:41 +01:00
Riz Ashraf 9ce5c84d9c Fix tokio blocking write in server startup error handler 2026-09-21 04:28:16 +01:00
Riz Ashraf 2ce4fa6720 Fix tokio blocking deadlock in search indexing by offloading add_document to spawn_blocking 2026-09-21 04:26:11 +01:00
Riz Ashraf 9870626045 Fix Neovim connection deadlock by dropping NVIM_CONN lock across await boundary 2026-09-21 04:04:32 +01:00
Riz Ashraf b98f95d9d8 perf(server): Resolve tokio executor starvation and optimize broadcast loops
- Offloaded the blocking idx.commit() inside index_committer_worker to 	okio::task::spawn_blocking to prevent the tokio async thread from being starved by blocking I/O.
- Removed expensive full HashMap .clone() operations during UI client websocket broadcasts in both handle_socket and
vim_telemetry_handler, filtering and collecting only the Sender handles.
- Migrated blocking std::fs::write calls across the WSL 9P boundary in
vim_telemetry_handler over to asynchronous 	okio::fs::write().await to prevent severe async thread blockages on native file I/O delays.
2026-09-21 03:33:57 +01:00
Riz Ashraf b9e44e1fa3 fix(server): Fix memory leak in handle_socket on abrupt disconnects
- Used a SessionCleanup Drop guard (RAII pattern) to guarantee that the websocket session is evicted from the global clients map and background read/write tasks are forcibly aborted even when Axum terminates the handler mid-execution due to a TCP connection loss.
2026-09-20 23:08:40 +01:00
Riz Ashraf acf5ea8ebe fix(stub): Prevent infinite reconnect loop causing port exhaustion
- Added a break statement when send_task exits (STDIN closed).
- Increased reconnect delay from 50ms to 1 second to prevent ephemeral port exhaustion when the server repeatedly drops connections.
2026-09-20 23:02:55 +01:00
Riz Ashraf cb8447224f chore: persist activity feed history and improve build versioning 2026-09-20 06:41:12 +01:00
Riz Ashraf e72af4f877 chore: Remove unused imports and dead code causing compiler warnings 2026-09-19 07:58:42 +01:00
Riz Ashraf cddd97dc9f fix(server): Add missing descriptions to MCP tools in list handler
- Added missing tool descriptions to generate_standup_report, get_environment_details, and list_context_workspaces so the LLM correctly parses them during MCP handshake.
2026-09-19 07:53:51 +01:00
Riz Ashraf 2a25f17a32 refactor(server): Resolve bottlenecks and duplications
- Removed heavy Tantivy index rebuild loop that ran every 5 seconds and rewrote entire graph to disk
- Converted polling worker to lightweight IndexWriter committer
- Fixed 67+ instances of unnecessary clone and string parsing overhead in tool return results
- Deduplicated state graph modification methods
2026-09-19 07:48:51 +01:00
Riz Ashraf 4fe6ed7791 test: Fix broken mcp-stdio module imports in unit tests 2026-09-19 07:21:37 +01:00
Riz Ashraf 368f28e593 style: Optimize stub proxy logging and cleanup nvim-core JSON-RPC response boilerplate 2026-09-19 07:17:57 +01:00
Riz Ashraf 6011da95f6 perf: Replace stateless Neovim sockets with a persistent multiplexed connection pool 2026-09-19 07:12:08 +01:00
Riz Ashraf 9009f127a9 refactor: Extract shared MCP Stdio NDJSON parsing loop into mcp-stdio library 2026-09-19 07:06:14 +01:00
Riz Ashraf f8c0d58415 perf: Remove blocking std::fs IO from nvim socket locator 2026-09-19 07:01:34 +01:00
Riz Ashraf c9ba5e79dd feat: Make stub proxy target derive from MCP_PORT env var 2026-09-19 06:15:35 +01:00
Riz Ashraf ce17ffcf42 feat: Require UUID token authorization for /shutdown endpoint 2026-09-19 06:02:02 +01:00
Riz Ashraf 53dce890ec Reapply "docs: Remove graceful shutdown instructions"
This reverts commit 1f530fa689.
2026-09-19 05:51:37 +01:00
Riz Ashraf 1f530fa689 Revert "docs: Remove graceful shutdown instructions"
This reverts commit a996e7152b.
2026-09-19 05:49:51 +01:00
Riz Ashraf a996e7152b docs: Remove graceful shutdown instructions 2026-09-19 05:48:20 +01:00
Riz Ashraf 28761ceb41 fix: Replace silent panics on bind and index creation with daemon_error.log writes 2026-09-19 05:20:11 +01:00
Riz Ashraf 2fdb03c302 feat: Add telemetry, timing, and detailed logging across server, stub, and nvim-core 2026-09-19 04:13:07 +01:00
Riz Ashraf 26cf6cee80 test: boost coverage to 76% and optimize Store inspection 2026-09-18 09:49:19 +01:00
Riz Ashraf 81aac7245b feat: version string formatting yy.mm.dd.hhmmss, app icon, and test fixes 2026-09-18 02:05:08 +01:00
Riz Ashraf 1752753fcc chore: rustfmt, clippy lints and code tidying 2026-09-17 15:35:41 +01:00
Riz Ashraf 3716c3e698 refactor(mcp): strip sse fallback architecture in favor of pure websockets and fix nvim NDJSON bug 2026-09-17 15:26:22 +01:00
Riz Ashraf 0e29b12ac8 refactor: deduplicate arg parsing in handlers and remove redundant python scripts
Created a parse_tool! macro that eliminated ~450 lines of repetitive error-handling boilerplate across 54 MCP tool definitions in server/src/handlers.rs.

Purged 30+ stale, redundant python patching scripts and legacy mcp_client.py test runners that were polluting the workspace root and server/src directories.
2026-09-14 04:57:31 +01:00
Riz Ashraf ee4157d07b docs: complete final doc sweep for Dashboard UI REST APIs and query_graph_path 2026-09-14 04:27:00 +01:00
Riz Ashraf 04a9a4963c docs: document git2 automated context binding in design and instructions 2026-09-14 04:17:33 +01:00
Riz Ashraf c88d312c8c docs: align design docs with redb, tantivy, and native rust e2e testing architectures 2026-09-14 04:13:51 +01:00
Riz Ashraf 1da413568e docs: update architecture and design docs with proxy reconnect and deployment strategies 2026-09-14 04:07:52 +01:00
Riz Ashraf a9a861abe1 test: Revert broken env! macro for bin resolution 2026-09-13 19:02:46 +01:00
Riz Ashraf a87e37cb53 test: Fix test binary resolution for llvm-cov 2026-09-13 19:01:06 +01:00
Riz Ashraf cf5b40ceb6 chore: Ignore coverage binaries 2026-09-13 18:58:19 +01:00
Riz Ashraf e46099826e UI: Remove raw html tags from graph tooltip 2026-09-13 18:58:14 +01:00
Riz Ashraf 2bdafa6cc5 UI: Add Sticky Notes tab and api 2026-09-13 18:47:02 +01:00
Riz Ashraf 34cf8fc8ca UI: Add tabs to dashboard and fix mcp capability regression 2026-09-13 18:43:29 +01:00
Riz Ashraf d71b1e6e35 feat: Replace python tests with native E2E test suite and fix capabilities schema
- Added native E2E test suite in stub to validate server<->stub<->nvim IPC
- Added win-nvim integration tests
- Fixed empty capabilities schema in initialize response in server and win-nvim
- Refactored server to accept dynamic MCP_PORT for test isolation
- Made server exit gracefully on port 3000 collision
2026-09-13 18:03:27 +01:00
Riz Ashraf f2582b58be Fix MCP hangs and add logging 2026-09-13 11:10:35 +01:00
Riz Ashraf 75748f0e21 docs: Document Last Focused Wins telemetry architecture for Neovim 2026-09-12 23:18:11 +01:00
Riz Ashraf 86fab8abb1 feat: Merge V2 WebSocket telemetry push into existing gemini-integration.lua 2026-09-12 23:15:04 +01:00
Riz Ashraf 4d69f5e771 feat: Add telemetry endpoint for tracking active Neovim session via FocusGained 2026-09-12 23:08:56 +01:00
Riz Ashraf 491db39447 chore: Remove unused Value import in nvim plugins 2026-09-12 22:27:05 +01:00
Riz Ashraf 8c25c770aa docs: Document Dual Transport Architecture (SSE and WS) in instructions 2026-09-12 22:25:20 +01:00
Riz Ashraf 6872957195 docs: Prune redundant JSON schemas from instructions in favor of strong static typing 2026-09-12 22:22:09 +01:00
Riz Ashraf 2d3aaed289 refactor: Enforce strict typed JsonSchema for all MCP tools 2026-09-12 22:20:01 +01:00
Riz Ashraf 686fea683d perf: completely remove disk I/O from memory access paths, optimize Tantivy indexing, and fix MemoryIndex commits 2026-09-12 20:41:30 +01:00
Riz Ashraf a5011048b1 refactor: extract inline loops, optimize GC scheduling, and remove redundancies 2026-09-12 20:31:05 +01:00
Riz Ashraf 0723811686 refactor: resolve CLI redundancy and overlapping transport state bounds 2026-09-12 20:27:13 +01:00
Riz Ashraf 04b9388074 feat: restore dual transport (websockets and sse) 2026-09-12 20:22:51 +01:00
Riz Ashraf 8d34634506 docs: define dual websocket and sse transport support 2026-09-12 20:14:41 +01:00
Riz Ashraf 6dde1cc3a3 refactor: physically decouple server and stub architectures 2026-09-12 20:11:46 +01:00
Riz Ashraf 0f4be375c2 docs: formalize strict server/client separation in architecture 2026-09-12 20:07:51 +01:00
Riz Ashraf db8fd367f6 feat(dashboard): huge feature upgrade - native dark mode, interactive graph inspector panel, type filtering and legend, actionable kanban completion via new POST endpoint, and fuzzy search highlighting 2026-09-12 11:39:47 +01:00
Riz Ashraf 4d4fc32616 fix(dashboard): remove fixed min-height constraints causing flexbox overflow on Kanban columns 2026-09-12 11:32:11 +01:00
Riz Ashraf bd4622bbb5 refactor(dashboard): overhaul UI styling, typography, layout and fix JS string syntax error 2026-09-12 11:25:44 +01:00
Riz Ashraf 5d37af1d74 fix(dashboard): use vis.DataSet diffing to maintain zoom and physics simulation, and fix broken right-column flex HTML markup 2026-09-12 11:11:52 +01:00
Riz Ashraf 981a49327c feat(dashboard): add zoom and fit navigation to graph and fix kanban flex layout overflow 2026-09-12 11:04:28 +01:00
Riz Ashraf 06dc67e9d0 fix(dashboard): fix network graph collapse by setting explicit min-height and add error visibility 2026-09-12 09:45:15 +01:00
Riz Ashraf cba02a43b7 fix(dashboard): fix fatal JS syntax error in setupSSE and snake_case relationType mapping 2026-09-12 09:37:19 +01:00
Riz Ashraf 44800d4ef2 feat(server): change semantic versioning to dynamic build date (yyyy.mm.dd) 2026-09-12 09:29:46 +01:00
Riz Ashraf 1f050b60b6 fix(server): fix missing /api/graph and task title mapping in dashboard 2026-09-12 09:25:15 +01:00