@maadb/core 0.7.18 → 0.8.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 (100) hide show
  1. package/README.md +17 -3
  2. package/dist/backend/adapter.d.ts +20 -1
  3. package/dist/backend/adapter.d.ts.map +1 -1
  4. package/dist/backend/sqlite/index.d.ts +24 -1
  5. package/dist/backend/sqlite/index.d.ts.map +1 -1
  6. package/dist/backend/sqlite/index.js +96 -8
  7. package/dist/backend/sqlite/index.js.map +1 -1
  8. package/dist/backend/sqlite/schema.d.ts +1 -1
  9. package/dist/backend/sqlite/schema.d.ts.map +1 -1
  10. package/dist/backend/sqlite/schema.js +6 -1
  11. package/dist/backend/sqlite/schema.js.map +1 -1
  12. package/dist/backend/sqlite/semantic-store.d.ts +51 -0
  13. package/dist/backend/sqlite/semantic-store.d.ts.map +1 -0
  14. package/dist/backend/sqlite/semantic-store.js +284 -0
  15. package/dist/backend/sqlite/semantic-store.js.map +1 -0
  16. package/dist/cli/commands/maintain.d.ts.map +1 -1
  17. package/dist/cli/commands/maintain.js +18 -2
  18. package/dist/cli/commands/maintain.js.map +1 -1
  19. package/dist/cli/commands/read.d.ts +1 -0
  20. package/dist/cli/commands/read.d.ts.map +1 -1
  21. package/dist/cli/commands/read.js +52 -0
  22. package/dist/cli/commands/read.js.map +1 -1
  23. package/dist/cli/index.js +6 -2
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/engine/context.d.ts +12 -0
  26. package/dist/engine/context.d.ts.map +1 -1
  27. package/dist/engine/context.js.map +1 -1
  28. package/dist/engine/helpers.d.ts +11 -1
  29. package/dist/engine/helpers.d.ts.map +1 -1
  30. package/dist/engine/helpers.js +20 -7
  31. package/dist/engine/helpers.js.map +1 -1
  32. package/dist/engine/index.d.ts +40 -0
  33. package/dist/engine/index.d.ts.map +1 -1
  34. package/dist/engine/index.js +115 -9
  35. package/dist/engine/index.js.map +1 -1
  36. package/dist/engine/indexing.d.ts +3 -1
  37. package/dist/engine/indexing.d.ts.map +1 -1
  38. package/dist/engine/indexing.js +208 -30
  39. package/dist/engine/indexing.js.map +1 -1
  40. package/dist/engine/reads.d.ts.map +1 -1
  41. package/dist/engine/reads.js +5 -2
  42. package/dist/engine/reads.js.map +1 -1
  43. package/dist/engine/semantic/config.d.ts +23 -0
  44. package/dist/engine/semantic/config.d.ts.map +1 -0
  45. package/dist/engine/semantic/config.js +41 -0
  46. package/dist/engine/semantic/config.js.map +1 -0
  47. package/dist/engine/semantic/indexer.d.ts +21 -0
  48. package/dist/engine/semantic/indexer.d.ts.map +1 -0
  49. package/dist/engine/semantic/indexer.js +91 -0
  50. package/dist/engine/semantic/indexer.js.map +1 -0
  51. package/dist/engine/semantic/provider.d.ts +10 -0
  52. package/dist/engine/semantic/provider.d.ts.map +1 -0
  53. package/dist/engine/semantic/provider.js +52 -0
  54. package/dist/engine/semantic/provider.js.map +1 -0
  55. package/dist/engine/semantic/providers/fake.d.ts +9 -0
  56. package/dist/engine/semantic/providers/fake.d.ts.map +1 -0
  57. package/dist/engine/semantic/providers/fake.js +54 -0
  58. package/dist/engine/semantic/providers/fake.js.map +1 -0
  59. package/dist/engine/semantic/providers/openai.d.ts +23 -0
  60. package/dist/engine/semantic/providers/openai.d.ts.map +1 -0
  61. package/dist/engine/semantic/providers/openai.js +103 -0
  62. package/dist/engine/semantic/providers/openai.js.map +1 -0
  63. package/dist/engine/semantic/rrf.d.ts +9 -0
  64. package/dist/engine/semantic/rrf.d.ts.map +1 -0
  65. package/dist/engine/semantic/rrf.js +29 -0
  66. package/dist/engine/semantic/rrf.js.map +1 -0
  67. package/dist/engine/semantic/search.d.ts +6 -0
  68. package/dist/engine/semantic/search.d.ts.map +1 -0
  69. package/dist/engine/semantic/search.js +202 -0
  70. package/dist/engine/semantic/search.js.map +1 -0
  71. package/dist/engine/semantic/types.d.ts +138 -0
  72. package/dist/engine/semantic/types.d.ts.map +1 -0
  73. package/dist/engine/semantic/types.js +7 -0
  74. package/dist/engine/semantic/types.js.map +1 -0
  75. package/dist/engine/types.d.ts +20 -0
  76. package/dist/engine/types.d.ts.map +1 -1
  77. package/dist/engine/writes.d.ts.map +1 -1
  78. package/dist/engine/writes.js +5 -0
  79. package/dist/engine/writes.js.map +1 -1
  80. package/dist/errors.d.ts +1 -1
  81. package/dist/errors.d.ts.map +1 -1
  82. package/dist/errors.js.map +1 -1
  83. package/dist/mcp/kinds.d.ts.map +1 -1
  84. package/dist/mcp/kinds.js +1 -0
  85. package/dist/mcp/kinds.js.map +1 -1
  86. package/dist/mcp/roles.js +1 -1
  87. package/dist/mcp/roles.js.map +1 -1
  88. package/dist/mcp/tools/maintain.d.ts.map +1 -1
  89. package/dist/mcp/tools/maintain.js +21 -4
  90. package/dist/mcp/tools/maintain.js.map +1 -1
  91. package/dist/mcp/tools/read.d.ts.map +1 -1
  92. package/dist/mcp/tools/read.js +35 -1
  93. package/dist/mcp/tools/read.js.map +1 -1
  94. package/dist/parser/index.d.ts +14 -1
  95. package/dist/parser/index.d.ts.map +1 -1
  96. package/dist/parser/index.js +18 -0
  97. package/dist/parser/index.js.map +1 -1
  98. package/dist/types.d.ts +22 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/package.json +6 -3
@@ -1,14 +1,14 @@
1
1
  // ============================================================================
2
2
  // Indexing — indexAll, indexFile, processDocument, reindex
3
3
  // ============================================================================
4
- import { existsSync, statSync } from 'node:fs';
5
- import { readFile } from 'node:fs/promises';
4
+ import { existsSync } from 'node:fs';
5
+ import { readFile, stat } from 'node:fs/promises';
6
6
  import { createHash } from 'node:crypto';
7
7
  import path from 'node:path';
8
8
  import { ok, err, singleErr } from '../errors.js';
9
9
  import { logger } from './logger.js';
10
10
  import { docId as toDocId, docType as toDocType, filePath as toFilePath, } from '../types.js';
11
- import { parseDocument } from '../parser/index.js';
11
+ import { parseDocument, parseDocumentFromContent } from '../parser/index.js';
12
12
  import { validateFrontmatter } from '../schema/index.js';
13
13
  import { extract } from '../extractor/index.js';
14
14
  import { collectMarkdownFiles, computeNumericValue, toCanonicalRelPath } from './helpers.js';
@@ -34,6 +34,7 @@ const SCHEMA_FP_KEY_PREFIX = 'schema_index_fp:';
34
34
  export async function indexAll(ctx, opts) {
35
35
  const force = opts?.force ?? false;
36
36
  const result = { scanned: 0, indexed: 0, skipped: 0, errors: [] };
37
+ const warnings = [];
37
38
  // 0.7.4 — Detect schema-index changes per type. Types whose fingerprint
38
39
  // changed (or was never recorded) join `dirtyTypes`, which overrides the
39
40
  // file-hash skip path below so docs of those types reindex even if their
@@ -54,15 +55,51 @@ export async function indexAll(ctx, opts) {
54
55
  if (stored !== fp)
55
56
  dirtyTypes.add(typeName);
56
57
  }
57
- const storedHashes = force ? new Map() : ctx.backend.getAllFileHashes();
58
+ // 0.8.1 types with at least one per-doc index error this run. Their
59
+ // schema fingerprints are NOT persisted below, so a dirty type whose forced
60
+ // rebuild partially failed stays dirty and retries on the next pass
61
+ // (previously the fingerprint persisted anyway and the failed docs
62
+ // hash-skipped forever).
63
+ const typesWithErrors = new Set();
64
+ // 0.8.1 — single snapshot serves both the skip-by-hash lookup and the
65
+ // stale-row sweep (previously fetched twice — two full-table scans, and
66
+ // the force path threw the first away).
67
+ const storedHashes = ctx.backend.getAllFileHashes();
58
68
  const filesOnDisk = new Set();
69
+ const byteCap = maxDocBytes();
70
+ const docCountByType = ctx.backend.getStats().documentCountByType;
59
71
  for (const [typeName, regType] of ctx.registry.types) {
60
72
  const isTypeDirty = dirtyTypes.has(typeName);
61
73
  const dirPath = path.join(ctx.projectRoot, regType.path);
62
- if (!existsSync(dirPath))
74
+ if (!existsSync(dirPath)) {
75
+ // 0.8.1 — a missing registered path is only noise for a type with no
76
+ // docs yet; with indexed rows it is the exact registry-mismatch shape
77
+ // that made the sweep prune valid docs (kebab vs underscore dir).
78
+ const indexedCount = docCountByType[typeName] ?? 0;
79
+ if (indexedCount > 0) {
80
+ warnings.push(`registered path "${regType.path}" for type "${typeName}" does not exist on disk, ` +
81
+ `but the index holds ${indexedCount} doc(s) of this type — check the path mapping in _registry/object_types.yaml`);
82
+ }
83
+ continue;
84
+ }
85
+ const collected = await collectMarkdownFiles(dirPath);
86
+ if (collected.usedFallback) {
87
+ warnings.push(`glob scan failed under "${regType.path}" — recursive readdir fallback used; ` +
88
+ `if this repeats, check the Node runtime's fs.promises.glob support`);
89
+ }
90
+ // 0.8.1 — empty registered dir while the index holds rows of the type:
91
+ // the registry points somewhere the docs aren't (the registry loader
92
+ // creates missing dirs at load, so a path mismatch usually presents as
93
+ // an empty dir here rather than a missing one).
94
+ if (collected.files.length === 0) {
95
+ const indexedCount = docCountByType[typeName] ?? 0;
96
+ if (indexedCount > 0) {
97
+ warnings.push(`registered path "${regType.path}" for type "${typeName}" contains no markdown files, ` +
98
+ `but the index holds ${indexedCount} doc(s) of this type — check the path mapping in _registry/object_types.yaml`);
99
+ }
63
100
  continue;
64
- const files = await collectMarkdownFiles(dirPath);
65
- for (const file of files) {
101
+ }
102
+ for (const file of collected.files) {
66
103
  result.scanned++;
67
104
  // 0.7.12 — canonical (forward-slash) form for both the skip-by-hash
68
105
  // lookup against getAllFileHashes (which now stores '/' post-0.7.12)
@@ -70,10 +107,30 @@ export async function indexAll(ctx, opts) {
70
107
  const fp = toFilePath(toCanonicalRelPath(ctx.projectRoot, file));
71
108
  const absPath = toFilePath(file);
72
109
  filesOnDisk.add(fp);
110
+ // 0.8.1 — stat before read: an over-cap file must not be read at all
111
+ // (reading it just to hash-skip defeats the byte backstop), and reading
112
+ // once here lets indexFile parse from content instead of re-reading.
113
+ let raw;
114
+ let overCap = false;
115
+ if (byteCap > 0) {
116
+ try {
117
+ overCap = (await stat(file)).size > byteCap;
118
+ }
119
+ catch {
120
+ // stat failure falls through; indexFile surfaces the real error.
121
+ }
122
+ }
123
+ if (!overCap) {
124
+ try {
125
+ raw = await readFile(file, 'utf-8');
126
+ }
127
+ catch {
128
+ // read failure falls through; indexFile surfaces FILE_READ_ERROR.
129
+ }
130
+ }
73
131
  // Skip-by-hash only applies when neither --force nor a schema-fingerprint
74
132
  // change is in play. Otherwise we rebuild even if disk content matches.
75
- if (!force && !isTypeDirty) {
76
- const raw = await readFile(file, 'utf-8');
133
+ if (raw !== undefined && !force && !isTypeDirty) {
77
134
  const currentHash = createHash('sha256').update(raw).digest('hex');
78
135
  const storedHash = storedHashes.get(fp);
79
136
  if (storedHash === currentHash) {
@@ -81,7 +138,7 @@ export async function indexAll(ctx, opts) {
81
138
  continue;
82
139
  }
83
140
  }
84
- const indexResult = await indexFile(ctx, absPath);
141
+ const indexResult = await indexFile(ctx, absPath, raw !== undefined ? { raw } : undefined);
85
142
  if (indexResult.ok) {
86
143
  result.indexed++;
87
144
  if (indexResult.value.annotationsTruncated) {
@@ -89,29 +146,58 @@ export async function indexAll(ctx, opts) {
89
146
  }
90
147
  }
91
148
  else {
149
+ typesWithErrors.add(typeName);
92
150
  result.errors.push(...indexResult.errors);
93
151
  }
94
152
  }
95
153
  }
96
- // Remove stale backend records
97
- const allStoredPaths = ctx.backend.getAllFileHashes();
98
- for (const [storedPath] of allStoredPaths) {
99
- if (!filesOnDisk.has(storedPath)) {
100
- const doc = ctx.backend.getDocumentByPath(storedPath);
101
- if (doc) {
102
- ctx.backend.removeDocument(doc.docId);
103
- }
154
+ // Remove stale backend records — but never a row whose file still exists on
155
+ // disk. A stale row with a live file means the file sits outside every
156
+ // scanned registered path (registry path mismatch, glob failure, moved
157
+ // directory): pruning it silently orphans valid data, so keep the row and
158
+ // warn instead. Only rows whose files are genuinely gone are removed.
159
+ let pruned = 0;
160
+ const keptByType = new Map();
161
+ for (const [storedPath] of storedHashes) {
162
+ if (filesOnDisk.has(storedPath))
163
+ continue;
164
+ const doc = ctx.backend.getDocumentByPath(storedPath);
165
+ if (!doc)
166
+ continue;
167
+ // Row already re-pointed at a scanned file this run (separator/case
168
+ // migration of a legacy path) — nothing stale about it.
169
+ if (filesOnDisk.has(doc.filePath))
170
+ continue;
171
+ if (existsSync(path.join(ctx.projectRoot, storedPath))) {
172
+ keptByType.set(doc.docType, (keptByType.get(doc.docType) ?? 0) + 1);
173
+ continue;
104
174
  }
175
+ ctx.backend.removeDocument(doc.docId);
176
+ pruned++;
177
+ }
178
+ for (const [typeName, count] of keptByType) {
179
+ const regPath = ctx.registry.types.get(toDocType(typeName))?.path ?? '(unregistered)';
180
+ warnings.push(`kept ${count} index row(s) of type "${typeName}" whose files exist on disk but were not scanned ` +
181
+ `(registered path: "${regPath}") — not pruned; check the path mapping in _registry/object_types.yaml`);
105
182
  }
106
183
  // 0.7.4 — Persist current fingerprints AFTER successful rebuild so a
107
184
  // crash mid-reindex leaves the prior fingerprint in place; next run sees
108
- // the diff again and retries.
185
+ // the diff again and retries. 0.8.1 — same retry contract for per-doc
186
+ // failures: types that errored keep their old fingerprint (stay dirty).
109
187
  for (const [typeName, fp] of currentFingerprints) {
188
+ if (typesWithErrors.has(typeName))
189
+ continue;
110
190
  ctx.backend.setMeta(`${SCHEMA_FP_KEY_PREFIX}${typeName}`, fp);
111
191
  }
112
192
  if (dirtyTypes.size > 0) {
113
193
  result.rebuiltTypes = [...dirtyTypes].sort();
114
194
  }
195
+ if (pruned > 0)
196
+ result.pruned = pruned;
197
+ if (warnings.length > 0) {
198
+ result.warnings = warnings;
199
+ logger.degraded('engine', 'index_scan_warnings', `indexAll completed with ${warnings.length} warning(s) — the registry and the on-disk layout disagree`, { warnings });
200
+ }
115
201
  // 0.7.17 — refresh planner statistics after a rebuild touched rows. Skipped
116
202
  // on a no-op pass (everything hash-skipped) so steady-state reindex polling
117
203
  // doesn't pay for an ANALYZE that would change nothing.
@@ -162,22 +248,38 @@ function maxDocAnnotations() {
162
248
  return DEFAULT_MAX_DOC_ANNOTATIONS;
163
249
  return n; // 0 = disabled
164
250
  }
165
- export async function indexFile(ctx, absolutePath) {
251
+ export async function indexFile(ctx, absolutePath, opts) {
166
252
  // Backstop: a stat is cheap, and reading + line-splitting a multi-hundred-MB
167
253
  // file is itself a heap risk before any extraction cap can apply. Skip those.
254
+ // 0.8.1 — when the caller already read the file (indexAll's single-read
255
+ // path), size the in-memory content instead of re-statting.
168
256
  const byteCap = maxDocBytes();
169
257
  if (byteCap > 0) {
170
258
  let sizeBytes = 0;
171
- try {
172
- sizeBytes = statSync(absolutePath).size;
259
+ if (opts?.raw !== undefined) {
260
+ sizeBytes = Buffer.byteLength(opts.raw, 'utf-8');
173
261
  }
174
- catch {
175
- // stat failure falls through to parseDocument, which surfaces the real
176
- // FILE_READ_ERROR with proper location info.
177
- sizeBytes = 0;
262
+ else {
263
+ try {
264
+ sizeBytes = (await stat(absolutePath)).size;
265
+ }
266
+ catch {
267
+ // stat failure falls through to parseDocument, which surfaces the real
268
+ // FILE_READ_ERROR with proper location info.
269
+ sizeBytes = 0;
270
+ }
178
271
  }
179
272
  if (sizeBytes > byteCap) {
180
- logger.degraded('engine', 'doc_too_large', `skipped oversized document (${sizeBytes} bytes > cap ${byteCap}); too large to read safely`, { file: absolutePath, sizeBytes, capBytes: byteCap });
273
+ // 0.8.1 a previously indexed doc that grew past the cap keeps serving
274
+ // its last indexed content: the row is deliberately retained (the doc
275
+ // stays findable) but flagged partial so the staleness is queryable
276
+ // instead of invisible.
277
+ const rel = toCanonicalRelPath(ctx.projectRoot, absolutePath);
278
+ const existingRow = ctx.backend.getDocumentByPath(toFilePath(rel));
279
+ if (existingRow)
280
+ ctx.backend.markDocumentStale(existingRow.docId);
281
+ logger.degraded('engine', 'doc_too_large', `skipped oversized document (${sizeBytes} bytes > cap ${byteCap}); too large to read safely` +
282
+ (existingRow ? '; existing index row retained at its last indexed content and flagged partial' : ''), { file: absolutePath, sizeBytes, capBytes: byteCap, staleRowRetained: existingRow !== null });
181
283
  return singleErr('DOC_TOO_LARGE', `Document ${absolutePath} is ${sizeBytes} bytes, over the ${byteCap}-byte read cap (MAAD_MAX_DOC_BYTES). Skipped to protect the engine; split the document or raise the cap with matching heap headroom.`, { file: absolutePath, line: 0, col: 0 }, { sizeBytes, capBytes: byteCap });
182
284
  }
183
285
  }
@@ -185,7 +287,14 @@ export async function indexFile(ctx, absolutePath) {
185
287
  // build an unbounded object/relationship set. The doc still indexes (record
186
288
  // + frontmatter + capped body) and stays findable.
187
289
  const annoCap = maxDocAnnotations();
188
- const parsed = await parseDocument(absolutePath, ctx.registry.subtypeMap, annoCap > 0 ? { maxAnnotations: annoCap } : undefined);
290
+ // 0.8.0 request per-block text only when semantic indexing is on, so a
291
+ // non-semantic parse pays nothing for the extra slicing.
292
+ const parseOpts = { includeBlockText: ctx.semanticEnabled };
293
+ if (annoCap > 0)
294
+ parseOpts.maxAnnotations = annoCap;
295
+ const parsed = opts?.raw !== undefined
296
+ ? parseDocumentFromContent(opts.raw, absolutePath, ctx.registry.subtypeMap, parseOpts)
297
+ : await parseDocument(absolutePath, ctx.registry.subtypeMap, parseOpts);
189
298
  if (!parsed.ok)
190
299
  return parsed;
191
300
  if (parsed.value.annotationsTruncated) {
@@ -223,6 +332,9 @@ export function processDocument(ctx, parsed) {
223
332
  name: fieldName,
224
333
  value,
225
334
  fieldType: fieldDef.type,
335
+ // 0.8.1 — carried through so list-of-number/amount items get real
336
+ // numeric index values (previously hardcoded to string → null).
337
+ itemType: fieldDef.itemType,
226
338
  role: fieldDef.role,
227
339
  indexed: fieldDef.index,
228
340
  };
@@ -243,6 +355,39 @@ export function processDocument(ctx, parsed) {
243
355
  // canonicalization; reuse it across all write-path sites.
244
356
  const relativePath = toCanonicalRelPath(ctx.projectRoot, parsed.filePath);
245
357
  const existing = ctx.backend.getDocument(bound.docId);
358
+ // 0.8.1 — duplicate-docId guard on the index path. Two live files sharing a
359
+ // doc_id previously collapsed silently: the second one scanned REPLACEd the
360
+ // first's row (registry-iteration order decided the winner) and the loser
361
+ // stayed on disk unindexed. The write path has always rejected this
362
+ // (writes.ts DUPLICATE_DOC_ID); the index path now does too. A row whose old
363
+ // file is gone is a legitimate move and falls through to the normal update.
364
+ // Paths compare in canonical forward-slash form (legacy pre-0.7.12 rows
365
+ // store backslash), case-insensitively on Windows/macOS where one on-disk
366
+ // file answers to both casings — either difference alone is the SAME file
367
+ // lazily migrating, not a collision.
368
+ if (existing) {
369
+ const caseFold = process.platform === 'win32' || process.platform === 'darwin';
370
+ const normalize = (p) => {
371
+ const canonical = p.replaceAll('\\', '/');
372
+ return caseFold ? canonical.toLowerCase() : canonical;
373
+ };
374
+ if (normalize(existing.filePath) !== normalize(relativePath)) {
375
+ const oldAbs = path.join(ctx.projectRoot, existing.filePath);
376
+ if (existsSync(oldAbs)) {
377
+ return singleErr('DUPLICATE_DOC_ID', `doc_id "${bound.docId}" is claimed by two files: "${existing.filePath}" (indexed) and "${relativePath}". ` +
378
+ `The indexed row was left unchanged; fix the duplicate doc_id in one of the files and reindex.`, { file: parsed.filePath, line: 0, col: 0 }, { indexedPath: existing.filePath, conflictingPath: relativePath });
379
+ }
380
+ }
381
+ }
382
+ // 0.8.1 — doc_id changed in place (same file, new id in frontmatter). The
383
+ // superseded row is removed explicitly and audibly — previously INSERT OR
384
+ // REPLACE resolved the file_path conflict by silently deleting it as a side
385
+ // effect (and could destroy an unrelated doc's row the same way).
386
+ const existingByPath = ctx.backend.getDocumentByPath(toFilePath(relativePath));
387
+ if (existingByPath && existingByPath.docId !== bound.docId) {
388
+ logger.info('engine', 'doc_id_changed_in_place', `doc_id at "${relativePath}" changed from "${existingByPath.docId}" to "${bound.docId}"; superseded index row removed`, { filePath: relativePath, oldDocId: existingByPath.docId, newDocId: bound.docId });
389
+ ctx.backend.removeDocument(existingByPath.docId);
390
+ }
246
391
  // Only bump version when file content actually changed — reindex of unchanged files preserves version
247
392
  const contentChanged = !existing || existing.fileHash !== parsed.fileHash;
248
393
  const version = existing
@@ -270,6 +415,10 @@ export function processDocument(ctx, parsed) {
270
415
  // invalid records instead of re-reading every file. `validation` was
271
416
  // computed above in mode 'index'.
272
417
  valid: validation.valid,
418
+ // 0.8.1 — persist the annotation-cap state so "which docs indexed with
419
+ // partial body objects" survives the run (previously only a transient
420
+ // IndexResult counter + a log line). Clean reindex clears it.
421
+ partial: parsed.annotationsTruncated === true,
273
422
  };
274
423
  const fieldIndex = [];
275
424
  for (const [name, field] of Object.entries(validatedFields)) {
@@ -283,7 +432,10 @@ export function processDocument(ctx, parsed) {
283
432
  fieldIndex.push({
284
433
  name,
285
434
  value: itemValue,
286
- numericValue: computeNumericValue(item, 'string'),
435
+ // 0.8.1 — use the list's item_type (was hardcoded 'string', so
436
+ // list-of-number/amount items always indexed numericValue null
437
+ // and never matched numeric range filters).
438
+ numericValue: computeNumericValue(item, field.itemType ?? 'string'),
287
439
  type: field.fieldType,
288
440
  });
289
441
  }
@@ -301,7 +453,33 @@ export function processDocument(ctx, parsed) {
301
453
  }
302
454
  }
303
455
  }
304
- ctx.backend.materializeDocument(docRecord, extraction.objects, extraction.relationships, parsed.blocks, fieldIndex);
456
+ // 0.8.0 — per-block text for the semantic index (FTS + embed queue), persisted
457
+ // atomically inside the materialize transaction. Only built when semantic is
458
+ // on and the parser produced block text; empty blocks (heading-only) are
459
+ // skipped. Single-block docs fall back naturally to one whole-doc block.
460
+ let semanticBlocks;
461
+ if (ctx.semanticEnabled && parsed.blockTexts) {
462
+ const texts = parsed.blockTexts;
463
+ semanticBlocks = [];
464
+ parsed.blocks.forEach((b, i) => {
465
+ const text = texts[i] ?? '';
466
+ if (text.length === 0)
467
+ return;
468
+ semanticBlocks.push({ blockOrd: i, blockId: b.id, heading: b.heading, text });
469
+ });
470
+ }
471
+ // 0.8.1 — the targeted upsert in putDocument raises SQLITE_CONSTRAINT on a
472
+ // file_path conflict instead of silently deleting the other doc's row. The
473
+ // guards above resolve every legitimate case, so a throw here is a real
474
+ // collision (or backend fault) that must surface as an indexing error, not
475
+ // escape the engine's Result contract.
476
+ try {
477
+ ctx.backend.materializeDocument(docRecord, extraction.objects, extraction.relationships, parsed.blocks, fieldIndex, semanticBlocks);
478
+ }
479
+ catch (e) {
480
+ const message = e instanceof Error ? e.message : String(e);
481
+ return singleErr('BACKEND_ERROR', `Failed to materialize "${bound.docId}" (${relativePath}): ${message}`, { file: parsed.filePath, line: 0, col: 0 });
482
+ }
305
483
  // Carry the partial-index signal up so indexAll can tally it. The record +
306
484
  // frontmatter above are always written in full; only body objects are capped.
307
485
  if (parsed.annotationsTruncated)
@@ -1 +1 @@
1
- {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../src/engine/indexing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexing.js","sourceRoot":"","sources":["../../src/engine/indexing.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../src/engine/reads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reads.d.ts","sourceRoot":"","sources":["../../src/engine/reads.ts"],"names":[],"mappings":"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"}
@@ -282,6 +282,9 @@ export function summary(ctx) {
282
282
  // same posture as the read-mode validation this replaced.
283
283
  const brokenRefs = ctx.backend.countBrokenRefs();
284
284
  const validationErrors = ctx.backend.countInvalidDocuments();
285
+ // 0.8.1 — partial/stale rows (annotation-capped bodies, over-byte-cap docs
286
+ // serving their last indexed content), persisted at index time.
287
+ const partialDocs = ctx.backend.countPartialDocuments();
285
288
  const emptyProject = ctx.registry.types.size === 0 && stats.totalDocuments === 0;
286
289
  return {
287
290
  types,
@@ -289,7 +292,7 @@ export function summary(ctx) {
289
292
  totalObjects: stats.totalObjects,
290
293
  totalRelationships: stats.totalRelationships,
291
294
  lastIndexedAt: stats.lastIndexedAt,
292
- warnings: { brokenRefs, validationErrors },
295
+ warnings: { brokenRefs, validationErrors, partialDocs },
293
296
  emptyProject,
294
297
  bootstrapHint: emptyProject ? '_skills/architect-core.md' : null,
295
298
  readOnly: ctx.readOnly,
@@ -728,7 +731,7 @@ export async function verifyIntegrity(ctx, query = {}) {
728
731
  const dirPath = path.join(ctx.projectRoot, regType.path);
729
732
  if (!existsSync(dirPath))
730
733
  continue;
731
- const files = await collectMarkdownFiles(dirPath);
734
+ const { files } = await collectMarkdownFiles(dirPath);
732
735
  for (const file of files) {
733
736
  // 0.7.12 — write-path canonicalizes file_path to forward slashes and
734
737
  // getDocumentByPath is now separator-tolerant, so the prior two-forms