@optave/codegraph 3.11.0 → 3.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +38 -31
  2. package/dist/ast-analysis/engine.d.ts.map +1 -1
  3. package/dist/ast-analysis/engine.js +91 -60
  4. package/dist/ast-analysis/engine.js.map +1 -1
  5. package/dist/ast-analysis/visitor-utils.d.ts +3 -0
  6. package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
  7. package/dist/ast-analysis/visitor-utils.js +83 -49
  8. package/dist/ast-analysis/visitor-utils.js.map +1 -1
  9. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
  10. package/dist/ast-analysis/visitors/ast-store-visitor.js +78 -62
  11. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  12. package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
  13. package/dist/ast-analysis/visitors/dataflow-visitor.js +61 -42
  14. package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
  15. package/dist/cli/commands/embed.d.ts.map +1 -1
  16. package/dist/cli/commands/embed.js +49 -4
  17. package/dist/cli/commands/embed.js.map +1 -1
  18. package/dist/domain/analysis/dependencies.d.ts.map +1 -1
  19. package/dist/domain/analysis/dependencies.js +106 -80
  20. package/dist/domain/analysis/dependencies.js.map +1 -1
  21. package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
  22. package/dist/domain/analysis/fn-impact.js +77 -52
  23. package/dist/domain/analysis/fn-impact.js.map +1 -1
  24. package/dist/domain/analysis/module-map.d.ts.map +1 -1
  25. package/dist/domain/analysis/module-map.js +132 -121
  26. package/dist/domain/analysis/module-map.js.map +1 -1
  27. package/dist/domain/graph/builder/helpers.d.ts +4 -4
  28. package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
  29. package/dist/domain/graph/builder/helpers.js +47 -33
  30. package/dist/domain/graph/builder/helpers.js.map +1 -1
  31. package/dist/domain/graph/builder/incremental.d.ts +6 -0
  32. package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
  33. package/dist/domain/graph/builder/incremental.js +142 -76
  34. package/dist/domain/graph/builder/incremental.js.map +1 -1
  35. package/dist/domain/graph/builder/pipeline.d.ts +1 -44
  36. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  37. package/dist/domain/graph/builder/pipeline.js +10 -766
  38. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  39. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  40. package/dist/domain/graph/builder/stages/build-edges.js +133 -96
  41. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  42. package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
  43. package/dist/domain/graph/builder/stages/build-structure.js +82 -65
  44. package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
  45. package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
  46. package/dist/domain/graph/builder/stages/detect-changes.js +84 -56
  47. package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
  48. package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
  49. package/dist/domain/graph/builder/stages/finalize.js +60 -51
  50. package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
  51. package/dist/domain/graph/builder/stages/insert-nodes.d.ts +8 -6
  52. package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
  53. package/dist/domain/graph/builder/stages/insert-nodes.js +107 -122
  54. package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
  55. package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts +14 -0
  56. package/dist/domain/graph/builder/stages/native-db-lifecycle.d.ts.map +1 -0
  57. package/dist/domain/graph/builder/stages/native-db-lifecycle.js +77 -0
  58. package/dist/domain/graph/builder/stages/native-db-lifecycle.js.map +1 -0
  59. package/dist/domain/graph/builder/stages/native-orchestrator.d.ts +62 -0
  60. package/dist/domain/graph/builder/stages/native-orchestrator.d.ts.map +1 -0
  61. package/dist/domain/graph/builder/stages/native-orchestrator.js +747 -0
  62. package/dist/domain/graph/builder/stages/native-orchestrator.js.map +1 -0
  63. package/dist/domain/graph/cycles.d.ts +6 -4
  64. package/dist/domain/graph/cycles.d.ts.map +1 -1
  65. package/dist/domain/graph/cycles.js +50 -55
  66. package/dist/domain/graph/cycles.js.map +1 -1
  67. package/dist/domain/graph/journal.d.ts.map +1 -1
  68. package/dist/domain/graph/journal.js +89 -70
  69. package/dist/domain/graph/journal.js.map +1 -1
  70. package/dist/domain/graph/watcher.d.ts.map +1 -1
  71. package/dist/domain/graph/watcher.js +5 -2
  72. package/dist/domain/graph/watcher.js.map +1 -1
  73. package/dist/domain/parser.d.ts +12 -23
  74. package/dist/domain/parser.d.ts.map +1 -1
  75. package/dist/domain/parser.js +126 -79
  76. package/dist/domain/parser.js.map +1 -1
  77. package/dist/domain/search/generator.d.ts +3 -1
  78. package/dist/domain/search/generator.d.ts.map +1 -1
  79. package/dist/domain/search/generator.js +68 -45
  80. package/dist/domain/search/generator.js.map +1 -1
  81. package/dist/domain/search/models.d.ts +2 -0
  82. package/dist/domain/search/models.d.ts.map +1 -1
  83. package/dist/domain/search/models.js +37 -3
  84. package/dist/domain/search/models.js.map +1 -1
  85. package/dist/domain/search/search/hybrid.d.ts.map +1 -1
  86. package/dist/domain/search/search/hybrid.js +49 -40
  87. package/dist/domain/search/search/hybrid.js.map +1 -1
  88. package/dist/domain/search/search/semantic.d.ts.map +1 -1
  89. package/dist/domain/search/search/semantic.js +69 -49
  90. package/dist/domain/search/search/semantic.js.map +1 -1
  91. package/dist/domain/wasm-worker-entry.js +201 -136
  92. package/dist/domain/wasm-worker-entry.js.map +1 -1
  93. package/dist/extractors/elixir.js +95 -71
  94. package/dist/extractors/elixir.js.map +1 -1
  95. package/dist/extractors/gleam.d.ts.map +1 -1
  96. package/dist/extractors/gleam.js +23 -31
  97. package/dist/extractors/gleam.js.map +1 -1
  98. package/dist/extractors/helpers.d.ts +79 -1
  99. package/dist/extractors/helpers.d.ts.map +1 -1
  100. package/dist/extractors/helpers.js +137 -0
  101. package/dist/extractors/helpers.js.map +1 -1
  102. package/dist/extractors/java.d.ts.map +1 -1
  103. package/dist/extractors/java.js +37 -49
  104. package/dist/extractors/java.js.map +1 -1
  105. package/dist/extractors/javascript.d.ts.map +1 -1
  106. package/dist/extractors/javascript.js +44 -44
  107. package/dist/extractors/javascript.js.map +1 -1
  108. package/dist/extractors/julia.js +27 -34
  109. package/dist/extractors/julia.js.map +1 -1
  110. package/dist/extractors/r.d.ts.map +1 -1
  111. package/dist/extractors/r.js +33 -58
  112. package/dist/extractors/r.js.map +1 -1
  113. package/dist/extractors/solidity.d.ts.map +1 -1
  114. package/dist/extractors/solidity.js +38 -61
  115. package/dist/extractors/solidity.js.map +1 -1
  116. package/dist/features/boundaries.d.ts.map +1 -1
  117. package/dist/features/boundaries.js +49 -39
  118. package/dist/features/boundaries.js.map +1 -1
  119. package/dist/features/cfg.d.ts.map +1 -1
  120. package/dist/features/cfg.js +90 -63
  121. package/dist/features/cfg.js.map +1 -1
  122. package/dist/features/check.d.ts.map +1 -1
  123. package/dist/features/check.js +43 -34
  124. package/dist/features/check.js.map +1 -1
  125. package/dist/features/cochange.d.ts.map +1 -1
  126. package/dist/features/cochange.js +68 -56
  127. package/dist/features/cochange.js.map +1 -1
  128. package/dist/features/complexity.d.ts.map +1 -1
  129. package/dist/features/complexity.js +105 -75
  130. package/dist/features/complexity.js.map +1 -1
  131. package/dist/features/dataflow.d.ts.map +1 -1
  132. package/dist/features/dataflow.js +37 -29
  133. package/dist/features/dataflow.js.map +1 -1
  134. package/dist/features/flow.d.ts.map +1 -1
  135. package/dist/features/flow.js +31 -22
  136. package/dist/features/flow.js.map +1 -1
  137. package/dist/features/graph-enrichment.d.ts.map +1 -1
  138. package/dist/features/graph-enrichment.js +77 -70
  139. package/dist/features/graph-enrichment.js.map +1 -1
  140. package/dist/features/owners.d.ts +17 -26
  141. package/dist/features/owners.d.ts.map +1 -1
  142. package/dist/features/owners.js +120 -109
  143. package/dist/features/owners.js.map +1 -1
  144. package/dist/features/sequence.d.ts.map +1 -1
  145. package/dist/features/sequence.js +59 -54
  146. package/dist/features/sequence.js.map +1 -1
  147. package/dist/features/structure-query.d.ts.map +1 -1
  148. package/dist/features/structure-query.js +60 -60
  149. package/dist/features/structure-query.js.map +1 -1
  150. package/dist/features/structure.js +28 -36
  151. package/dist/features/structure.js.map +1 -1
  152. package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
  153. package/dist/graph/algorithms/leiden/optimiser.js +100 -69
  154. package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
  155. package/dist/graph/classifiers/roles.d.ts.map +1 -1
  156. package/dist/graph/classifiers/roles.js +63 -59
  157. package/dist/graph/classifiers/roles.js.map +1 -1
  158. package/dist/infrastructure/config.d.ts +1 -1
  159. package/dist/infrastructure/config.d.ts.map +1 -1
  160. package/dist/infrastructure/config.js +1 -1
  161. package/dist/infrastructure/config.js.map +1 -1
  162. package/dist/presentation/cfg.d.ts.map +1 -1
  163. package/dist/presentation/cfg.js +44 -29
  164. package/dist/presentation/cfg.js.map +1 -1
  165. package/dist/presentation/flow.d.ts.map +1 -1
  166. package/dist/presentation/flow.js +58 -38
  167. package/dist/presentation/flow.js.map +1 -1
  168. package/dist/types.d.ts +1 -1
  169. package/dist/types.d.ts.map +1 -1
  170. package/package.json +7 -7
  171. package/src/ast-analysis/engine.ts +145 -61
  172. package/src/ast-analysis/visitor-utils.ts +86 -46
  173. package/src/ast-analysis/visitors/ast-store-visitor.ts +104 -69
  174. package/src/ast-analysis/visitors/dataflow-visitor.ts +86 -47
  175. package/src/cli/commands/embed.ts +54 -4
  176. package/src/domain/analysis/dependencies.ts +166 -85
  177. package/src/domain/analysis/fn-impact.ts +120 -50
  178. package/src/domain/analysis/module-map.ts +175 -140
  179. package/src/domain/graph/builder/helpers.ts +85 -76
  180. package/src/domain/graph/builder/incremental.ts +217 -90
  181. package/src/domain/graph/builder/pipeline.ts +19 -957
  182. package/src/domain/graph/builder/stages/build-edges.ts +198 -140
  183. package/src/domain/graph/builder/stages/build-structure.ts +115 -82
  184. package/src/domain/graph/builder/stages/detect-changes.ts +107 -64
  185. package/src/domain/graph/builder/stages/finalize.ts +72 -70
  186. package/src/domain/graph/builder/stages/insert-nodes.ts +154 -120
  187. package/src/domain/graph/builder/stages/native-db-lifecycle.ts +74 -0
  188. package/src/domain/graph/builder/stages/native-orchestrator.ts +942 -0
  189. package/src/domain/graph/cycles.ts +51 -49
  190. package/src/domain/graph/journal.ts +84 -69
  191. package/src/domain/graph/watcher.ts +8 -2
  192. package/src/domain/parser.ts +143 -66
  193. package/src/domain/search/generator.ts +132 -74
  194. package/src/domain/search/models.ts +39 -3
  195. package/src/domain/search/search/hybrid.ts +53 -42
  196. package/src/domain/search/search/semantic.ts +105 -65
  197. package/src/domain/wasm-worker-entry.ts +235 -152
  198. package/src/extractors/elixir.ts +91 -64
  199. package/src/extractors/gleam.ts +33 -37
  200. package/src/extractors/helpers.ts +205 -1
  201. package/src/extractors/java.ts +42 -45
  202. package/src/extractors/javascript.ts +44 -43
  203. package/src/extractors/julia.ts +28 -35
  204. package/src/extractors/r.ts +38 -56
  205. package/src/extractors/solidity.ts +43 -71
  206. package/src/features/boundaries.ts +64 -46
  207. package/src/features/cfg.ts +145 -74
  208. package/src/features/check.ts +60 -43
  209. package/src/features/cochange.ts +95 -72
  210. package/src/features/complexity.ts +134 -79
  211. package/src/features/dataflow.ts +57 -34
  212. package/src/features/flow.ts +48 -24
  213. package/src/features/graph-enrichment.ts +105 -70
  214. package/src/features/owners.ts +186 -146
  215. package/src/features/sequence.ts +99 -69
  216. package/src/features/structure-query.ts +94 -79
  217. package/src/features/structure.ts +56 -56
  218. package/src/graph/algorithms/leiden/optimiser.ts +142 -87
  219. package/src/graph/classifiers/roles.ts +64 -54
  220. package/src/infrastructure/config.ts +1 -1
  221. package/src/presentation/cfg.ts +48 -32
  222. package/src/presentation/flow.ts +100 -52
  223. package/src/types.ts +1 -1
@@ -116,61 +116,56 @@ function persistBuildMetadata(ctx, nodeCount, actualEdgeCount, buildNow) {
116
116
  warn(`Failed to write build metadata: ${err.message}`);
117
117
  }
118
118
  }
119
- /**
120
- * Run advisory checks on full builds: orphaned embeddings, stale embeddings,
121
- * and unused exports. Informational only does not affect correctness.
122
- */
123
- function runAdvisoryChecks(ctx, hasEmbeddings, buildNow) {
124
- // Batched native path: single napi call for all 3 advisory checks
125
- if (ctx.engineName === 'native' && ctx.nativeDb?.runAdvisoryChecks) {
126
- const result = ctx.nativeDb.runAdvisoryChecks(hasEmbeddings);
127
- if (result.orphanedEmbeddings > 0) {
128
- warn(`${result.orphanedEmbeddings} embeddings are orphaned (nodes changed). Run "codegraph embed" to refresh.`);
129
- }
130
- if (result.embedBuiltAt) {
131
- const embedTime = new Date(result.embedBuiltAt).getTime();
132
- if (!Number.isNaN(embedTime) && embedTime < buildNow.getTime()) {
133
- warn('Embeddings were built before the last graph rebuild. Run "codegraph embed" to update.');
134
- }
135
- }
136
- if (result.unusedExports > 0) {
137
- warn(`${result.unusedExports} exported symbol${result.unusedExports > 1 ? 's have' : ' has'} zero cross-file consumers. Run "codegraph exports <file> --unused" to inspect.`);
138
- }
139
- return;
119
+ /** Format the "X exports have zero consumers" warning, with correct plural agreement. */
120
+ function unusedExportsMessage(count) {
121
+ return `${count} exported symbol${count > 1 ? 's have' : ' has'} zero cross-file consumers. Run "codegraph exports <file> --unused" to inspect.`;
122
+ }
123
+ /** Run all three advisory checks via the batched native FFI. */
124
+ function runAdvisoryChecksNative(ctx, hasEmbeddings, buildNow) {
125
+ const result = ctx.nativeDb.runAdvisoryChecks(hasEmbeddings);
126
+ if (result.orphanedEmbeddings > 0) {
127
+ warn(`${result.orphanedEmbeddings} embeddings are orphaned (nodes changed). Run "codegraph embed" to refresh.`);
140
128
  }
141
- const { db } = ctx;
142
- // Orphaned embeddings warning
143
- if (hasEmbeddings) {
144
- try {
145
- const orphaned = db
146
- .prepare('SELECT COUNT(*) as c FROM embeddings WHERE node_id NOT IN (SELECT id FROM nodes)')
147
- .get().c;
148
- if (orphaned > 0) {
149
- warn(`${orphaned} embeddings are orphaned (nodes changed). Run "codegraph embed" to refresh.`);
150
- }
151
- }
152
- catch {
153
- /* ignore - embeddings table may have been dropped */
129
+ if (result.embedBuiltAt) {
130
+ const embedTime = new Date(result.embedBuiltAt).getTime();
131
+ if (!Number.isNaN(embedTime) && embedTime < buildNow.getTime()) {
132
+ warn('Embeddings were built before the last graph rebuild. Run "codegraph embed" to update.');
154
133
  }
155
134
  }
156
- // Stale embeddings warning (built before current graph rebuild)
157
- if (hasEmbeddings) {
158
- try {
159
- const embedBuiltAt = db.prepare("SELECT value FROM embedding_meta WHERE key = 'built_at'").get()?.value;
160
- if (embedBuiltAt) {
161
- const embedTime = new Date(embedBuiltAt).getTime();
162
- if (!Number.isNaN(embedTime) && embedTime < buildNow.getTime()) {
163
- warn('Embeddings were built before the last graph rebuild. Run "codegraph embed" to update.');
164
- }
165
- }
135
+ if (result.unusedExports > 0) {
136
+ warn(unusedExportsMessage(result.unusedExports));
137
+ }
138
+ }
139
+ function checkOrphanedEmbeddings(ctx) {
140
+ try {
141
+ const orphaned = ctx.db
142
+ .prepare('SELECT COUNT(*) as c FROM embeddings WHERE node_id NOT IN (SELECT id FROM nodes)')
143
+ .get().c;
144
+ if (orphaned > 0) {
145
+ warn(`${orphaned} embeddings are orphaned (nodes changed). Run "codegraph embed" to refresh.`);
166
146
  }
167
- catch {
168
- /* ignore - embedding_meta table may not exist */
147
+ }
148
+ catch {
149
+ /* ignore - embeddings table may have been dropped */
150
+ }
151
+ }
152
+ function checkStaleEmbeddings(ctx, buildNow) {
153
+ try {
154
+ const embedBuiltAt = ctx.db.prepare("SELECT value FROM embedding_meta WHERE key = 'built_at'").get()?.value;
155
+ if (!embedBuiltAt)
156
+ return;
157
+ const embedTime = new Date(embedBuiltAt).getTime();
158
+ if (!Number.isNaN(embedTime) && embedTime < buildNow.getTime()) {
159
+ warn('Embeddings were built before the last graph rebuild. Run "codegraph embed" to update.');
169
160
  }
170
161
  }
171
- // Unused exports warning
162
+ catch {
163
+ /* ignore - embedding_meta table may not exist */
164
+ }
165
+ }
166
+ function checkUnusedExports(ctx) {
172
167
  try {
173
- const unusedCount = db
168
+ const unusedCount = ctx.db
174
169
  .prepare(`SELECT COUNT(*) as c FROM nodes
175
170
  WHERE exported = 1 AND kind != 'file'
176
171
  AND id NOT IN (
@@ -180,14 +175,28 @@ function runAdvisoryChecks(ctx, hasEmbeddings, buildNow) {
180
175
  WHERE e.kind = 'calls' AND caller.file != target.file
181
176
  )`)
182
177
  .get().c;
183
- if (unusedCount > 0) {
184
- warn(`${unusedCount} exported symbol${unusedCount > 1 ? 's have' : ' has'} zero cross-file consumers. Run "codegraph exports <file> --unused" to inspect.`);
185
- }
178
+ if (unusedCount > 0)
179
+ warn(unusedExportsMessage(unusedCount));
186
180
  }
187
181
  catch {
188
182
  /* exported column may not exist on older DBs */
189
183
  }
190
184
  }
185
+ /**
186
+ * Run advisory checks on full builds: orphaned embeddings, stale embeddings,
187
+ * and unused exports. Informational only — does not affect correctness.
188
+ */
189
+ function runAdvisoryChecks(ctx, hasEmbeddings, buildNow) {
190
+ if (ctx.engineName === 'native' && ctx.nativeDb?.runAdvisoryChecks) {
191
+ runAdvisoryChecksNative(ctx, hasEmbeddings, buildNow);
192
+ return;
193
+ }
194
+ if (hasEmbeddings) {
195
+ checkOrphanedEmbeddings(ctx);
196
+ checkStaleEmbeddings(ctx, buildNow);
197
+ }
198
+ checkUnusedExports(ctx);
199
+ }
191
200
  export async function finalize(ctx) {
192
201
  const { allSymbols, rootDir, isFullBuild, hasEmbeddings, opts } = ctx;
193
202
  const t0 = performance.now();
@@ -1 +1 @@
1
- {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/finalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/finalize.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,13 @@ interface PrecomputedFileData {
12
12
  } | null;
13
13
  _reverseDepOnly?: boolean;
14
14
  }
15
+ /** A single file_hashes row. */
16
+ interface FileHashRecord {
17
+ file: string;
18
+ hash: string;
19
+ mtime: number;
20
+ size: number;
21
+ }
15
22
  /**
16
23
  * Build file hash entries for every collected file, including those that
17
24
  * produced zero symbols (empty files, parsers that silently no-op'd, or
@@ -22,12 +29,7 @@ interface PrecomputedFileData {
22
29
  *
23
30
  * Exported for unit testing.
24
31
  */
25
- export declare function buildFileHashes(filesToParse: FileToParse[], precomputedData: Map<string, PrecomputedFileData>, metadataUpdates: MetadataUpdate[], rootDir: string): Array<{
26
- file: string;
27
- hash: string;
28
- mtime: number;
29
- size: number;
30
- }>;
32
+ export declare function buildFileHashes(filesToParse: FileToParse[], precomputedData: Map<string, PrecomputedFileData>, metadataUpdates: MetadataUpdate[], rootDir: string): FileHashRecord[];
31
33
  export declare function insertNodes(ctx: PipelineContext): Promise<void>;
32
34
  export {};
33
35
  //# sourceMappingURL=insert-nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insert-nodes.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/insert-nodes.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,WAAW,EACX,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AASrD,yEAAyE;AACzE,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAsDD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACjD,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,EAAE,MAAM,GACd,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDpE;AA+OD,wBAAsB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDrE"}
1
+ {"version":3,"file":"insert-nodes.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/insert-nodes.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,WAAW,EACX,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AASrD,yEAAyE;AACzE,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAsDD,gCAAgC;AAChC,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAuFD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,WAAW,EAAE,EAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACjD,eAAe,EAAE,cAAc,EAAE,EACjC,OAAO,EAAE,MAAM,GACd,cAAc,EAAE,CAUlB;AA6ND,wBAAsB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDrE"}
@@ -44,18 +44,51 @@ function marshalSymbolBatches(allSymbols) {
44
44
  }
45
45
  return batches;
46
46
  }
47
+ /** Resolve the (hash, mtime, size) tuple for a relPath, reading from disk if needed. */
48
+ function resolveHashFromPrecomputed(relPath, precomputed, rootDir, caller) {
49
+ if (precomputed.hash) {
50
+ let mtime;
51
+ let size;
52
+ if (precomputed.stat) {
53
+ mtime = precomputed.stat.mtime;
54
+ size = precomputed.stat.size;
55
+ }
56
+ else {
57
+ const rawStat = fileStat(path.join(rootDir, relPath));
58
+ mtime = rawStat ? rawStat.mtime : 0;
59
+ size = rawStat ? rawStat.size : 0;
60
+ }
61
+ return { file: relPath, hash: precomputed.hash, mtime, size };
62
+ }
63
+ const absPath = path.join(rootDir, relPath);
64
+ let code;
65
+ try {
66
+ code = readFileSafe(absPath);
67
+ }
68
+ catch (e) {
69
+ debug(`${caller}: readFileSafe failed for ${relPath}: ${toErrorMessage(e)}`);
70
+ code = null;
71
+ }
72
+ if (code === null)
73
+ return null;
74
+ const stat = fileStat(absPath);
75
+ return {
76
+ file: relPath,
77
+ hash: fileHash(code),
78
+ mtime: stat ? stat.mtime : 0,
79
+ size: stat ? stat.size : 0,
80
+ };
81
+ }
47
82
  /**
48
- * Build file hash entries for every collected file, including those that
49
- * produced zero symbols (empty files, parsers that silently no-op'd, or
50
- * optional-language extensions whose grammar wasn't installed). Iterating the
51
- * symbol map instead would skip such files and leave them missing from
52
- * `file_hashes`, which permanently breaks the JS-side fast-skip pre-flight on
53
- * any subsequent no-op rebuild (#1068).
83
+ * Walk every collected file once and yield a `FileHashRecord` for it, plus one
84
+ * record per metadata-only update. Shared by `buildFileHashes` (native path)
85
+ * and `updateFileHashes` (JS fallback) so the iteration and hash-resolution
86
+ * logic stays in one place.
54
87
  *
55
- * Exported for unit testing.
88
+ * Files marked `_reverseDepOnly` are skipped — their hashes are already
89
+ * correct in the DB.
56
90
  */
57
- export function buildFileHashes(filesToParse, precomputedData, metadataUpdates, rootDir) {
58
- const fileHashes = [];
91
+ function* iterFileHashRecords(filesToParse, precomputedData, metadataUpdates, rootDir, caller) {
59
92
  const seen = new Set();
60
93
  for (const item of filesToParse) {
61
94
  const relPath = item.relPath ?? normalizePath(path.relative(rootDir, item.file));
@@ -63,48 +96,36 @@ export function buildFileHashes(filesToParse, precomputedData, metadataUpdates,
63
96
  continue;
64
97
  seen.add(relPath);
65
98
  const precomputed = precomputedData.get(relPath);
66
- if (precomputed?._reverseDepOnly) {
67
- continue; // file unchanged, hash already correct
68
- }
69
- if (precomputed?.hash) {
70
- let mtime;
71
- let size;
72
- if (precomputed.stat) {
73
- mtime = precomputed.stat.mtime;
74
- size = precomputed.stat.size;
75
- }
76
- else {
77
- const rawStat = fileStat(path.join(rootDir, relPath));
78
- mtime = rawStat ? rawStat.mtime : 0;
79
- size = rawStat ? rawStat.size : 0;
80
- }
81
- fileHashes.push({ file: relPath, hash: precomputed.hash, mtime, size });
82
- }
83
- else {
84
- const absPath = path.join(rootDir, relPath);
85
- let code;
86
- try {
87
- code = readFileSafe(absPath);
88
- }
89
- catch (e) {
90
- debug(`buildFileHashes: readFileSafe failed for ${relPath}: ${toErrorMessage(e)}`);
91
- code = null;
92
- }
93
- if (code !== null) {
94
- const stat = fileStat(absPath);
95
- const mtime = stat ? stat.mtime : 0;
96
- const size = stat ? stat.size : 0;
97
- fileHashes.push({ file: relPath, hash: fileHash(code), mtime, size });
98
- }
99
- }
99
+ if (precomputed?._reverseDepOnly)
100
+ continue;
101
+ const record = resolveHashFromPrecomputed(relPath, precomputed ?? {}, rootDir, caller);
102
+ if (record)
103
+ yield record;
100
104
  }
101
- // Also include metadata-only updates (self-heal mtime/size without re-parse)
105
+ // Metadata-only updates (self-heal mtime/size without re-parse)
102
106
  for (const item of metadataUpdates) {
103
- const mtime = item.stat ? item.stat.mtime : 0;
104
- const size = item.stat ? item.stat.size : 0;
105
- fileHashes.push({ file: item.relPath, hash: item.hash, mtime, size });
107
+ yield {
108
+ file: item.relPath,
109
+ hash: item.hash,
110
+ mtime: item.stat ? item.stat.mtime : 0,
111
+ size: item.stat ? item.stat.size : 0,
112
+ };
106
113
  }
107
- return fileHashes;
114
+ }
115
+ /**
116
+ * Build file hash entries for every collected file, including those that
117
+ * produced zero symbols (empty files, parsers that silently no-op'd, or
118
+ * optional-language extensions whose grammar wasn't installed). Iterating the
119
+ * symbol map instead would skip such files and leave them missing from
120
+ * `file_hashes`, which permanently breaks the JS-side fast-skip pre-flight on
121
+ * any subsequent no-op rebuild (#1068).
122
+ *
123
+ * Exported for unit testing.
124
+ */
125
+ export function buildFileHashes(filesToParse, precomputedData, metadataUpdates, rootDir) {
126
+ return [
127
+ ...iterFileHashRecords(filesToParse, precomputedData, metadataUpdates, rootDir, 'buildFileHashes'),
128
+ ];
108
129
  }
109
130
  // ── Native fast-path ─────────────────────────────────────────────────
110
131
  function tryNativeInsert(ctx) {
@@ -193,29 +214,30 @@ function insertDefinitionsAndExports(db, allSymbols) {
193
214
  }
194
215
  }
195
216
  // ── JS fallback: Phase 2+3 ──────────────────────────────────────────
196
- function insertChildrenAndEdges(db, allSymbols) {
197
- const childRows = [];
198
- const edgeRows = [];
217
+ /** Build the in-memory `name|kind|line` → node-id map for a single file. */
218
+ function loadFileNodeIdMap(db, relPath) {
219
+ const map = new Map();
220
+ for (const row of bulkNodeIdsByFile(db, relPath)) {
221
+ map.set(`${row.name}|${row.kind}|${row.line}`, row.id);
222
+ }
223
+ return map;
224
+ }
225
+ /**
226
+ * First pass: for every file, emit file→def containment edges and collect
227
+ * the child-node insertion rows.
228
+ */
229
+ function collectChildRowsAndFileEdges(db, allSymbols, childRows, edgeRows) {
199
230
  for (const [relPath, symbols] of allSymbols) {
200
- // First pass: collect file→def edges and child rows
201
- const nodeIdMap = new Map();
202
- for (const row of bulkNodeIdsByFile(db, relPath)) {
203
- nodeIdMap.set(`${row.name}|${row.kind}|${row.line}`, row.id);
204
- }
231
+ const nodeIdMap = loadFileNodeIdMap(db, relPath);
205
232
  const fileId = nodeIdMap.get(`${relPath}|file|0`);
206
233
  for (const def of symbols.definitions) {
207
234
  const defId = nodeIdMap.get(`${def.name}|${def.kind}|${def.line}`);
208
- // Containment edge: file -> definition
209
235
  if (fileId && defId) {
210
236
  edgeRows.push([fileId, defId, 'contains', 1.0, 0]);
211
237
  }
212
- if (!def.children?.length)
213
- continue;
214
- if (!defId)
238
+ if (!def.children?.length || !defId)
215
239
  continue;
216
240
  for (const child of def.children) {
217
- // Child node
218
- const qualifiedName = `${def.name}.${child.name}`;
219
241
  childRows.push([
220
242
  child.name,
221
243
  child.kind,
@@ -223,21 +245,21 @@ function insertChildrenAndEdges(db, allSymbols) {
223
245
  child.line,
224
246
  child.endLine || null,
225
247
  defId,
226
- qualifiedName,
248
+ `${def.name}.${child.name}`,
227
249
  def.name,
228
250
  child.visibility || null,
229
251
  ]);
230
252
  }
231
253
  }
232
254
  }
233
- // Insert children first (so they exist for edge lookup)
234
- batchInsertNodes(db, childRows);
235
- // Now re-fetch IDs to include newly-inserted children, then add child edges
255
+ }
256
+ /**
257
+ * Second pass (after child nodes have been inserted): emit def→child
258
+ * containment edges and child→def `parameter_of` edges.
259
+ */
260
+ function collectChildEdges(db, allSymbols, edgeRows) {
236
261
  for (const [relPath, symbols] of allSymbols) {
237
- const nodeIdMap = new Map();
238
- for (const row of bulkNodeIdsByFile(db, relPath)) {
239
- nodeIdMap.set(`${row.name}|${row.kind}|${row.line}`, row.id);
240
- }
262
+ const nodeIdMap = loadFileNodeIdMap(db, relPath);
241
263
  for (const def of symbols.definitions) {
242
264
  if (!def.children?.length)
243
265
  continue;
@@ -246,15 +268,23 @@ function insertChildrenAndEdges(db, allSymbols) {
246
268
  continue;
247
269
  for (const child of def.children) {
248
270
  const childId = nodeIdMap.get(`${child.name}|${child.kind}|${child.line}`);
249
- if (childId) {
250
- edgeRows.push([defId, childId, 'contains', 1.0, 0]);
251
- if (child.kind === 'parameter') {
252
- edgeRows.push([childId, defId, 'parameter_of', 1.0, 0]);
253
- }
271
+ if (!childId)
272
+ continue;
273
+ edgeRows.push([defId, childId, 'contains', 1.0, 0]);
274
+ if (child.kind === 'parameter') {
275
+ edgeRows.push([childId, defId, 'parameter_of', 1.0, 0]);
254
276
  }
255
277
  }
256
278
  }
257
279
  }
280
+ }
281
+ function insertChildrenAndEdges(db, allSymbols) {
282
+ const childRows = [];
283
+ const edgeRows = [];
284
+ collectChildRowsAndFileEdges(db, allSymbols, childRows, edgeRows);
285
+ // Insert children first (so they exist for edge lookup)
286
+ batchInsertNodes(db, childRows);
287
+ collectChildEdges(db, allSymbols, edgeRows);
258
288
  batchInsertEdges(db, edgeRows);
259
289
  }
260
290
  // ── JS fallback: Phase 4 ────────────────────────────────────────────
@@ -264,53 +294,8 @@ function updateFileHashes(_db, filesToParse, precomputedData, metadataUpdates, r
264
294
  // Iterate every collected file (#1068): files that produced zero symbols
265
295
  // (empty, parser no-op, or grammar-missing optional language) still need a
266
296
  // hash row, otherwise the next no-op rebuild's fast-skip pre-flight rejects.
267
- const seen = new Set();
268
- for (const item of filesToParse) {
269
- const relPath = item.relPath ?? normalizePath(path.relative(rootDir, item.file));
270
- if (seen.has(relPath))
271
- continue;
272
- seen.add(relPath);
273
- const precomputed = precomputedData.get(relPath);
274
- if (precomputed?._reverseDepOnly) {
275
- // no-op: file unchanged, hash already correct
276
- }
277
- else if (precomputed?.hash) {
278
- let mtime;
279
- let size;
280
- if (precomputed.stat) {
281
- mtime = precomputed.stat.mtime;
282
- size = precomputed.stat.size;
283
- }
284
- else {
285
- const rawStat = fileStat(path.join(rootDir, relPath));
286
- mtime = rawStat ? rawStat.mtime : 0;
287
- size = rawStat ? rawStat.size : 0;
288
- }
289
- upsertHash.run(relPath, precomputed.hash, mtime, size);
290
- }
291
- else {
292
- const absPath = path.join(rootDir, relPath);
293
- let code;
294
- try {
295
- code = readFileSafe(absPath);
296
- }
297
- catch (e) {
298
- debug(`updateFileHashes: readFileSafe failed for ${relPath}: ${toErrorMessage(e)}`);
299
- code = null;
300
- }
301
- if (code !== null) {
302
- const stat = fileStat(absPath);
303
- const mtime = stat ? stat.mtime : 0;
304
- const size = stat ? stat.size : 0;
305
- upsertHash.run(relPath, fileHash(code), mtime, size);
306
- }
307
- }
308
- }
309
- // Also update metadata-only entries (self-heal mtime/size without re-parse)
310
- for (const item of metadataUpdates) {
311
- const mtime = item.stat ? item.stat.mtime : 0;
312
- const size = item.stat ? item.stat.size : 0;
313
- upsertHash.run(item.relPath, item.hash, mtime, size);
297
+ for (const record of iterFileHashRecords(filesToParse, precomputedData, metadataUpdates, rootDir, 'updateFileHashes')) {
298
+ upsertHash.run(record.file, record.hash, record.mtime, record.size);
314
299
  }
315
300
  }
316
301
  // ── Main entry point ────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"insert-nodes.js","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/insert-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insert-nodes.js","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/insert-nodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { PipelineContext } from '../context.js';
2
+ /** Checkpoint WAL through rusqlite and close the native connection. */
3
+ export declare function closeNativeDb(ctx: PipelineContext, label: string): void;
4
+ /** Try to reopen the native connection for a given pipeline phase. */
5
+ export declare function reopenNativeDb(ctx: PipelineContext, label: string): void;
6
+ /** Close nativeDb and clear stale references in engineOpts. */
7
+ export declare function suspendNativeDb(ctx: PipelineContext, label: string): void;
8
+ /**
9
+ * After native writes, reopen the JS db connection to get a fresh page cache.
10
+ * Rusqlite WAL truncation invalidates better-sqlite3's internal WAL index,
11
+ * causing SQLITE_CORRUPT on the next read (#715, #736).
12
+ */
13
+ export declare function refreshJsDb(ctx: PipelineContext): void;
14
+ //# sourceMappingURL=native-db-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-db-lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/domain/graph/builder/stages/native-db-lifecycle.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAavE;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAUxE;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAOtD"}