3b25e3898f9ba2fc1c58b991ad95a8c0bbe98601
Sebelumnya SemanticSearch/ListSymbols/RebuildIndex menahan SYMBOL_INDEX Mutex selama full `rebuild` (walk seluruh workspace, bisa detikan) + selama search. Di main loop yang menjalankan read-only tools paralel, semantic_search/list_symbols lain jadi BLOCK selama rebuild. Refactor: - Global berubah Mutex<Option<SymbolIndex>> -> OnceLock<Mutex<HashMap< workspace, SymbolIndex>>> — index per-workspace, jadi pencarian workspace B tidak mungkin bocor simbol stale dari A (workspace-awareness kini struktural, bukan hanya via needs_rebuild). - ensure_symbol_index(workspace, force): rebuild dijalankan DI LUAR lock (mutex hanya dicek/insert/lookup singkat), lalu hasilnya di-swap-in di bawah short lock. Search/list/rebuild-report tak lagi memblock thread lain selama walk I/O. Per-workspace key menghilangkan race lintas-workspace dari skema swap tunggal. - Test +1 (test_ensure_symbol_index_per_workspace_isolation): verifikasi dua workspace punya index independen, rebuild A tidak menimpa B. Verifikasi: check/clippy -D warnings/fmt clean; test infra 64 (0 gagal).
Description
No description provided
3.6 MiB
Languages
Rust
99.4%
Nix
0.3%
JavaScript
0.1%