fix(agent): semantic_search symbol index workspace-aware
SymbolIndex global sudah melacak workspace_path tapi SemanticSearch dan ListSymbols Cuma rebuild saat index kosong (is_empty). Akibat: setelah mengindeks workspace A, mencari di workspace B diam-diam mengembalikan simbol STALE dari A — menyesatkan coding agent (referensikan simbol yang tidak ada di repo aktif). Fix: - Tambah SymbolIndex::needs_rebuild(workspace) — true bila index kosong ATAU workspace diminta beda dari yang ter-cache. - Pakai di 2 call site (SemanticSearch::run, ListSymbols::run) menggantikan is_empty(), jadi pindah workspace otomatis trigger rebuild. - test: +1 (test_needs_rebuild_workspace_aware — verifikasi flip workspace memicu rebuild bolak-balik A -> B -> A). Catatan (bukan bug, dilaporkan): mutex SYMBOL_INDEX masih dipegang selama full rebuild di run() — bottleneck saat semantic_search dipanggil paralel; perbaikan butuh restrukturisasi double-checked rebuild, tak diubah di sini. Verifikasi: check/clippy -D warnings/fmt clean; test infra 63 (0 gagal).
This commit is contained in:
Generated
+11
-11
@@ -4862,7 +4862,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-api"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"argon2",
|
||||
@@ -4885,7 +4885,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-application"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@@ -4903,7 +4903,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-bootstrap"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -4920,7 +4920,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-daemon"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@@ -4944,7 +4944,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-domain"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@@ -4960,7 +4960,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-gateway"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -4987,7 +4987,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-grpc"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -5004,7 +5004,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-infrastructure"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"argon2",
|
||||
@@ -5052,7 +5052,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-tui"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
@@ -5078,7 +5078,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-web"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -5098,7 +5098,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zesdex-ws"
|
||||
version = "1.20.1"
|
||||
version = "1.20.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
|
||||
Reference in New Issue
Block a user