codesift-mcp 0.13.1 → 0.14.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 (131) hide show
  1. package/dist/cli/commands.d.ts.map +1 -1
  2. package/dist/cli/commands.js +14 -1
  3. package/dist/cli/commands.js.map +1 -1
  4. package/dist/cli/hooks/pre-tool-use.d.ts +1 -0
  5. package/dist/cli/hooks/pre-tool-use.d.ts.map +1 -1
  6. package/dist/cli/hooks/pre-tool-use.js +11 -2
  7. package/dist/cli/hooks/pre-tool-use.js.map +1 -1
  8. package/dist/config.d.ts +13 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +21 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/formatters-core.d.ts +7 -0
  13. package/dist/formatters-core.d.ts.map +1 -1
  14. package/dist/formatters-core.js +14 -3
  15. package/dist/formatters-core.js.map +1 -1
  16. package/dist/parser/extractors/hono-inline-analyzer.js +2 -2
  17. package/dist/parser/extractors/hono-inline-analyzer.js.map +1 -1
  18. package/dist/register-tool-groups/core/search.d.ts.map +1 -1
  19. package/dist/register-tool-groups/core/search.js +14 -0
  20. package/dist/register-tool-groups/core/search.js.map +1 -1
  21. package/dist/register-tool-groups/core/symbols.d.ts.map +1 -1
  22. package/dist/register-tool-groups/core/symbols.js +50 -5
  23. package/dist/register-tool-groups/core/symbols.js.map +1 -1
  24. package/dist/server.d.ts.map +1 -1
  25. package/dist/server.js +54 -2
  26. package/dist/server.js.map +1 -1
  27. package/dist/storage/_shared.d.ts +21 -0
  28. package/dist/storage/_shared.d.ts.map +1 -1
  29. package/dist/storage/_shared.js +36 -0
  30. package/dist/storage/_shared.js.map +1 -1
  31. package/dist/storage/index-footprint.d.ts +12 -0
  32. package/dist/storage/index-footprint.d.ts.map +1 -0
  33. package/dist/storage/index-footprint.js +41 -0
  34. package/dist/storage/index-footprint.js.map +1 -0
  35. package/dist/storage/index-store.d.ts +30 -3
  36. package/dist/storage/index-store.d.ts.map +1 -1
  37. package/dist/storage/index-store.js +122 -9
  38. package/dist/storage/index-store.js.map +1 -1
  39. package/dist/storage/registry.d.ts.map +1 -1
  40. package/dist/storage/registry.js +64 -1
  41. package/dist/storage/registry.js.map +1 -1
  42. package/dist/storage/sqlite/accessors.d.ts +34 -0
  43. package/dist/storage/sqlite/accessors.d.ts.map +1 -0
  44. package/dist/storage/sqlite/accessors.js +178 -0
  45. package/dist/storage/sqlite/accessors.js.map +1 -0
  46. package/dist/storage/sqlite/connection.d.ts +43 -0
  47. package/dist/storage/sqlite/connection.d.ts.map +1 -0
  48. package/dist/storage/sqlite/connection.js +241 -0
  49. package/dist/storage/sqlite/connection.js.map +1 -0
  50. package/dist/storage/sqlite/errors.d.ts +38 -0
  51. package/dist/storage/sqlite/errors.d.ts.map +1 -0
  52. package/dist/storage/sqlite/errors.js +150 -0
  53. package/dist/storage/sqlite/errors.js.map +1 -0
  54. package/dist/storage/sqlite/index-io.d.ts +49 -0
  55. package/dist/storage/sqlite/index-io.d.ts.map +1 -0
  56. package/dist/storage/sqlite/index-io.js +268 -0
  57. package/dist/storage/sqlite/index-io.js.map +1 -0
  58. package/dist/storage/sqlite/meta.d.ts +41 -0
  59. package/dist/storage/sqlite/meta.d.ts.map +1 -0
  60. package/dist/storage/sqlite/meta.js +28 -0
  61. package/dist/storage/sqlite/meta.js.map +1 -0
  62. package/dist/storage/sqlite/rows.d.ts +64 -0
  63. package/dist/storage/sqlite/rows.d.ts.map +1 -0
  64. package/dist/storage/sqlite/rows.js +186 -0
  65. package/dist/storage/sqlite/rows.js.map +1 -0
  66. package/dist/storage/sqlite/runtime.d.ts +6 -0
  67. package/dist/storage/sqlite/runtime.d.ts.map +1 -0
  68. package/dist/storage/sqlite/runtime.js +31 -0
  69. package/dist/storage/sqlite/runtime.js.map +1 -0
  70. package/dist/storage/sqlite/schema.d.ts +34 -0
  71. package/dist/storage/sqlite/schema.d.ts.map +1 -0
  72. package/dist/storage/sqlite/schema.js +98 -0
  73. package/dist/storage/sqlite/schema.js.map +1 -0
  74. package/dist/storage/sqlite-index-store.d.ts +40 -80
  75. package/dist/storage/sqlite-index-store.d.ts.map +1 -1
  76. package/dist/storage/sqlite-index-store.js +32 -577
  77. package/dist/storage/sqlite-index-store.js.map +1 -1
  78. package/dist/storage/telemetry/config.d.ts.map +1 -1
  79. package/dist/storage/telemetry/config.js +14 -3
  80. package/dist/storage/telemetry/config.js.map +1 -1
  81. package/dist/storage/telemetry/payload.d.ts.map +1 -1
  82. package/dist/storage/telemetry/payload.js +4 -1
  83. package/dist/storage/telemetry/payload.js.map +1 -1
  84. package/dist/storage/telemetry/retro-aggregator.d.ts +27 -0
  85. package/dist/storage/telemetry/retro-aggregator.d.ts.map +1 -0
  86. package/dist/storage/telemetry/retro-aggregator.js +179 -0
  87. package/dist/storage/telemetry/retro-aggregator.js.map +1 -0
  88. package/dist/storage/telemetry/sanitizer.d.ts +30 -0
  89. package/dist/storage/telemetry/sanitizer.d.ts.map +1 -1
  90. package/dist/storage/telemetry/sanitizer.js +23 -0
  91. package/dist/storage/telemetry/sanitizer.js.map +1 -1
  92. package/dist/storage/telemetry/uploader.d.ts.map +1 -1
  93. package/dist/storage/telemetry/uploader.js +6 -0
  94. package/dist/storage/telemetry/uploader.js.map +1 -1
  95. package/dist/storage/workspace-resolver.js +1 -1
  96. package/dist/storage/workspace-resolver.js.map +1 -1
  97. package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
  98. package/dist/tools/index-tools/folder-indexer.js +4 -1
  99. package/dist/tools/index-tools/folder-indexer.js.map +1 -1
  100. package/dist/tools/index-tools/registry.d.ts +16 -0
  101. package/dist/tools/index-tools/registry.d.ts.map +1 -1
  102. package/dist/tools/index-tools/registry.js +79 -1
  103. package/dist/tools/index-tools/registry.js.map +1 -1
  104. package/dist/tools/index-tools.d.ts +2 -2
  105. package/dist/tools/index-tools.d.ts.map +1 -1
  106. package/dist/tools/index-tools.js +2 -2
  107. package/dist/tools/index-tools.js.map +1 -1
  108. package/dist/tools/plan-turn/stale-index.d.ts +32 -0
  109. package/dist/tools/plan-turn/stale-index.d.ts.map +1 -1
  110. package/dist/tools/plan-turn/stale-index.js +42 -5
  111. package/dist/tools/plan-turn/stale-index.js.map +1 -1
  112. package/dist/tools/search-tools/types.d.ts +20 -0
  113. package/dist/tools/search-tools/types.d.ts.map +1 -1
  114. package/dist/tools/search-tools/zero-hit.d.ts.map +1 -1
  115. package/dist/tools/search-tools/zero-hit.js +0 -0
  116. package/dist/tools/search-tools/zero-hit.js.map +1 -1
  117. package/dist/tools/status-tools.d.ts +10 -0
  118. package/dist/tools/status-tools.d.ts.map +1 -1
  119. package/dist/tools/status-tools.js +14 -4
  120. package/dist/tools/status-tools.js.map +1 -1
  121. package/dist/tools/symbol-tools.d.ts +95 -1
  122. package/dist/tools/symbol-tools.d.ts.map +1 -1
  123. package/dist/tools/symbol-tools.js +182 -26
  124. package/dist/tools/symbol-tools.js.map +1 -1
  125. package/dist/types.d.ts +6 -0
  126. package/dist/types.d.ts.map +1 -1
  127. package/dist/utils/git-head.d.ts +12 -0
  128. package/dist/utils/git-head.d.ts.map +1 -1
  129. package/dist/utils/git-head.js +25 -0
  130. package/dist/utils/git-head.js.map +1 -1
  131. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index-store.d.ts","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-store.d.ts","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,22 @@ import { statSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { createHash } from "node:crypto";
5
5
  import { atomicWriteFile } from "./_shared.js";
6
- import { isSqliteAvailable, loadIndexSqlite, saveIndexSqlite, saveIncrementalSqlite, removeFileFromIndexSqlite, getFileEntrySqlite, getDataVersion, importLegacyIndexIfEmpty, classifyStorageError, IndexStorageError, } from "./sqlite-index-store.js";
6
+ import { isSqliteAvailable, loadIndexSqlite, saveIndexSqlite, saveIncrementalSqlite, removeFileFromIndexSqlite, getFileEntrySqlite, getDataVersion, importLegacyIndexIfEmpty, classifyStorageError, IndexStorageError, loadIndexSummarySqlite, } from "./sqlite-index-store.js";
7
+ import { indexFootprintBytes } from "./index-footprint.js";
8
+ import { indexCacheMemBudgetBytes } from "../config.js";
9
+ /** Bounded by entry count, not bytes: a summary holds no symbols, so it cannot dominate the heap
10
+ * the way a materialised index can. */
11
+ const MAX_CACHED_SUMMARIES = 16;
12
+ const summaryCache = new Map();
13
+ function copySummary(summary) {
14
+ const out = { ...summary, files: [...summary.files] };
15
+ if (summary.workspaces !== undefined)
16
+ out.workspaces = [...summary.workspaces];
17
+ return out;
18
+ }
19
+ export function resetSummaryCacheForTesting() {
20
+ summaryCache.clear();
21
+ }
7
22
  /** Serialize concurrent writes to the same index path. */
8
23
  const writeLocks = new Map();
9
24
  /**
@@ -88,10 +103,10 @@ export function resetMigrationCacheForTesting() {
88
103
  * Save a code index atomically.
89
104
  * Writes to a temp file first, then renames to prevent partial reads.
90
105
  */
91
- export async function saveIndex(indexPath, index) {
106
+ export async function saveIndex(indexPath, index, opts) {
92
107
  if ((await resolveIndexBackend()) === "sqlite") {
93
108
  const dbPath = sqlitePathFor(indexPath);
94
- await saveIndexSqlite(dbPath, index);
109
+ await saveIndexSqlite(dbPath, index, opts);
95
110
  invalidateIndexCache(dbPath);
96
111
  return;
97
112
  }
@@ -152,16 +167,40 @@ const MAX_CACHED_INDEXES = (() => {
152
167
  return Math.max(1, Number.isNaN(parsed) ? 3 : parsed);
153
168
  })();
154
169
  const indexCache = new Map();
170
+ function cachedBytes() {
171
+ let total = 0;
172
+ for (const entry of indexCache.values())
173
+ total += indexFootprintBytes(entry.index);
174
+ return total;
175
+ }
155
176
  function cacheIndex(dbPath, entry) {
156
177
  // Re-insert to move to the most-recent end of Map iteration order.
157
178
  indexCache.delete(dbPath);
158
179
  indexCache.set(dbPath, entry);
159
- while (indexCache.size > MAX_CACHED_INDEXES) {
160
- const oldest = indexCache.keys().next();
180
+ const budget = indexCacheMemBudgetBytes();
181
+ // Evict oldest-first on EITHER bound. The count cap alone let three repos of any size sit
182
+ // resident, and index sizes span two orders of magnitude — the measured tgm-survey-platform
183
+ // index is 411 MB against a few MB for a small repo, so "three indexes" was a ceiling only in
184
+ // name. The byte bound is the real one; the count cap stays as a cheap upper limit on entries.
185
+ //
186
+ // The running total is decremented per eviction rather than re-summed in the loop condition.
187
+ // `MAX_CACHED_INDEXES` has a floor but no ceiling (`CODESIFT_MAX_CACHED_INDEXES` is operator
188
+ // input), and re-summing would make each insert O(n²) in exactly the many-repo daemon this
189
+ // budget was written for.
190
+ let total = cachedBytes();
191
+ while (indexCache.size > 1 && (indexCache.size > MAX_CACHED_INDEXES || total > budget)) {
192
+ const oldest = indexCache.entries().next();
161
193
  if (oldest.done)
162
194
  break;
163
- indexCache.delete(oldest.value);
195
+ const [key, entry] = oldest.value;
196
+ total -= indexFootprintBytes(entry.index);
197
+ indexCache.delete(key);
164
198
  }
199
+ // `size > 1` above deliberately keeps the entry just inserted even when it alone exceeds the
200
+ // budget. Evicting it would mean re-reading the same index on the very next call and evicting
201
+ // it again — an unbounded reload loop that costs far more than the memory it reclaims. A repo
202
+ // bigger than the whole budget is a reason to raise CODESIFT_MAX_INDEX_CACHE_MB, not to stop
203
+ // caching it.
165
204
  }
166
205
  /**
167
206
  * Detach the two arrays callers actually touch.
@@ -177,6 +216,9 @@ function copyIndex(index) {
177
216
  }
178
217
  function invalidateIndexCache(dbPath) {
179
218
  indexCache.delete(dbPath);
219
+ // Our own writes do not move `data_version`, so the summary must be dropped explicitly too —
220
+ // otherwise a save would leave `index_status` reporting the pre-write counts indefinitely.
221
+ summaryCache.delete(dbPath);
180
222
  }
181
223
  export function resetIndexCacheForTesting() {
182
224
  indexCache.clear();
@@ -184,6 +226,80 @@ export function resetIndexCacheForTesting() {
184
226
  export function getIndexCacheSizeForTesting() {
185
227
  return indexCache.size;
186
228
  }
229
+ export function getIndexCacheBytesForTesting() {
230
+ return cachedBytes();
231
+ }
232
+ /**
233
+ * Read an index's files and metadata WITHOUT constructing its symbols (ADR-004 stage 2).
234
+ *
235
+ * On the SQLite backend this skips the object graph entirely. On JSON there is nothing to skip —
236
+ * the format forces a whole-document parse — so this is parity, not a speedup, and it exists so
237
+ * callers can be written once against the narrow shape rather than branching on the backend.
238
+ */
239
+ export async function loadIndexSummary(indexPath) {
240
+ if ((await resolveIndexBackend()) === "sqlite") {
241
+ const dbPath = sqlitePathFor(indexPath);
242
+ await ensureSqliteMigrated(indexPath, dbPath);
243
+ // Cached on the same `data_version` signal as the full index. Without this a repo whose only
244
+ // traffic is `index_status` re-opened a connection and re-read the whole files table on every
245
+ // call, while its `getCodeIndex` sibling was served from memory — an asymmetry with no reason
246
+ // behind it. A summary is small (3 MB against 349 MB on the measured index), so this is not
247
+ // budgeted against `CODESIFT_MAX_INDEX_CACHE_MB`; it is bounded by entry count instead.
248
+ const dataVersion = await getDataVersion(dbPath);
249
+ const cached = summaryCache.get(dbPath);
250
+ if (cached && cached.dataVersion === dataVersion) {
251
+ summaryCache.delete(dbPath);
252
+ summaryCache.set(dbPath, cached); // move to the recent end (LRU, as in cacheIndex)
253
+ return copySummary(cached.summary);
254
+ }
255
+ const summary = await loadIndexSummarySqlite(dbPath);
256
+ if (summary === null)
257
+ return null;
258
+ summaryCache.set(dbPath, { summary, dataVersion });
259
+ while (summaryCache.size > MAX_CACHED_SUMMARIES) {
260
+ const oldest = summaryCache.keys().next();
261
+ if (oldest.done)
262
+ break;
263
+ summaryCache.delete(oldest.value);
264
+ }
265
+ // Copy on the miss path too, for the same reason `readIndex` does: handing back the stored
266
+ // object lets the first caller mutate the entry every later reader is about to be given.
267
+ return copySummary(summary);
268
+ }
269
+ warnIfRollbackIsStale(indexPath);
270
+ const index = await loadJsonIndex(indexPath);
271
+ return index === null ? null : summariseIndex(index);
272
+ }
273
+ /**
274
+ * Project a fully-loaded index onto the narrow shape, dropping the symbols array.
275
+ *
276
+ * `files` is COPIED, not aliased. This function's main caller projects an index held in the
277
+ * `codeIndexes` cache, so handing back the live array would let one caller's `sort`/`splice`
278
+ * rewrite what every later reader is given — the exact boundary `copyIndex` above exists to
279
+ * defend, reached by a different route. `workspaces` is copied for the same reason.
280
+ */
281
+ export function summariseIndex(index) {
282
+ const summary = {
283
+ repo: index.repo,
284
+ root: index.root,
285
+ files: index.files === undefined ? [] : [...index.files],
286
+ created_at: index.created_at,
287
+ updated_at: index.updated_at,
288
+ symbol_count: index.symbol_count,
289
+ file_count: index.file_count,
290
+ };
291
+ if (index.extractor_version !== undefined)
292
+ summary.extractor_version = index.extractor_version;
293
+ if (index.workspaces !== undefined)
294
+ summary.workspaces = [...index.workspaces];
295
+ // `files` is required on CodeIndex, so the guard above is unreachable through the typed path —
296
+ // but this projects objects that also arrive from JSON on disk, where nothing enforces the type,
297
+ // and the cache-hit call site sits outside its caller's try/catch. A throw there would surface as
298
+ // a crash on a status call, which is a worse answer than an empty file list.
299
+ if (index.lossy_migration === true)
300
+ summary.lossy_migration = true;
301
+ return summary;
302
+ }
187
303
  /** Backend-agnostic read, without version enforcement. */
188
304
  async function readIndex(indexPath) {
189
305
  if ((await resolveIndexBackend()) === "sqlite") {
@@ -292,9 +408,6 @@ async function loadJsonIndex(indexPath) {
292
408
  return null; // malformed JSON is a rebuildable index, not a storage fault
293
409
  }
294
410
  }
295
- /** All languages whose stored `extractor_version` entry does not match
296
- * `currentVersions`, applying the same tolerances as `loadIndexOrStale`
297
- * (newly added keys with no files in that language are skipped). */
298
411
  export function collectExtractorVersionMismatches(index, currentVersions) {
299
412
  const stored = index.extractor_version ?? {};
300
413
  const storedKeys = Object.keys(stored);
@@ -1 +1 @@
1
- {"version":3,"file":"index-store.js","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-store.js","sourceRoot":"","sources":["../../src/storage/index-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAa1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AA2BD;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,GACjG,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAAC,CA6C1D;AA+BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQpD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAa1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AA2BD;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,GACjG,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAalB;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAAC,CA6C1D;AA+BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASpD"}
@@ -1,5 +1,5 @@
1
1
  import { readFile } from "node:fs/promises";
2
- import { readFileSync, existsSync } from "node:fs";
2
+ import { readFileSync, existsSync, statSync } from "node:fs";
3
3
  import { basename, isAbsolute, join, resolve, sep } from "node:path";
4
4
  import { atomicWriteFile } from "./_shared.js";
5
5
  /**
@@ -215,6 +215,17 @@ function isAncestorOrEqual(ancestor, descendant) {
215
215
  * through silently to the next step — derivation must never throw.
216
216
  */
217
217
  export function getRepoName(repoRoot) {
218
+ const worktree = linkedWorktree(repoRoot);
219
+ // Base name from the MAIN checkout, not from the worktree: a linked worktree has no
220
+ // `.git/config` of its own (the config lives in the main repo), so deriving locally would fall
221
+ // through to the worktree's own basename and every worktree of one repo would get an unrelated
222
+ // name. Taking the base from the main checkout keeps them grouped under one prefix and differing
223
+ // only by the suffix — which is what makes the set readable in `list_repos`.
224
+ if (worktree)
225
+ return `${baseRepoName(worktree.mainRoot)}@${worktree.name}`;
226
+ return baseRepoName(repoRoot);
227
+ }
228
+ function baseRepoName(repoRoot) {
218
229
  const override = readNameOverride(repoRoot);
219
230
  if (override)
220
231
  return override;
@@ -223,6 +234,58 @@ export function getRepoName(repoRoot) {
223
234
  return `local/${fromGit}`;
224
235
  return `local/${basename(repoRoot)}`;
225
236
  }
237
+ /**
238
+ * The git worktree identifier when `repoRoot` is a LINKED worktree, else null.
239
+ *
240
+ * Every one of the three name sources above collapses a repo's worktrees onto a single name, and
241
+ * the registry is keyed by name — so the last one indexed silently evicts the rest. Measured on
242
+ * this machine: `tgm-survey-platform` has **36 worktrees**, all carrying the same TRACKED
243
+ * `.codesift.json` (`{"name":"tgm-survey-platform"}`), so 35 registry entries were being
244
+ * overwritten. The override file is documented as the escape hatch FOR collisions; committing it
245
+ * makes it the cause of one, because git checks it out into every worktree.
246
+ *
247
+ * `git remote.origin.url` collapses them for the same reason (worktrees share the remote), and
248
+ * even the basename fallback collides whenever two worktrees are named alike under different
249
+ * parents.
250
+ *
251
+ * This is the H19 hazard as a persistent condition rather than a transient one: an agent working
252
+ * in one worktree resolves the repo by name and gets whichever tree registered last. Disambiguating
253
+ * here fixes all three sources at once, because it is applied to the result rather than to any of
254
+ * them.
255
+ *
256
+ * Detection is the presence of a `.git` FILE (linked worktrees get a file containing
257
+ * `gitdir: …/.git/worktrees/<name>`; a main checkout gets a directory). The trailing segment is
258
+ * git's own worktree name, which git already guarantees unique within the repository — safer than
259
+ * the directory basename, which is not.
260
+ */
261
+ function linkedWorktree(repoRoot) {
262
+ const dotGit = join(repoRoot, ".git");
263
+ try {
264
+ if (!statSync(dotGit).isFile())
265
+ return null; // main checkout, or no git at all
266
+ const pointer = readFileSync(dotGit, "utf-8").trim();
267
+ const match = pointer.match(/^gitdir:\s*(.+)$/m);
268
+ if (!match?.[1])
269
+ return null;
270
+ const raw = match[1].trim().replace(/[/\\]+$/, "");
271
+ // `gitdir:` is normally absolute but git permits a relative pointer.
272
+ const gitdir = isAbsolute(raw) ? raw : resolve(repoRoot, raw);
273
+ // Only a worktree pointer qualifies. Submodules also use a `.git` file, and their gitdir
274
+ // points at `…/.git/modules/<name>` — a submodule is a different repository with its own
275
+ // remote, so it already gets a distinct name and must not be suffixed onto its parent's.
276
+ const split = gitdir.split(/[/\\]\.git[/\\]worktrees[/\\]/);
277
+ if (split.length !== 2)
278
+ return null;
279
+ const mainRoot = split[0];
280
+ const name = split[1]?.split(/[/\\]/)[0];
281
+ if (!mainRoot || !name)
282
+ return null;
283
+ return { name, mainRoot };
284
+ }
285
+ catch {
286
+ return null; // derivation must never throw
287
+ }
288
+ }
226
289
  function readNameOverride(repoRoot) {
227
290
  const overridePath = join(repoRoot, ".codesift.json");
228
291
  if (!existsSync(overridePath))
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { CodeSymbol, FileEntry } from "../../types.js";
2
+ import { type IndexSummary } from "./meta.js";
3
+ /**
4
+ * One file's `mtime_ms`, without materialising the index.
5
+ *
6
+ * `file-indexer.ts` used to parse the whole blob for exactly this value and then
7
+ * `saveIncremental` parsed it a second time — two full parses of 262 MB to decide whether a
8
+ * 40-line file had changed.
9
+ */
10
+ export declare function getFileMtimeSqlite(dbPath: string, filePath: string): Promise<number | undefined>;
11
+ /**
12
+ * Read an index without constructing its symbols.
13
+ *
14
+ * Measured on the real tgm-survey-platform index (240,137 symbols): a full load costs ~1.0 s and
15
+ * 349 MB of resident heap, essentially all of it building symbol objects. Tools that never touch
16
+ * `index.symbols` — `index_status` is the clearest, it reports counts it reads from metadata — paid
17
+ * that in full for nothing.
18
+ */
19
+ export declare function loadIndexSummarySqlite(dbPath: string): Promise<IndexSummary | null>;
20
+ /** One file's `files[]` entry, without materialising the index. */
21
+ export declare function getFileEntrySqlite(dbPath: string, filePath: string): Promise<FileEntry | undefined>;
22
+ /** Replace one file's symbols (and optionally its files[] entry) in a single transaction. */
23
+ export declare function saveIncrementalSqlite(dbPath: string, updatedFile: string, newSymbols: CodeSymbol[], fileEntry?: FileEntry): Promise<void>;
24
+ /** Drop a deleted file's symbols and its files[] entry. */
25
+ export declare function removeFileFromIndexSqlite(dbPath: string, deletedFile: string): Promise<void>;
26
+ /** All symbols for one file — lets per-file tools skip the whole-index load. */
27
+ export declare function getSymbolsForFileSqlite(dbPath: string, filePath: string): Promise<CodeSymbol[]>;
28
+ /**
29
+ * Cross-process change counter. SQLite bumps `data_version` when *another* connection
30
+ * commits, which is the invalidation signal a plain JSON file never had — and the reason an
31
+ * in-memory index cache becomes safe here despite the hook writing from its own process.
32
+ */
33
+ export declare function getDataVersion(dbPath: string): Promise<number>;
34
+ //# sourceMappingURL=accessors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/accessors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS5D,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAqC9D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAwDzF;AAED,mEAAmE;AACnE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQhC;AAED,6FAA6F;AAC7F,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EAAE,EACxB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,2DAA2D;AAC3D,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,gFAAgF;AAChF,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,CAAC,CAUvB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpE"}
@@ -0,0 +1,178 @@
1
+ import { openIndexDb, openReadConnection, readMetaValue, rollbackQuietly, writeMetaValue, } from "./connection.js";
2
+ import { rethrowOperational } from "./errors.js";
3
+ import { readMetaExtras } from "./meta.js";
4
+ import { INSERT_FILE_SQL, INSERT_SYMBOL_SQL, fileEntryToRow, rowToFileEntry, rowToSymbol, symbolToRow, } from "./rows.js";
5
+ /**
6
+ * Narrow accessors — the reason this backend exists.
7
+ *
8
+ * Every function here answers a question WITHOUT materialising the index. Under the JSON backend
9
+ * each of these cost a full parse of the whole repo's symbols; that is the cost ADR-003 set out to
10
+ * remove and ADR-004 stage 2 is still working through call site by call site.
11
+ */
12
+ /**
13
+ * Run a read against an already-open index, classifying any storage fault it surfaces.
14
+ *
15
+ * `openIndexDb` classifies what fails at open time, but corruption and I/O faults frequently only
16
+ * surface on the first page actually touched — and these accessors are the fast paths precisely
17
+ * because they touch one row late rather than the whole table early. Without this, a caller using
18
+ * `isIndexStorageError` (rather than `classifyStorageError`) does not recognise the fault, and the
19
+ * read falls into the "unexpected error" branch that reports an unindexed repo.
20
+ */
21
+ function classifyingRead(dbPath, read) {
22
+ try {
23
+ return read();
24
+ }
25
+ catch (err) {
26
+ rethrowOperational(err, dbPath);
27
+ }
28
+ }
29
+ /**
30
+ * One file's `mtime_ms`, without materialising the index.
31
+ *
32
+ * `file-indexer.ts` used to parse the whole blob for exactly this value and then
33
+ * `saveIncremental` parsed it a second time — two full parses of 262 MB to decide whether a
34
+ * 40-line file had changed.
35
+ */
36
+ export async function getFileMtimeSqlite(dbPath, filePath) {
37
+ const db = await openIndexDb(dbPath);
38
+ return classifyingRead(dbPath, () => {
39
+ const row = db.prepare("SELECT mtime_ms FROM files WHERE path = ?").get(filePath);
40
+ return row?.mtime_ms ?? undefined;
41
+ });
42
+ }
43
+ /**
44
+ * Read an index without constructing its symbols.
45
+ *
46
+ * Measured on the real tgm-survey-platform index (240,137 symbols): a full load costs ~1.0 s and
47
+ * 349 MB of resident heap, essentially all of it building symbol objects. Tools that never touch
48
+ * `index.symbols` — `index_status` is the clearest, it reports counts it reads from metadata — paid
49
+ * that in full for nothing.
50
+ */
51
+ export async function loadIndexSummarySqlite(dbPath) {
52
+ await openIndexDb(dbPath);
53
+ let reader;
54
+ let out = null;
55
+ try {
56
+ // Same one-transaction rule as `loadIndexSqlite`: files and meta must describe one instant,
57
+ // or the summary reports a file list from one revision with counts from another.
58
+ // Bound to a `const` as well as to `reader`: the closure below outlives the narrowing of the
59
+ // `let`, so reading it through `reader` needed an `as` cast that asserted away an `undefined`
60
+ // the compiler was right to track. The local carries the non-optional type honestly.
61
+ const snapshot = await openReadConnection(dbPath);
62
+ reader = snapshot;
63
+ snapshot.exec("BEGIN");
64
+ try {
65
+ const meta = (key) => readMetaValue(snapshot, key);
66
+ const repo = meta("repo");
67
+ const root = meta("root");
68
+ if (repo === undefined || root === undefined) {
69
+ snapshot.exec("COMMIT");
70
+ return null; // genuinely empty — not a fault
71
+ }
72
+ // ORDER BY rowid, matching `readTablePaged`'s keyset walk. Without it the two SQLite read
73
+ // paths could hand back the same files in different orders, so a caller comparing a summary
74
+ // against a full load would see a difference that is not in the data.
75
+ const files = snapshot.prepare("SELECT * FROM files ORDER BY rowid").all().map(rowToFileEntry);
76
+ const counted = snapshot.prepare("SELECT COUNT(*) AS n FROM symbols").get();
77
+ const summary = {
78
+ repo,
79
+ root,
80
+ files,
81
+ created_at: Number(meta("created_at") ?? 0),
82
+ updated_at: Number(meta("updated_at") ?? 0),
83
+ symbol_count: Number(counted?.n ?? 0),
84
+ file_count: files.length,
85
+ };
86
+ Object.assign(summary, readMetaExtras(meta));
87
+ snapshot.exec("COMMIT");
88
+ out = summary;
89
+ }
90
+ catch (err) {
91
+ rollbackQuietly(snapshot);
92
+ throw err;
93
+ }
94
+ }
95
+ catch (err) {
96
+ rethrowOperational(err, dbPath);
97
+ }
98
+ finally {
99
+ try {
100
+ reader?.close();
101
+ }
102
+ catch { /* best-effort */ }
103
+ }
104
+ return out;
105
+ }
106
+ /** One file's `files[]` entry, without materialising the index. */
107
+ export async function getFileEntrySqlite(dbPath, filePath) {
108
+ const db = await openIndexDb(dbPath);
109
+ return classifyingRead(dbPath, () => {
110
+ const row = db.prepare("SELECT * FROM files WHERE path = ?").get(filePath);
111
+ return row ? rowToFileEntry(row) : undefined;
112
+ });
113
+ }
114
+ /** Replace one file's symbols (and optionally its files[] entry) in a single transaction. */
115
+ export async function saveIncrementalSqlite(dbPath, updatedFile, newSymbols, fileEntry) {
116
+ const db = await openIndexDb(dbPath);
117
+ if (readMetaValue(db, "repo") === undefined) {
118
+ throw new Error(`Cannot incrementally update: index not found at ${dbPath}`);
119
+ }
120
+ db.exec("BEGIN");
121
+ try {
122
+ db.prepare("DELETE FROM symbols WHERE file = ?").run(updatedFile);
123
+ const insSym = db.prepare(INSERT_SYMBOL_SQL);
124
+ for (const sym of newSymbols)
125
+ insSym.run(...symbolToRow(sym));
126
+ if (fileEntry)
127
+ db.prepare(INSERT_FILE_SQL).run(...fileEntryToRow(fileEntry));
128
+ writeMetaValue(db, "updated_at", String(Date.now()));
129
+ db.exec("COMMIT");
130
+ }
131
+ catch (err) {
132
+ rollbackQuietly(db);
133
+ rethrowOperational(err, dbPath);
134
+ }
135
+ }
136
+ /** Drop a deleted file's symbols and its files[] entry. */
137
+ export async function removeFileFromIndexSqlite(dbPath, deletedFile) {
138
+ const db = await openIndexDb(dbPath);
139
+ if (readMetaValue(db, "repo") === undefined)
140
+ return; // nothing to remove
141
+ db.exec("BEGIN");
142
+ try {
143
+ db.prepare("DELETE FROM symbols WHERE file = ?").run(deletedFile);
144
+ db.prepare("DELETE FROM files WHERE path = ?").run(deletedFile);
145
+ writeMetaValue(db, "updated_at", String(Date.now()));
146
+ db.exec("COMMIT");
147
+ }
148
+ catch (err) {
149
+ rollbackQuietly(db);
150
+ rethrowOperational(err, dbPath);
151
+ }
152
+ }
153
+ /** All symbols for one file — lets per-file tools skip the whole-index load. */
154
+ export async function getSymbolsForFileSqlite(dbPath, filePath) {
155
+ const db = await openIndexDb(dbPath);
156
+ return classifyingRead(dbPath, () => {
157
+ const repo = readMetaValue(db, "repo");
158
+ if (repo === undefined)
159
+ return [];
160
+ const rows = db
161
+ .prepare("SELECT * FROM symbols WHERE file = ?")
162
+ .all(filePath);
163
+ return rows.map((row) => rowToSymbol(row, repo));
164
+ });
165
+ }
166
+ /**
167
+ * Cross-process change counter. SQLite bumps `data_version` when *another* connection
168
+ * commits, which is the invalidation signal a plain JSON file never had — and the reason an
169
+ * in-memory index cache becomes safe here despite the hook writing from its own process.
170
+ */
171
+ export async function getDataVersion(dbPath) {
172
+ const db = await openIndexDb(dbPath);
173
+ return classifyingRead(dbPath, () => {
174
+ const row = db.prepare("PRAGMA data_version").get();
175
+ return row.data_version;
176
+ });
177
+ }
178
+ //# sourceMappingURL=accessors.js.map