@quolu/lattice 0.43.0 → 0.45.0

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 (124) hide show
  1. package/package.json +4 -2
  2. package/sensor/NOTICE +8 -19
  3. package/sensor/dist/bin/lattice-sensor.js +31 -0
  4. package/sensor/dist/db/index.d.ts +114 -0
  5. package/sensor/dist/db/index.d.ts.map +1 -1
  6. package/sensor/dist/db/index.js +235 -7
  7. package/sensor/dist/db/index.js.map +1 -1
  8. package/sensor/dist/db/migrations.js +1 -1
  9. package/sensor/dist/db/migrations.js.map +1 -1
  10. package/sensor/dist/db/queries.d.ts +46 -8
  11. package/sensor/dist/db/queries.d.ts.map +1 -1
  12. package/sensor/dist/db/queries.js +99 -16
  13. package/sensor/dist/db/queries.js.map +1 -1
  14. package/sensor/dist/db/wal-valve.d.ts +15 -2
  15. package/sensor/dist/db/wal-valve.d.ts.map +1 -1
  16. package/sensor/dist/db/wal-valve.js +88 -6
  17. package/sensor/dist/db/wal-valve.js.map +1 -1
  18. package/sensor/dist/extraction/extraction-version.d.ts +1 -1
  19. package/sensor/dist/extraction/extraction-version.d.ts.map +1 -1
  20. package/sensor/dist/extraction/extraction-version.js +5 -1
  21. package/sensor/dist/extraction/extraction-version.js.map +1 -1
  22. package/sensor/dist/extraction/function-ref.d.ts.map +1 -1
  23. package/sensor/dist/extraction/function-ref.js +6 -0
  24. package/sensor/dist/extraction/function-ref.js.map +1 -1
  25. package/sensor/dist/extraction/grammars.d.ts.map +1 -1
  26. package/sensor/dist/extraction/grammars.js +46 -0
  27. package/sensor/dist/extraction/grammars.js.map +1 -1
  28. package/sensor/dist/extraction/index.d.ts +11 -1
  29. package/sensor/dist/extraction/index.d.ts.map +1 -1
  30. package/sensor/dist/extraction/index.js +68 -16
  31. package/sensor/dist/extraction/index.js.map +1 -1
  32. package/sensor/dist/extraction/kernel/decode.d.ts.map +1 -1
  33. package/sensor/dist/extraction/kernel/decode.js +9 -3
  34. package/sensor/dist/extraction/kernel/decode.js.map +1 -1
  35. package/sensor/dist/extraction/kernel/index.d.ts +2 -0
  36. package/sensor/dist/extraction/kernel/index.d.ts.map +1 -1
  37. package/sensor/dist/extraction/kernel/index.js +122 -8
  38. package/sensor/dist/extraction/kernel/index.js.map +1 -1
  39. package/sensor/dist/extraction/kernel/layout.d.ts +10 -1
  40. package/sensor/dist/extraction/kernel/layout.d.ts.map +1 -1
  41. package/sensor/dist/extraction/kernel/layout.js +11 -2
  42. package/sensor/dist/extraction/kernel/layout.js.map +1 -1
  43. package/sensor/dist/extraction/kernel/loader.d.ts +42 -0
  44. package/sensor/dist/extraction/kernel/loader.d.ts.map +1 -1
  45. package/sensor/dist/extraction/kernel/loader.js.map +1 -1
  46. package/sensor/dist/extraction/languages/c-cpp.d.ts +13 -0
  47. package/sensor/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  48. package/sensor/dist/extraction/languages/c-cpp.js +809 -13
  49. package/sensor/dist/extraction/languages/c-cpp.js.map +1 -1
  50. package/sensor/dist/extraction/store-worker.js +29 -0
  51. package/sensor/dist/extraction/store-worker.js.map +1 -1
  52. package/sensor/dist/extraction/tree-sitter.d.ts +4 -1
  53. package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -1
  54. package/sensor/dist/extraction/tree-sitter.js +20 -4
  55. package/sensor/dist/extraction/tree-sitter.js.map +1 -1
  56. package/sensor/dist/extraction/wasm/tree-sitter-c.wasm +0 -0
  57. package/sensor/dist/extraction/wasm/tree-sitter-cpp.wasm +0 -0
  58. package/sensor/dist/extraction/wasm/tree-sitter-dart.wasm +0 -0
  59. package/sensor/dist/extraction/wasm/tree-sitter-kotlin.wasm +0 -0
  60. package/sensor/dist/extraction/wasm/tree-sitter-php.wasm +0 -0
  61. package/sensor/dist/extraction/wasm/tree-sitter-ruby.wasm +0 -0
  62. package/sensor/dist/extraction/wasm/tree-sitter-rust.wasm +0 -0
  63. package/sensor/dist/extraction/wasm/tree-sitter-swift.wasm +0 -0
  64. package/sensor/dist/index.d.ts +12 -1
  65. package/sensor/dist/index.d.ts.map +1 -1
  66. package/sensor/dist/index.js +42 -7
  67. package/sensor/dist/index.js.map +1 -1
  68. package/sensor/dist/mcp/daemon-registry.d.ts +5 -2
  69. package/sensor/dist/mcp/daemon-registry.d.ts.map +1 -1
  70. package/sensor/dist/mcp/daemon-registry.js +5 -2
  71. package/sensor/dist/mcp/daemon-registry.js.map +1 -1
  72. package/sensor/dist/mcp/index.d.ts +24 -0
  73. package/sensor/dist/mcp/index.d.ts.map +1 -1
  74. package/sensor/dist/mcp/index.js +51 -2
  75. package/sensor/dist/mcp/index.js.map +1 -1
  76. package/sensor/dist/mcp/liveness-watchdog.d.ts.map +1 -1
  77. package/sensor/dist/mcp/liveness-watchdog.js +3 -1
  78. package/sensor/dist/mcp/liveness-watchdog.js.map +1 -1
  79. package/sensor/dist/mcp/server-instructions.d.ts +1 -1
  80. package/sensor/dist/mcp/server-instructions.d.ts.map +1 -1
  81. package/sensor/dist/mcp/server-instructions.js +1 -0
  82. package/sensor/dist/mcp/server-instructions.js.map +1 -1
  83. package/sensor/dist/mcp/tools.d.ts +48 -0
  84. package/sensor/dist/mcp/tools.d.ts.map +1 -1
  85. package/sensor/dist/mcp/tools.js +231 -4
  86. package/sensor/dist/mcp/tools.js.map +1 -1
  87. package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
  88. package/sensor/dist/resolution/c-fnptr-synthesizer.js +561 -127
  89. package/sensor/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
  90. package/sensor/dist/resolution/callback-synthesizer.d.ts +1 -1
  91. package/sensor/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  92. package/sensor/dist/resolution/callback-synthesizer.js +80 -11
  93. package/sensor/dist/resolution/callback-synthesizer.js.map +1 -1
  94. package/sensor/dist/resolution/import-resolver.d.ts.map +1 -1
  95. package/sensor/dist/resolution/import-resolver.js +34 -2
  96. package/sensor/dist/resolution/import-resolver.js.map +1 -1
  97. package/sensor/dist/resolution/index.d.ts +34 -0
  98. package/sensor/dist/resolution/index.d.ts.map +1 -1
  99. package/sensor/dist/resolution/index.js +393 -51
  100. package/sensor/dist/resolution/index.js.map +1 -1
  101. package/sensor/dist/resolution/memory-budget.d.ts +48 -0
  102. package/sensor/dist/resolution/memory-budget.d.ts.map +1 -0
  103. package/sensor/dist/resolution/memory-budget.js +162 -0
  104. package/sensor/dist/resolution/memory-budget.js.map +1 -0
  105. package/sensor/dist/resolution/name-matcher.d.ts +4 -7
  106. package/sensor/dist/resolution/name-matcher.d.ts.map +1 -1
  107. package/sensor/dist/resolution/name-matcher.js +256 -91
  108. package/sensor/dist/resolution/name-matcher.js.map +1 -1
  109. package/sensor/dist/resolution/resolver-pool.d.ts +41 -1
  110. package/sensor/dist/resolution/resolver-pool.d.ts.map +1 -1
  111. package/sensor/dist/resolution/resolver-pool.js +103 -3
  112. package/sensor/dist/resolution/resolver-pool.js.map +1 -1
  113. package/sensor/dist/resolution/resolver-worker.js +27 -0
  114. package/sensor/dist/resolution/resolver-worker.js.map +1 -1
  115. package/sensor/dist/sync/watcher.d.ts +8 -1
  116. package/sensor/dist/sync/watcher.d.ts.map +1 -1
  117. package/sensor/dist/sync/watcher.js +44 -2
  118. package/sensor/dist/sync/watcher.js.map +1 -1
  119. package/sensor/dist/types.d.ts +7 -3
  120. package/sensor/dist/types.d.ts.map +1 -1
  121. package/src/cli-help.mjs +16 -0
  122. package/src/sensor-adapter.mjs +4 -0
  123. package/src/sensor-cli.mjs +37 -5
  124. package/src/sensor-diff.mjs +661 -0
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,19 @@ export declare class QueryBuilder {
24
24
  */
25
25
  private runBatched;
26
26
  constructor(db: SqliteDatabase);
27
+ /**
28
+ * Swap the underlying connection in place. Used by pool workers'
29
+ * connection recycling (plan §7a.6, writes-under-readers): a long-lived
30
+ * read connection pins WAL checkpoint progress, and the deep WAL that
31
+ * accumulates behind it taxes every main-thread B-tree page operation
32
+ * (deletes measured 42.6s → 118.8s from 0 to 4 attached readers on
33
+ * identical hardware). Workers therefore close and reopen their read-only
34
+ * connection at the pool-idle boundary; everything above the connection —
35
+ * this QueryBuilder, the resolver and its warm caches — survives, and only
36
+ * connection-derived state (prepared statements) resets, re-preparing
37
+ * lazily on next use.
38
+ */
39
+ rebind(db: SqliteDatabase): void;
27
40
  /** Set the normalized project-name tokens used to down-weight non-discriminative
28
41
  * query words in path scoring (#720). Called once when the project opens. */
29
42
  setProjectNameTokens(tokens: Set<string>): void;
@@ -386,13 +399,29 @@ export declare class QueryBuilder {
386
399
  */
387
400
  upsertFile(file: FileRecord): void;
388
401
  /**
389
- * Number of tracked files whose rows were written by an extractor other
390
- * than the one now running. Zero means the whole index reflects current
391
- * extraction semantics the condition for advancing the global stamp.
402
+ * Stale means written by an extractor OLDER than the one now running — never
403
+ * a newer one. A row a newer engine wrote is not stale; it holds output this
404
+ * engine cannot produce, so re-extracting it here would DOWNGRADE the index.
405
+ * That is not hypothetical: a long-running daemon holding pre-upgrade code in
406
+ * memory kept rewriting a healed index back to its own older stamp, silently
407
+ * undoing every `sync`. Comparing with `!=` makes healing bidirectional, which
408
+ * turns two engines on one index into an endless mutual overwrite.
392
409
  */
393
- /** Paths of tracked files whose rows were written by a different extractor. */
410
+ /** Paths of tracked files whose rows were written by an older extractor. */
394
411
  getExtractionStalePaths(currentVersion: number): string[];
412
+ /**
413
+ * Number of tracked files whose rows were written by an older extractor.
414
+ * Zero means nothing on disk is behind the running engine — the condition for
415
+ * advancing the global stamp.
416
+ */
395
417
  getExtractionStaleFileCount(currentVersion: number): number;
418
+ /**
419
+ * Number of tracked files written by a NEWER extractor than the one running.
420
+ * Non-zero means this engine is behind the index it is attached to — it must
421
+ * not rewrite those rows, and the operator should be told rather than left to
422
+ * wonder why the index never converges.
423
+ */
424
+ getExtractionAheadFileCount(currentVersion: number): number;
396
425
  /**
397
426
  * Delete a file record and its nodes
398
427
  */
@@ -449,6 +478,15 @@ export declare class QueryBuilder {
449
478
  * has been attempted.
450
479
  */
451
480
  getUnresolvedReferencesBatch(offset: number, limit: number): UnresolvedReference[];
481
+ /**
482
+ * Keyset variant of {@link getUnresolvedReferencesBatch} for the batched
483
+ * resolution loop: seek past the last-seen row id instead of OFFSET-walking.
484
+ * OFFSET reads re-scan the accumulated failed-row prefix on every batch —
485
+ * O(failed rows) per read, measured at 54.6s of the kernel-scale batch loop
486
+ * (§7a.2) — while the seek is O(batch) forever. `id` is the rowid alias, so
487
+ * the enumeration order is identical to the OFFSET reader's.
488
+ */
489
+ getUnresolvedReferencesBatchAfter(afterRowId: number, limit: number): UnresolvedReference[];
452
490
  /**
453
491
  * Get all tracked file paths (lightweight — no full FileRecord objects)
454
492
  */
@@ -495,7 +533,7 @@ export declare class QueryBuilder {
495
533
  fromNodeId: string;
496
534
  referenceName: string;
497
535
  referenceKind: string;
498
- }>): void;
536
+ }>): number;
499
537
  /**
500
538
  * Delete unresolved-ref rows by row id — the precise cleanup for refs a
501
539
  * resolution pass actually processed. The key-tuple variant above also
@@ -504,7 +542,7 @@ export declare class QueryBuilder {
504
542
  * caller's same-named call sites, the later sites' edges were silently never
505
543
  * created (#1269).
506
544
  */
507
- deleteReferencesByRowIds(rowIds: number[]): void;
545
+ deleteReferencesByRowIds(rowIds: number[]): number;
508
546
  /**
509
547
  * Mark refs a completed resolution pass could not resolve as status='failed'
510
548
  * instead of deleting them (#1240). Failed rows are invisible to the pending
@@ -518,7 +556,7 @@ export declare class QueryBuilder {
518
556
  fromNodeId: string;
519
557
  referenceName: string;
520
558
  referenceKind: string;
521
- }>): void;
559
+ }>): number;
522
560
  /**
523
561
  * Park refs as status='failed' by row id — the precise counterpart of
524
562
  * markReferencesFailed, for the same reason as deleteReferencesByRowIds:
@@ -530,7 +568,7 @@ export declare class QueryBuilder {
530
568
  markReferencesFailedByRowIds(refs: Array<{
531
569
  rowId: number;
532
570
  referenceName: string;
533
- }>): void;
571
+ }>): number;
534
572
  /**
535
573
  * Failed refs whose name tail matches one of the given symbol names — the
536
574
  * candidates a sync should retry after files carrying those names changed
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
@@ -231,6 +231,23 @@ class QueryBuilder {
231
231
  constructor(db) {
232
232
  this.db = db;
233
233
  }
234
+ /**
235
+ * Swap the underlying connection in place. Used by pool workers'
236
+ * connection recycling (plan §7a.6, writes-under-readers): a long-lived
237
+ * read connection pins WAL checkpoint progress, and the deep WAL that
238
+ * accumulates behind it taxes every main-thread B-tree page operation
239
+ * (deletes measured 42.6s → 118.8s from 0 to 4 attached readers on
240
+ * identical hardware). Workers therefore close and reopen their read-only
241
+ * connection at the pool-idle boundary; everything above the connection —
242
+ * this QueryBuilder, the resolver and its warm caches — survives, and only
243
+ * connection-derived state (prepared statements) resets, re-preparing
244
+ * lazily on next use.
245
+ */
246
+ rebind(db) {
247
+ this.db = db;
248
+ this.stmts = {};
249
+ this.batchStmts.clear();
250
+ }
234
251
  /** Set the normalized project-name tokens used to down-weight non-discriminative
235
252
  * query words in path scoring (#720). Called once when the project opens. */
236
253
  setProjectNameTokens(tokens) {
@@ -1656,23 +1673,44 @@ class QueryBuilder {
1656
1673
  });
1657
1674
  }
1658
1675
  /**
1659
- * Number of tracked files whose rows were written by an extractor other
1660
- * than the one now running. Zero means the whole index reflects current
1661
- * extraction semantics the condition for advancing the global stamp.
1676
+ * Stale means written by an extractor OLDER than the one now running — never
1677
+ * a newer one. A row a newer engine wrote is not stale; it holds output this
1678
+ * engine cannot produce, so re-extracting it here would DOWNGRADE the index.
1679
+ * That is not hypothetical: a long-running daemon holding pre-upgrade code in
1680
+ * memory kept rewriting a healed index back to its own older stamp, silently
1681
+ * undoing every `sync`. Comparing with `!=` makes healing bidirectional, which
1682
+ * turns two engines on one index into an endless mutual overwrite.
1662
1683
  */
1663
- /** Paths of tracked files whose rows were written by a different extractor. */
1684
+ /** Paths of tracked files whose rows were written by an older extractor. */
1664
1685
  getExtractionStalePaths(currentVersion) {
1665
1686
  const rows = this.db
1666
- .prepare('SELECT path FROM files WHERE extraction_version != ? ORDER BY path')
1687
+ .prepare('SELECT path FROM files WHERE extraction_version < ? ORDER BY path')
1667
1688
  .all(currentVersion);
1668
1689
  return rows.map((row) => row.path);
1669
1690
  }
1691
+ /**
1692
+ * Number of tracked files whose rows were written by an older extractor.
1693
+ * Zero means nothing on disk is behind the running engine — the condition for
1694
+ * advancing the global stamp.
1695
+ */
1670
1696
  getExtractionStaleFileCount(currentVersion) {
1671
1697
  const row = this.db
1672
- .prepare('SELECT COUNT(*) AS stale FROM files WHERE extraction_version != ?')
1698
+ .prepare('SELECT COUNT(*) AS stale FROM files WHERE extraction_version < ?')
1673
1699
  .get(currentVersion);
1674
1700
  return row.stale;
1675
1701
  }
1702
+ /**
1703
+ * Number of tracked files written by a NEWER extractor than the one running.
1704
+ * Non-zero means this engine is behind the index it is attached to — it must
1705
+ * not rewrite those rows, and the operator should be told rather than left to
1706
+ * wonder why the index never converges.
1707
+ */
1708
+ getExtractionAheadFileCount(currentVersion) {
1709
+ const row = this.db
1710
+ .prepare('SELECT COUNT(*) AS ahead FROM files WHERE extraction_version > ?')
1711
+ .get(currentVersion);
1712
+ return row.ahead;
1713
+ }
1676
1714
  /**
1677
1715
  * Delete a file record and its nodes
1678
1716
  */
@@ -1871,6 +1909,38 @@ class QueryBuilder {
1871
1909
  importedName: row.imported_name ?? undefined,
1872
1910
  }));
1873
1911
  }
1912
+ /**
1913
+ * Keyset variant of {@link getUnresolvedReferencesBatch} for the batched
1914
+ * resolution loop: seek past the last-seen row id instead of OFFSET-walking.
1915
+ * OFFSET reads re-scan the accumulated failed-row prefix on every batch —
1916
+ * O(failed rows) per read, measured at 54.6s of the kernel-scale batch loop
1917
+ * (§7a.2) — while the seek is O(batch) forever. `id` is the rowid alias, so
1918
+ * the enumeration order is identical to the OFFSET reader's.
1919
+ */
1920
+ getUnresolvedReferencesBatchAfter(afterRowId, limit) {
1921
+ if (!this.stmts.getUnresolvedBatchAfter) {
1922
+ this.stmts.getUnresolvedBatchAfter = this.db.prepare("SELECT * FROM unresolved_refs WHERE status = 'pending' AND id > ? ORDER BY id LIMIT ?");
1923
+ }
1924
+ const rows = this.stmts.getUnresolvedBatchAfter.all(afterRowId, limit);
1925
+ return rows.map((row) => ({
1926
+ fromNodeId: row.from_node_id,
1927
+ referenceName: row.reference_name,
1928
+ referenceKind: row.reference_kind,
1929
+ line: row.line,
1930
+ column: row.col,
1931
+ candidates: row.candidates ? (0, utils_1.safeJsonParse)(row.candidates, undefined) : undefined,
1932
+ filePath: row.file_path,
1933
+ language: row.language,
1934
+ rowId: row.id,
1935
+ // The upstream keyset reader predates Lattice's import-binding columns
1936
+ // (v10). Every other unresolved_refs mapper carries them — dropping them
1937
+ // here silently strips `binding`/`importedName` from every resolved
1938
+ // import edge's metadata, because THIS is the reader the batched
1939
+ // resolution loop actually uses.
1940
+ bindingForm: (row.binding_form ?? undefined),
1941
+ importedName: row.imported_name ?? undefined,
1942
+ }));
1943
+ }
1874
1944
  /**
1875
1945
  * Get all tracked file paths (lightweight — no full FileRecord objects)
1876
1946
  */
@@ -1993,14 +2063,19 @@ class QueryBuilder {
1993
2063
  */
1994
2064
  deleteSpecificResolvedReferences(refs) {
1995
2065
  if (refs.length === 0)
1996
- return;
2066
+ return 0;
1997
2067
  const stmt = this.db.prepare('DELETE FROM unresolved_refs WHERE from_node_id = ? AND reference_name = ? AND reference_kind = ?');
2068
+ // Returns rows actually removed (SQLite `changes`, summed): the batched
2069
+ // resolution loop's non-progress guard keys on this — zero removals from
2070
+ // a batch that claimed work is the direct runaway signal (§7a.2).
2071
+ let changed = 0;
1998
2072
  const deleteMany = this.db.transaction((items) => {
1999
2073
  for (const ref of items) {
2000
- stmt.run(ref.fromNodeId, ref.referenceName, ref.referenceKind);
2074
+ changed += stmt.run(ref.fromNodeId, ref.referenceName, ref.referenceKind).changes;
2001
2075
  }
2002
2076
  });
2003
2077
  deleteMany(refs);
2078
+ return changed;
2004
2079
  }
2005
2080
  /**
2006
2081
  * Delete unresolved-ref rows by row id — the precise cleanup for refs a
@@ -2012,12 +2087,14 @@ class QueryBuilder {
2012
2087
  */
2013
2088
  deleteReferencesByRowIds(rowIds) {
2014
2089
  if (rowIds.length === 0)
2015
- return;
2090
+ return 0;
2016
2091
  // One transaction for all chunks (each chunk was previously its own
2017
2092
  // implicit transaction = its own WAL commit — measurable on 100k+-ref
2018
2093
  // resolution persists), and the full-size chunk statement is cached so
2019
2094
  // repeat calls skip the re-prepare; only the final partial chunk (if any)
2020
- // prepares ad hoc.
2095
+ // prepares ad hoc. Returns rows actually removed (summed `changes`) for
2096
+ // the batched loop's non-progress guard (§7a.2).
2097
+ let changed = 0;
2021
2098
  this.db.transaction(() => {
2022
2099
  for (let i = 0; i < rowIds.length; i += SQLITE_PARAM_CHUNK_SIZE) {
2023
2100
  const chunk = rowIds.slice(i, i + SQLITE_PARAM_CHUNK_SIZE);
@@ -2026,14 +2103,15 @@ class QueryBuilder {
2026
2103
  const placeholders = new Array(SQLITE_PARAM_CHUNK_SIZE).fill('?').join(',');
2027
2104
  this.stmts.deleteRefsByRowIdsFull = this.db.prepare(`DELETE FROM unresolved_refs WHERE id IN (${placeholders})`);
2028
2105
  }
2029
- this.stmts.deleteRefsByRowIdsFull.run(...chunk);
2106
+ changed += this.stmts.deleteRefsByRowIdsFull.run(...chunk).changes;
2030
2107
  }
2031
2108
  else {
2032
2109
  const placeholders = chunk.map(() => '?').join(',');
2033
- this.db.prepare(`DELETE FROM unresolved_refs WHERE id IN (${placeholders})`).run(...chunk);
2110
+ changed += this.db.prepare(`DELETE FROM unresolved_refs WHERE id IN (${placeholders})`).run(...chunk).changes;
2034
2111
  }
2035
2112
  }
2036
2113
  })();
2114
+ return changed;
2037
2115
  }
2038
2116
  /**
2039
2117
  * Mark refs a completed resolution pass could not resolve as status='failed'
@@ -2046,14 +2124,16 @@ class QueryBuilder {
2046
2124
  */
2047
2125
  markReferencesFailed(refs) {
2048
2126
  if (refs.length === 0)
2049
- return;
2127
+ return 0;
2050
2128
  const stmt = this.db.prepare("UPDATE unresolved_refs SET status = 'failed', name_tail = ? WHERE from_node_id = ? AND reference_name = ? AND reference_kind = ?");
2129
+ let changed = 0;
2051
2130
  const markMany = this.db.transaction((items) => {
2052
2131
  for (const ref of items) {
2053
- stmt.run(referenceNameTail(ref.referenceName), ref.fromNodeId, ref.referenceName, ref.referenceKind);
2132
+ changed += stmt.run(referenceNameTail(ref.referenceName), ref.fromNodeId, ref.referenceName, ref.referenceKind).changes;
2054
2133
  }
2055
2134
  });
2056
2135
  markMany(refs);
2136
+ return changed;
2057
2137
  }
2058
2138
  /**
2059
2139
  * Park refs as status='failed' by row id — the precise counterpart of
@@ -2065,14 +2145,16 @@ class QueryBuilder {
2065
2145
  */
2066
2146
  markReferencesFailedByRowIds(refs) {
2067
2147
  if (refs.length === 0)
2068
- return;
2148
+ return 0;
2069
2149
  const stmt = this.db.prepare("UPDATE unresolved_refs SET status = 'failed', name_tail = ? WHERE id = ?");
2150
+ let changed = 0;
2070
2151
  const markMany = this.db.transaction((items) => {
2071
2152
  for (const ref of items) {
2072
- stmt.run(referenceNameTail(ref.referenceName), ref.rowId);
2153
+ changed += stmt.run(referenceNameTail(ref.referenceName), ref.rowId).changes;
2073
2154
  }
2074
2155
  });
2075
2156
  markMany(refs);
2157
+ return changed;
2076
2158
  }
2077
2159
  /**
2078
2160
  * Failed refs whose name tail matches one of the given symbol names — the
@@ -2199,6 +2281,7 @@ class QueryBuilder {
2199
2281
  edgesByKind,
2200
2282
  filesByLanguage,
2201
2283
  dbSizeBytes: 0, // Set by caller using DatabaseConnection.getSize()
2284
+ walSizeBytes: 0, // Set by caller using DatabaseConnection.getWalSizeBytes()
2202
2285
  lastUpdated: Date.now(),
2203
2286
  };
2204
2287
  }