3 months ago
17cf60e- Rewrite buildGraphForWorkspace(workspaceId, rootPath) to parse all document kinds (TS/JS via OxcParser, Python/Go/Rust via native or parseDocument fallback, Markdown/config via parseDocument) instead of skipping TS/JS - Fix waitForFts to accept workspaceId instead of deriving path.basename - Replace _graphBuiltWorkspaces Set with race-safe graphBuilds Map<string, Promise<void>> for concurrent-call deduplication - Add clearGraphArtifacts() to WorkspaceRepository for graph-only reset - Add invalidateGraphForWorkspace() called on full mode, deleted documents, and changed files during indexing - Set symbol node refId to matching chunk ID via JSON.parse(metadata).symbolName instead of pointing at document ID - Add import edge resolution via createWorkspaceFileResolver - Fix OxcParser extractSymbols to handle ExportNamedDeclaration before getNodeId check (was skipping all exported declarations) - Bound large OxcParser symbol chunks via boundChunks in parseInline - Add better-sqlite3 fallback to database-loader for vitest/node compatibility - Fix getWorkspaceDb cache return value (was returning .db property of drizzle instance instead of the instance itself) - Update MCP callers to pass w.id and w.rootPath to buildGraphForWorkspace - Add 7 new graph tests: TS nodes/chunks, imports edge, same-basename isolation, concurrent builds, stale edge invalidation, waitForFts
Parent241b600