feat: schema v2 migration, database performance, batch query methods

- Add provenance column on edges for tracking how edges were created
- Add project_metadata table for version/provenance tracking
- Make unresolved_refs file_path/language NOT NULL with defaults
- Add composite indexes for unresolved_refs and edges.provenance
- Update v2 migration to handle all new schema additions
- Record schema version on initialize to prevent re-migration
- Add dynamic prepared statement cache (getDynamicStmt) for varying SQL
- Add batch methods: getNodesByIds, getNodesByKinds, getFileHashMap, getFileSyncMap
- Add project metadata methods: getMetadata, setMetadata, getAllMetadata
- Optimize getStats to use single aggregate query
- Optimize getStaleFiles to use temporary table JOIN
- Add provenance parameter to getOutgoingEdges
- Add intent field to SearchOptions type
This commit is contained in:
Martin Oehlert
2026-02-10 11:31:05 +01:00
parent 4825661e02
commit 53beb1bd2f
5 changed files with 258 additions and 67 deletions
+6
View File
@@ -166,6 +166,9 @@ export interface Edge {
/** Column number where relationship occurs */
column?: number;
/** How this edge was created */
provenance?: 'tree-sitter' | 'scip' | 'heuristic';
}
/**
@@ -333,6 +336,9 @@ export interface SearchOptions {
/** Whether search is case-sensitive */
caseSensitive?: boolean;
/** Search intent for biasing results */
intent?: 'api' | 'general';
}
/**