@tenphi/akno-core 0.9.0 → 0.10.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 (80) hide show
  1. package/README.md +4 -0
  2. package/config/default.jsonc +5 -1
  3. package/dist/bench/auto-recall-corpus.d.ts.map +1 -1
  4. package/dist/bench/auto-recall-corpus.js +16 -1
  5. package/dist/bench/auto-recall-corpus.js.map +1 -1
  6. package/dist/config/load.js +1 -0
  7. package/dist/config/load.js.map +1 -1
  8. package/dist/config/schema.d.ts +2 -0
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +16 -0
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/context.d.ts.map +1 -1
  13. package/dist/context.js +3 -0
  14. package/dist/context.js.map +1 -1
  15. package/dist/doctor.d.ts +6 -0
  16. package/dist/doctor.d.ts.map +1 -1
  17. package/dist/doctor.js +14 -3
  18. package/dist/doctor.js.map +1 -1
  19. package/dist/index/graph.d.ts.map +1 -1
  20. package/dist/index/graph.js +8 -3
  21. package/dist/index/graph.js.map +1 -1
  22. package/dist/index/indexer.d.ts +8 -0
  23. package/dist/index/indexer.d.ts.map +1 -1
  24. package/dist/index/indexer.js +261 -14
  25. package/dist/index/indexer.js.map +1 -1
  26. package/dist/index/page-quarantine.d.ts +40 -0
  27. package/dist/index/page-quarantine.d.ts.map +1 -0
  28. package/dist/index/page-quarantine.js +160 -0
  29. package/dist/index/page-quarantine.js.map +1 -0
  30. package/dist/maintenance/curate.js +1 -1
  31. package/dist/maintenance/managed-items.js +1 -1
  32. package/dist/maintenance/managed-items.js.map +1 -1
  33. package/dist/maintenance/plans.d.ts.map +1 -1
  34. package/dist/maintenance/plans.js +14 -0
  35. package/dist/maintenance/plans.js.map +1 -1
  36. package/dist/maintenance/runs.js +1 -0
  37. package/dist/maintenance/runs.js.map +1 -1
  38. package/dist/ops/context.d.ts.map +1 -1
  39. package/dist/ops/context.js +170 -41
  40. package/dist/ops/context.js.map +1 -1
  41. package/dist/ops/forget.d.ts.map +1 -1
  42. package/dist/ops/forget.js +6 -0
  43. package/dist/ops/forget.js.map +1 -1
  44. package/dist/ops/graph.d.ts.map +1 -1
  45. package/dist/ops/graph.js +11 -2
  46. package/dist/ops/graph.js.map +1 -1
  47. package/dist/ops/ingest.d.ts.map +1 -1
  48. package/dist/ops/ingest.js +9 -3
  49. package/dist/ops/ingest.js.map +1 -1
  50. package/dist/ops/move.d.ts.map +1 -1
  51. package/dist/ops/move.js +11 -0
  52. package/dist/ops/move.js.map +1 -1
  53. package/dist/ops/read.d.ts.map +1 -1
  54. package/dist/ops/read.js +17 -1
  55. package/dist/ops/read.js.map +1 -1
  56. package/dist/ops/recall.d.ts.map +1 -1
  57. package/dist/ops/recall.js +15 -1
  58. package/dist/ops/recall.js.map +1 -1
  59. package/dist/ops/retain.d.ts.map +1 -1
  60. package/dist/ops/retain.js +10 -0
  61. package/dist/ops/retain.js.map +1 -1
  62. package/dist/ops/timeline.d.ts.map +1 -1
  63. package/dist/ops/timeline.js +8 -0
  64. package/dist/ops/timeline.js.map +1 -1
  65. package/dist/ops/write.d.ts.map +1 -1
  66. package/dist/ops/write.js +28 -1
  67. package/dist/ops/write.js.map +1 -1
  68. package/dist/recall/assemble.js +1 -1
  69. package/dist/recall/assemble.js.map +1 -1
  70. package/dist/store/db.d.ts.map +1 -1
  71. package/dist/store/db.js +4 -1
  72. package/dist/store/db.js.map +1 -1
  73. package/dist/store/migrations.d.ts +2 -1
  74. package/dist/store/migrations.d.ts.map +1 -1
  75. package/dist/store/migrations.js +23 -1
  76. package/dist/store/migrations.js.map +1 -1
  77. package/dist/write/gate.d.ts.map +1 -1
  78. package/dist/write/gate.js +3 -3
  79. package/dist/write/gate.js.map +1 -1
  80. package/package.json +2 -2
@@ -55,12 +55,17 @@ export function rebuildEvidenceGraph(store, options = {}) {
55
55
  p.body_hash
56
56
  ) AS source_hash
57
57
  FROM pages p
58
+ WHERE p.role != 'ignored'
58
59
  ORDER BY p.id`)
59
60
  .all();
60
61
  const documents = store.db
61
- .prepare(`SELECT id, page_id, sha256 FROM documents
62
- WHERE renders IS NULL
63
- ORDER BY id`)
62
+ .prepare(`SELECT d.id,
63
+ CASE WHEN p.role != 'ignored' THEN d.page_id ELSE NULL END AS page_id,
64
+ d.sha256
65
+ FROM documents d
66
+ LEFT JOIN pages p ON p.id = d.page_id
67
+ WHERE d.renders IS NULL
68
+ ORDER BY d.id`)
64
69
  .all();
65
70
  const events = store.db
66
71
  .prepare(`SELECT e.id, e.target_slug, e.source_page, e.line,
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/index/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/index/graph.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { AknoConfig } from '../config/schema.ts';
2
2
  import type { Store } from '../store/db.ts';
3
3
  import type { ModelClient } from '../models/client.ts';
4
4
  import { type IndexRevisionBarrier } from './revision-barrier.ts';
5
+ import { type PageQuarantineSummary } from './page-quarantine.ts';
5
6
  export interface IndexOptions {
6
7
  /** Hash every file instead of trusting mtime+size. The correctness path. */
7
8
  verify?: boolean;
@@ -86,6 +87,8 @@ export interface IndexReport {
86
87
  graphMemories: number;
87
88
  graphMemoryEdges: number;
88
89
  ignored: number;
90
+ /** Current content-safe Markdown conflict state, not only candidates changed in this pass. */
91
+ quarantine: PageQuarantineSummary;
89
92
  /** Non-fatal problems worth reporting rather than throwing. `doctor` prints these. */
90
93
  warnings: string[];
91
94
  durationMs: number;
@@ -153,8 +156,13 @@ export declare class Indexer {
153
156
  /** The policy current rules give a slug, ignoring page-local declarations. */
154
157
  private policyFor;
155
158
  private knownFiles;
159
+ private pageSourceIntegrity;
160
+ /** Refresh only bytes the stat/hash path already proved changed (plus the one-time bootstrap). */
161
+ private refreshPageSourceIntegrity;
162
+ private reconcilePageSourceIntegrity;
156
163
  private touchFile;
157
164
  private recordFile;
165
+ private quarantinePage;
158
166
  /**
159
167
  * Rename `people/ada.md` to `people/ada-marlow.md` in a file manager
160
168
  * and content hashing sees a delete plus a create. Facts, journal entries and
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/index/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/index/indexer.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { IndexRevisionCoordinator } from "./revision-barrier.js";
20
20
  import { replaceTemporalEntries, TEMPORAL_PROJECTION_VERSION } from "../timeline/projection.js";
21
21
  import { OBSERVATION_PROJECTION_VERSION, qualifyObservationEntries, replaceObservationEntries, } from "../observations/projection.js";
22
22
  import { MANAGED_MEMORY_PROJECTION_VERSION, replaceManagedMemoryEntries } from "../memory/projection.js";
23
+ import { hasInlineMergeConflict, matchesConflictPath, PAGE_SOURCE_INTEGRITY_VERSION, emptyPageQuarantineSummary, quarantineSummary, } from "./page-quarantine.js";
23
24
  /**
24
25
  * Reconciles the index against the knowledge base. Both directions are
25
26
  * first class: the user restructures everything on a Sunday afternoon and this
@@ -112,6 +113,7 @@ export class Indexer {
112
113
  graphMemories: 0,
113
114
  graphMemoryEdges: 0,
114
115
  ignored: 0,
116
+ quarantine: emptyPageQuarantineSummary(),
115
117
  warnings: [],
116
118
  durationMs: 0,
117
119
  };
@@ -123,7 +125,12 @@ export class Indexer {
123
125
  pageExtensions: this.#config.pageExtensions,
124
126
  maxPageBytes: this.#config.maxPageBytes,
125
127
  });
126
- const files = options.only ? scanned.filter((file) => options.only.includes(file.relPath)) : scanned;
128
+ const integrityBefore = this.pageSourceIntegrity();
129
+ // The first pass after upgrading seeds the content-free identity cache. Doing that once is
130
+ // what preserves the stat-only watcher fast path on every later pass.
131
+ const integrityBootstrap = this.#store.meta('page_source_integrity_version') !== PAGE_SOURCE_INTEGRITY_VERSION;
132
+ const effectiveOnly = integrityBootstrap ? undefined : options.only;
133
+ const files = effectiveOnly ? scanned.filter((file) => effectiveOnly.includes(file.relPath)) : scanned;
127
134
  report.scanned = files.length;
128
135
  const known = this.knownFiles();
129
136
  // ── Rule changes ───────────────────────────────────────────────────────
@@ -132,14 +139,14 @@ export class Indexer {
132
139
  // searchable and asserted as facts — the config silently doing nothing, which is
133
140
  // exactly the failure Akno exists to avoid. A `--only` pass sees a fraction of the
134
141
  // tree and is not the place to conclude anything about the rest of it.
135
- const reclassified = options.only ? new Set() : this.reclassify(report);
136
- const temporalProjectionStale = !options.only && this.#store.meta('temporal_projection_version') !== TEMPORAL_PROJECTION_VERSION;
142
+ const reclassified = effectiveOnly ? new Set() : this.reclassify(report);
143
+ const temporalProjectionStale = !effectiveOnly && this.#store.meta('temporal_projection_version') !== TEMPORAL_PROJECTION_VERSION;
137
144
  const temporalProjectionPaths = temporalProjectionStale ? this.temporalProjectionPaths(report) : [];
138
145
  if (temporalProjectionStale) {
139
146
  for (const relPath of temporalProjectionPaths)
140
147
  reclassified.add(relPath);
141
148
  }
142
- const observationProjectionStale = !options.only && this.#store.meta('observation_projection_version') !== OBSERVATION_PROJECTION_VERSION;
149
+ const observationProjectionStale = !effectiveOnly && this.#store.meta('observation_projection_version') !== OBSERVATION_PROJECTION_VERSION;
143
150
  const observationProjectionPaths = observationProjectionStale
144
151
  ? this.observationProjectionPaths(report)
145
152
  : [];
@@ -147,7 +154,7 @@ export class Indexer {
147
154
  for (const relPath of observationProjectionPaths)
148
155
  reclassified.add(relPath);
149
156
  }
150
- const managedMemoryProjectionStale = !options.only &&
157
+ const managedMemoryProjectionStale = !effectiveOnly &&
151
158
  this.#store.meta('managed_memory_projection_version') !== MANAGED_MEMORY_PROJECTION_VERSION;
152
159
  const managedMemoryProjectionPaths = managedMemoryProjectionStale
153
160
  ? this.managedMemoryProjectionPaths(report)
@@ -156,7 +163,7 @@ export class Indexer {
156
163
  for (const relPath of managedMemoryProjectionPaths)
157
164
  reclassified.add(relPath);
158
165
  }
159
- if (!options.only)
166
+ if (!effectiveOnly)
160
167
  for (const relPath of this.pageFilesWithNoPage(report))
161
168
  reclassified.add(relPath);
162
169
  // ── Stat fast path ─────────────────────────────────────────────────────
@@ -166,8 +173,17 @@ export class Indexer {
166
173
  const changed = [];
167
174
  for (const file of files) {
168
175
  const prior = known.get(file.relPath);
176
+ const integrity = integrityBefore.get(file.relPath);
169
177
  const moved = !prior || prior.size !== file.size || prior.mtime_ns !== file.mtimeNs;
170
- if (options.verify || moved || options.reindexUnchanged || reclassified.has(file.relPath)) {
178
+ const identityIncomplete = file.kind === 'page' &&
179
+ integrity?.identity_complete === 0 &&
180
+ !matchesConflictPath(file.relPath, this.#config.index.conflictPathPatterns);
181
+ if (options.verify ||
182
+ moved ||
183
+ options.reindexUnchanged ||
184
+ reclassified.has(file.relPath) ||
185
+ (file.kind === 'page' && !file.dataless && !integrity) ||
186
+ identityIncomplete) {
171
187
  changed.push(file);
172
188
  }
173
189
  else {
@@ -188,6 +204,15 @@ export class Indexer {
188
204
  progress({ phase: 'hash', done: ++hashed, total: changed.length });
189
205
  });
190
206
  report.hashed = changed.filter((f) => f.sha256).length;
207
+ await this.refreshPageSourceIntegrity(changed.filter((file) => file.kind === 'page'), reclassified);
208
+ const integrity = this.reconcilePageSourceIntegrity(scanned, effectiveOnly);
209
+ if (scanned.every((file) => file.kind !== 'page' || file.dataless || integrity.rows.has(file.relPath))) {
210
+ this.#store.setMeta('page_source_integrity_version', PAGE_SOURCE_INTEGRITY_VERSION);
211
+ }
212
+ report.quarantine = integrity.summary;
213
+ if (integrity.summary.candidates > 0) {
214
+ report.warnings.push(`${integrity.summary.candidates} Markdown source candidate${integrity.summary.candidates === 1 ? ' is' : 's are'} quarantined; run \`akno doctor --quarantine-details\` for private paths`);
215
+ }
191
216
  // A hash that matches what we recorded means mtime lied — nothing to do.
192
217
  const needsIndex = changed.filter((file) => {
193
218
  if (!file.sha256)
@@ -204,6 +229,18 @@ export class Indexer {
204
229
  }
205
230
  return true;
206
231
  });
232
+ const neededPaths = new Set(needsIndex.map((file) => file.relPath));
233
+ for (const relPath of integrity.changedPaths) {
234
+ if (neededPaths.has(relPath))
235
+ continue;
236
+ const file = scanned.find((candidate) => candidate.relPath === relPath);
237
+ const row = integrity.rows.get(relPath);
238
+ if (!file || !row)
239
+ continue;
240
+ file.sha256 = row.sha256;
241
+ needsIndex.push(file);
242
+ neededPaths.add(relPath);
243
+ }
207
244
  // ── Deletions and renames ──────────────────────────────────────────────
208
245
  //
209
246
  // A full pass may conclude a file is gone about *any* file. A scoped pass may conclude it
@@ -217,7 +254,7 @@ export class Indexer {
217
254
  // be deleted. Twenty-seven notes moved in Obsidian lost their ids that way, and with them
218
255
  // every fact, link and journal entry hanging off them.
219
256
  const present = new Set(files.map((file) => file.relPath));
220
- const inScope = options.only ? new Set(options.only) : null;
257
+ const inScope = effectiveOnly ? new Set(effectiveOnly) : null;
221
258
  const vanished = [...known.values()].filter((row) => !present.has(row.rel_path) && (!inScope || inScope.has(row.rel_path)));
222
259
  if (vanished.length > 0)
223
260
  this.reconcileDeletions(vanished, needsIndex, report);
@@ -225,10 +262,13 @@ export class Indexer {
225
262
  // declined, or lowering the threshold does nothing at all. Same problem as a rule
226
263
  // change, same shape of fix.
227
264
  this.reconsiderRenditions(report);
228
- if (!options.only)
265
+ if (!effectiveOnly)
229
266
  this.reconcileRenditionClaims(report);
230
267
  // ── Pages ──────────────────────────────────────────────────────────────
231
- const pageFiles = needsIndex.filter((file) => file.kind === 'page');
268
+ const quarantinedFiles = needsIndex.filter((file) => file.kind === 'page' && (integrity.reasons.get(file.relPath)?.length ?? 0) > 0);
269
+ for (const file of quarantinedFiles)
270
+ this.quarantinePage(file);
271
+ const pageFiles = needsIndex.filter((file) => file.kind === 'page' && (integrity.reasons.get(file.relPath)?.length ?? 0) === 0);
232
272
  progress({ phase: 'pages', done: 0, total: pageFiles.length });
233
273
  let pageIndex = 0;
234
274
  let pageProjectionFailed = false;
@@ -267,7 +307,11 @@ export class Indexer {
267
307
  // The indexer follows the write; that does not mean it catches up on
268
308
  // everything else first.
269
309
  if (!options.structuralOnly) {
270
- const scoped = options.modelPaths ?? options.only;
310
+ // A scoped watcher event can change another page's quarantine state (the other half of a
311
+ // duplicate-id collision). That collateral page was structurally re-indexed above and must
312
+ // enter the same model scope when the caller did not deliberately supply a narrower one.
313
+ const scoped = options.modelPaths ??
314
+ (options.only ? [...new Set([...options.only, ...integrity.changedPaths])] : undefined);
271
315
  const scope = scoped ? this.#pageIdsFor(scoped) : null;
272
316
  const rebuild = options.rebuild ?? false;
273
317
  // Before embedding, so the chunks it produces are embedded in the same pass rather
@@ -458,6 +502,143 @@ export class Indexer {
458
502
  .all();
459
503
  return new Map(rows.map((row) => [row.rel_path, row]));
460
504
  }
505
+ pageSourceIntegrity() {
506
+ const rows = this.#store.db
507
+ .prepare('SELECT * FROM page_source_integrity')
508
+ .all();
509
+ return new Map(rows.map((row) => [row.rel_path, row]));
510
+ }
511
+ /** Refresh only bytes the stat/hash path already proved changed (plus the one-time bootstrap). */
512
+ async refreshPageSourceIntegrity(files, force) {
513
+ const previous = this.pageSourceIntegrity();
514
+ for (const file of files) {
515
+ if (!file.sha256 || file.dataless)
516
+ continue;
517
+ const prior = previous.get(file.relPath);
518
+ const pathBlocked = matchesConflictPath(file.relPath, this.#config.index.conflictPathPatterns);
519
+ if (!force.has(file.relPath) &&
520
+ prior?.sha256 === file.sha256 &&
521
+ (prior.identity_complete === 1 || pathBlocked)) {
522
+ continue;
523
+ }
524
+ const page = this.#store.db.prepare('SELECT id FROM pages WHERE rel_path = ?').get(file.relPath);
525
+ const indexedFile = this.#store.db
526
+ .prepare('SELECT page_id FROM files WHERE rel_path = ?')
527
+ .get(file.relPath);
528
+ const knownPageId = page?.id ?? indexedFile?.page_id ?? prior?.known_page_id ?? null;
529
+ const slug = file.relPath.replace(/\.(md|markdown)$/i, '');
530
+ const ownerRule = effectiveRule(slug, this.#config.rules);
531
+ const ownerIgnored = ownerRule.role === 'ignored';
532
+ let declaredPageId = prior?.declared_page_id ?? null;
533
+ let inlineConflict = 0;
534
+ let identityComplete = 1;
535
+ let indexable = ownerIgnored ? 0 : (prior?.indexable ?? 1);
536
+ if (pathBlocked) {
537
+ // A configured path signal wins before Markdown parsing. Preserve a previously known
538
+ // identity, but make a later config repair parse these same bytes once.
539
+ identityComplete = 0;
540
+ }
541
+ else {
542
+ const content = await fsp.readFile(file.absPath, 'utf8').catch(() => null);
543
+ if (content === null)
544
+ continue;
545
+ inlineConflict = hasInlineMergeConflict(content) ? 1 : 0;
546
+ if (inlineConflict) {
547
+ declaredPageId = null;
548
+ indexable = ownerIgnored ? 0 : 1;
549
+ }
550
+ else {
551
+ try {
552
+ const parsed = parsePage(file.relPath, content);
553
+ declaredPageId = parsed.frontmatterId;
554
+ indexable =
555
+ resolvePagePolicy(parsed, { ...ownerRule, glob: ownerRule.glob }, this.#config.paths.observations).role === 'ignored'
556
+ ? 0
557
+ : 1;
558
+ }
559
+ catch {
560
+ // Parsing remains the indexer's typed per-page warning path. Integrity classification
561
+ // must not turn one malformed non-conflict page into a failed whole-tree pass.
562
+ declaredPageId = null;
563
+ indexable = ownerIgnored ? 0 : 1;
564
+ }
565
+ }
566
+ }
567
+ this.#store.db
568
+ .prepare(`INSERT INTO page_source_integrity(
569
+ rel_path, sha256, declared_page_id, known_page_id, inline_conflict,
570
+ identity_complete, indexable, quarantine_reasons, checked_at
571
+ ) VALUES(?, ?, ?, ?, ?, ?, ?, '[]', ?)
572
+ ON CONFLICT(rel_path) DO UPDATE SET
573
+ sha256 = excluded.sha256,
574
+ declared_page_id = excluded.declared_page_id,
575
+ known_page_id = COALESCE(excluded.known_page_id, page_source_integrity.known_page_id),
576
+ inline_conflict = excluded.inline_conflict,
577
+ identity_complete = excluded.identity_complete,
578
+ indexable = excluded.indexable,
579
+ checked_at = excluded.checked_at`)
580
+ .run(file.relPath, file.sha256, declaredPageId, knownPageId, inlineConflict, identityComplete, indexable, nowIso());
581
+ }
582
+ }
583
+ reconcilePageSourceIntegrity(scanned, only) {
584
+ const presentPages = new Set(scanned.filter((file) => file.kind === 'page').map((file) => file.relPath));
585
+ if (only) {
586
+ const remove = this.#store.db.prepare('DELETE FROM page_source_integrity WHERE rel_path = ?');
587
+ for (const relPath of only)
588
+ if (!presentPages.has(relPath))
589
+ remove.run(relPath);
590
+ }
591
+ else {
592
+ const knownPaths = this.#store.db.prepare('SELECT rel_path FROM page_source_integrity').all();
593
+ const remove = this.#store.db.prepare('DELETE FROM page_source_integrity WHERE rel_path = ?');
594
+ for (const row of knownPaths)
595
+ if (!presentPages.has(row.rel_path))
596
+ remove.run(row.rel_path);
597
+ }
598
+ const rows = this.pageSourceIntegrity();
599
+ const reasons = new Map();
600
+ const identities = new Map();
601
+ for (const row of rows.values()) {
602
+ const own = [];
603
+ if (row.indexable === 0) {
604
+ reasons.set(row.rel_path, own);
605
+ continue;
606
+ }
607
+ if (row.inline_conflict === 1)
608
+ own.push('inline_merge_conflict');
609
+ if (matchesConflictPath(row.rel_path, this.#config.index.conflictPathPatterns)) {
610
+ own.push('sync_conflict_path');
611
+ }
612
+ reasons.set(row.rel_path, own);
613
+ const identity = row.declared_page_id ?? row.known_page_id;
614
+ if (!identity)
615
+ continue;
616
+ const candidates = identities.get(identity) ?? [];
617
+ candidates.push(row);
618
+ identities.set(identity, candidates);
619
+ }
620
+ for (const candidates of identities.values()) {
621
+ if (candidates.length < 2)
622
+ continue;
623
+ const reason = new Set(candidates.map((candidate) => candidate.sha256)).size === 1
624
+ ? 'duplicate_page_id_same_bytes'
625
+ : 'duplicate_page_id_different_bytes';
626
+ for (const candidate of candidates)
627
+ reasons.get(candidate.rel_path).push(reason);
628
+ }
629
+ const changedPaths = new Set();
630
+ const update = this.#store.db.prepare('UPDATE page_source_integrity SET quarantine_reasons = ?, checked_at = ? WHERE rel_path = ?');
631
+ for (const [relPath, candidateReasons] of reasons) {
632
+ const serialized = JSON.stringify(candidateReasons);
633
+ const row = rows.get(relPath);
634
+ if (serialized === row.quarantine_reasons)
635
+ continue;
636
+ update.run(serialized, nowIso(), relPath);
637
+ row.quarantine_reasons = serialized;
638
+ changedPaths.add(relPath);
639
+ }
640
+ return { rows, reasons, changedPaths, summary: quarantineSummary(this.#store) };
641
+ }
461
642
  touchFile(file) {
462
643
  this.#store.db
463
644
  .prepare('UPDATE files SET mtime_ns = ?, size = ?, indexed_at = ? WHERE rel_path = ?')
@@ -472,6 +653,33 @@ export class Indexer {
472
653
  kind = excluded.kind, page_id = excluded.page_id, indexed_at = excluded.indexed_at`)
473
654
  .run(file.relPath, file.size, file.mtimeNs, file.sha256 ?? '', file.kind, pageId, nowIso());
474
655
  }
656
+ quarantinePage(file) {
657
+ const pageId = this.pageIdForPath(file.relPath);
658
+ this.#store.transaction(() => {
659
+ if (pageId) {
660
+ this.deleteChunkRows(BODY_CHUNKS_FOR_PAGE, pageId);
661
+ this.#store.db.prepare('DELETE FROM events WHERE source_page = ?').run(pageId);
662
+ this.#store.db.prepare('DELETE FROM temporal_entries WHERE source_page = ?').run(pageId);
663
+ this.#store.db.prepare('DELETE FROM temporal_projection_issues WHERE source_page = ?').run(pageId);
664
+ this.#store.db.prepare('DELETE FROM observation_entries WHERE source_page = ?').run(pageId);
665
+ this.#store.db.prepare('DELETE FROM observation_projection_issues WHERE source_page = ?').run(pageId);
666
+ this.#store.db.prepare('DELETE FROM managed_memory_entries WHERE source_page = ?').run(pageId);
667
+ this.#store.db
668
+ .prepare('DELETE FROM managed_memory_projection_issues WHERE source_page = ?')
669
+ .run(pageId);
670
+ this.#store.db.prepare('DELETE FROM links WHERE from_page = ?').run(pageId);
671
+ this.#store.db.prepare('DELETE FROM facts WHERE page_id = ?').run(pageId);
672
+ this.#store.db
673
+ .prepare(`UPDATE pages SET
674
+ role = 'ignored', remember_management = 'deny', observe_management = 'deny',
675
+ dream_management = 'none', summary = NULL, keywords = NULL, derived_hash = NULL,
676
+ curate_input_hash = NULL, curate_status = NULL
677
+ WHERE id = ?`)
678
+ .run(pageId);
679
+ }
680
+ this.recordFile(file, pageId);
681
+ });
682
+ }
475
683
  // ─── Rename following ─────────────────────────────────────────────────────
476
684
  /**
477
685
  * Rename `people/ada.md` to `people/ada-marlow.md` in a file manager
@@ -567,10 +775,21 @@ export class Indexer {
567
775
  if (existing)
568
776
  this.removePage(existing);
569
777
  this.recordFile(file, null);
778
+ this.#store.db
779
+ .prepare(`UPDATE page_source_integrity
780
+ SET declared_page_id = ?, known_page_id = COALESCE(known_page_id, ?),
781
+ inline_conflict = 0, identity_complete = 1, indexable = 0,
782
+ quarantine_reasons = '[]', checked_at = ?
783
+ WHERE rel_path = ?`)
784
+ .run(page.frontmatterId, existing, nowIso(), file.relPath);
570
785
  report.ignored++;
571
786
  return true;
572
787
  }
573
788
  const pageId = this.resolvePageId(page, file);
789
+ const priorPageId = this.pageIdForPath(file.relPath);
790
+ const priorDocuments = priorPageId && priorPageId !== pageId
791
+ ? this.#store.db.prepare('SELECT id FROM documents WHERE page_id = ?').all(priorPageId)
792
+ : [];
574
793
  const chunks = applySourceFence(chunkPage(page, {
575
794
  targetChars: this.#config.index.chunkTargetChars,
576
795
  maxChars: this.#config.index.chunkMaxChars,
@@ -579,7 +798,21 @@ export class Indexer {
579
798
  // A `source` page is evidence from top to bottom, fence or no fence.
580
799
  const effectiveChunks = resolved.role === 'source' ? chunks.map((chunk) => ({ ...chunk, kind: 'source' })) : chunks;
581
800
  this.#store.transaction(() => {
801
+ if (priorPageId && priorPageId !== pageId) {
802
+ this.deleteChunkRows(BODY_CHUNKS_FOR_PAGE, priorPageId);
803
+ this.#store.db
804
+ .prepare('UPDATE chunks SET page_id = NULL WHERE page_id = ? AND document_id IS NOT NULL')
805
+ .run(priorPageId);
806
+ this.#store.db.prepare('UPDATE documents SET page_id = NULL WHERE page_id = ?').run(priorPageId);
807
+ this.#store.db.prepare('DELETE FROM pages WHERE id = ?').run(priorPageId);
808
+ }
582
809
  this.upsertPage(pageId, page, resolved, file);
810
+ const reattachDocument = this.#store.db.prepare('UPDATE documents SET page_id = ? WHERE id = ?');
811
+ const reattachChunks = this.#store.db.prepare('UPDATE chunks SET page_id = ? WHERE document_id = ?');
812
+ for (const document of priorDocuments) {
813
+ reattachDocument.run(pageId, document.id);
814
+ reattachChunks.run(pageId, document.id);
815
+ }
583
816
  this.replaceChunks(pageId, effectiveChunks);
584
817
  this.replaceEvents(pageId, page);
585
818
  const temporal = replaceTemporalEntries(this.#store, pageId, page, resolved.role);
@@ -594,6 +827,12 @@ export class Indexer {
594
827
  report.managedMemoryProjectionIssues += managedMemories.issues;
595
828
  this.replaceLinks(pageId, page);
596
829
  this.recordFile(file, pageId);
830
+ this.#store.db
831
+ .prepare(`UPDATE page_source_integrity
832
+ SET declared_page_id = ?, known_page_id = ?, inline_conflict = 0,
833
+ identity_complete = 1, indexable = 1, quarantine_reasons = '[]', checked_at = ?
834
+ WHERE rel_path = ?`)
835
+ .run(page.frontmatterId, pageId, nowIso(), file.relPath);
597
836
  });
598
837
  report.pagesIndexed++;
599
838
  report.chunksWritten += effectiveChunks.length;
@@ -652,6 +891,12 @@ export class Indexer {
652
891
  // Record the hash of our own write, so adding an `id` never re-triggers
653
892
  // indexing on the next sweep.
654
893
  this.recordFile({ ...file, size: Number(stat.size), mtimeNs: String(stat.mtimeNs), sha256: sha256(updated) }, pageId);
894
+ this.#store.db
895
+ .prepare(`UPDATE page_source_integrity
896
+ SET sha256 = ?, declared_page_id = ?, known_page_id = ?, identity_complete = 1,
897
+ indexable = 1, quarantine_reasons = '[]', checked_at = ?
898
+ WHERE rel_path = ?`)
899
+ .run(sha256(updated), pageId, pageId, nowIso(), file.relPath);
655
900
  }
656
901
  catch (err) {
657
902
  report.warnings.push(`could not write id into ${file.relPath}: ${errorMessage(err)}`);
@@ -720,7 +965,7 @@ export class Indexer {
720
965
  replaceLinks(pageId, page) {
721
966
  this.#store.db.prepare('DELETE FROM links WHERE from_page = ?').run(pageId);
722
967
  const insert = this.#store.db.prepare('INSERT INTO links(from_page, to_slug, to_page, kind, line, broken) VALUES(?, ?, ?, ?, ?, ?)');
723
- const findPage = this.#store.db.prepare('SELECT id FROM pages WHERE slug = ?');
968
+ const findPage = this.#store.db.prepare("SELECT id FROM pages WHERE slug = ? AND role != 'ignored'");
724
969
  for (const link of page.links) {
725
970
  if (link.kind === 'embed') {
726
971
  // A file embed is not a page reference and can never be a broken one.
@@ -739,8 +984,10 @@ export class Indexer {
739
984
  resolveLinks() {
740
985
  this.#store.db.exec(`
741
986
  UPDATE links SET
742
- to_page = (SELECT id FROM pages WHERE pages.slug = links.to_slug),
743
- broken = CASE WHEN EXISTS (SELECT 1 FROM pages WHERE pages.slug = links.to_slug) THEN 0 ELSE 1 END
987
+ to_page = (SELECT id FROM pages WHERE pages.slug = links.to_slug AND pages.role != 'ignored'),
988
+ broken = CASE WHEN EXISTS (
989
+ SELECT 1 FROM pages WHERE pages.slug = links.to_slug AND pages.role != 'ignored'
990
+ ) THEN 0 ELSE 1 END
744
991
  WHERE kind != 'embed'
745
992
  `);
746
993
  }