hippo-memory 1.12.11 → 1.13.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 (79) hide show
  1. package/dist/api.d.ts +99 -0
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +113 -8
  4. package/dist/api.js.map +1 -1
  5. package/dist/audit.d.ts +1 -1
  6. package/dist/audit.d.ts.map +1 -1
  7. package/dist/audit.js.map +1 -1
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +329 -6
  10. package/dist/cli.js.map +1 -1
  11. package/dist/consolidate.d.ts +5 -0
  12. package/dist/consolidate.d.ts.map +1 -1
  13. package/dist/consolidate.js +77 -0
  14. package/dist/consolidate.js.map +1 -1
  15. package/dist/dag.d.ts +40 -0
  16. package/dist/dag.d.ts.map +1 -1
  17. package/dist/dag.js +164 -7
  18. package/dist/dag.js.map +1 -1
  19. package/dist/db.d.ts.map +1 -1
  20. package/dist/db.js +113 -1
  21. package/dist/db.js.map +1 -1
  22. package/dist/mcp/server.d.ts.map +1 -1
  23. package/dist/mcp/server.js +124 -2
  24. package/dist/mcp/server.js.map +1 -1
  25. package/dist/memory.d.ts +14 -0
  26. package/dist/memory.d.ts.map +1 -1
  27. package/dist/memory.js.map +1 -1
  28. package/dist/predictions.d.ts +122 -0
  29. package/dist/predictions.d.ts.map +1 -0
  30. package/dist/predictions.js +386 -0
  31. package/dist/predictions.js.map +1 -0
  32. package/dist/raw-archive.d.ts.map +1 -1
  33. package/dist/raw-archive.js +8 -0
  34. package/dist/raw-archive.js.map +1 -1
  35. package/dist/search.d.ts +34 -0
  36. package/dist/search.d.ts.map +1 -1
  37. package/dist/search.js +108 -2
  38. package/dist/search.js.map +1 -1
  39. package/dist/server.d.ts.map +1 -1
  40. package/dist/server.js +190 -0
  41. package/dist/server.js.map +1 -1
  42. package/dist/shared.d.ts +5 -0
  43. package/dist/shared.d.ts.map +1 -1
  44. package/dist/shared.js +3 -3
  45. package/dist/shared.js.map +1 -1
  46. package/dist/src/api.js +113 -8
  47. package/dist/src/api.js.map +1 -1
  48. package/dist/src/audit.js.map +1 -1
  49. package/dist/src/cli.js +329 -6
  50. package/dist/src/cli.js.map +1 -1
  51. package/dist/src/consolidate.js +77 -0
  52. package/dist/src/consolidate.js.map +1 -1
  53. package/dist/src/dag.js +164 -7
  54. package/dist/src/dag.js.map +1 -1
  55. package/dist/src/db.js +113 -1
  56. package/dist/src/db.js.map +1 -1
  57. package/dist/src/mcp/server.js +124 -2
  58. package/dist/src/mcp/server.js.map +1 -1
  59. package/dist/src/memory.js.map +1 -1
  60. package/dist/src/predictions.js +386 -0
  61. package/dist/src/predictions.js.map +1 -0
  62. package/dist/src/raw-archive.js +8 -0
  63. package/dist/src/raw-archive.js.map +1 -1
  64. package/dist/src/search.js +108 -2
  65. package/dist/src/search.js.map +1 -1
  66. package/dist/src/server.js +190 -0
  67. package/dist/src/server.js.map +1 -1
  68. package/dist/src/shared.js +3 -3
  69. package/dist/src/shared.js.map +1 -1
  70. package/dist/src/store.js +385 -6
  71. package/dist/src/store.js.map +1 -1
  72. package/dist/store.d.ts +120 -0
  73. package/dist/store.d.ts.map +1 -1
  74. package/dist/store.js +385 -6
  75. package/dist/store.js.map +1 -1
  76. package/extensions/openclaw-plugin/openclaw.plugin.json +1 -1
  77. package/extensions/openclaw-plugin/package.json +1 -1
  78. package/openclaw.plugin.json +1 -1
  79. package/package.json +1 -1
@@ -17,6 +17,11 @@ export interface ConsolidationResult {
17
17
  extracted: number;
18
18
  dagCandidateClusters: number;
19
19
  dagSummariesCreated: number;
20
+ summariesRebuilt: number;
21
+ summariesRebuildFailed: number;
22
+ summariesZeroChildSkipped: number;
23
+ summariesRebuildCapped: boolean;
24
+ entityProfilesCreated: number;
20
25
  dryRun: boolean;
21
26
  details: string[];
22
27
  physicsSimulated: number;
@@ -1 +1 @@
1
- {"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsDH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAID;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAO,GAC7C,OAAO,CAAC,mBAAmB,CAAC,CAkX9B"}
1
+ {"version":3,"file":"consolidate.d.ts","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsDH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAI5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB,EAAE,OAAO,CAAC;IAEhC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAID;;GAEG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAO,GAC7C,OAAO,CAAC,mBAAmB,CAAC,CA2b9B"}
@@ -61,6 +61,11 @@ export async function consolidate(hippoRoot, options = {}) {
61
61
  extracted: 0,
62
62
  dagCandidateClusters: 0,
63
63
  dagSummariesCreated: 0,
64
+ summariesRebuilt: 0,
65
+ summariesRebuildFailed: 0,
66
+ summariesZeroChildSkipped: 0,
67
+ summariesRebuildCapped: false,
68
+ entityProfilesCreated: 0,
64
69
  dryRun,
65
70
  details: [],
66
71
  physicsSimulated: 0,
@@ -249,6 +254,78 @@ export async function consolidate(hippoRoot, options = {}) {
249
254
  }
250
255
  }
251
256
  // -------------------------------------------------------------------------
257
+ // 1.8. DAG summary rebuild — drain dirty queue from E2's child-write hooks
258
+ // -------------------------------------------------------------------------
259
+ // Consumer of E2's summary_dirty flag. Walks dirty L2 summaries, regenerates
260
+ // each via generateDagSummary, atomically refreshes content + 6 metadata
261
+ // columns + clears summary_dirty (with FTS sync). Same apiKey/dryRun gate
262
+ // as buildDag above. Cap HIPPO_DAG_REBUILD_CAP (default 20, hard ceiling
263
+ // 1000) prevents runaway LLM cost.
264
+ if (apiKey && !dryRun) {
265
+ try {
266
+ const { rebuildDirtySummaries } = await import('./dag.js');
267
+ const rawCap = parseInt(process.env.HIPPO_DAG_REBUILD_CAP ?? '20', 10);
268
+ // R1 MED must-fix: hard ceiling so misconfigured env can't burn
269
+ // unbounded LLM cost.
270
+ const cap = Number.isFinite(rawCap) && rawCap > 0
271
+ ? Math.min(rawCap, 1000)
272
+ : 20;
273
+ const rebuildResult = await rebuildDirtySummaries(hippoRoot, {
274
+ apiKey,
275
+ model: config.extraction.model,
276
+ cap,
277
+ });
278
+ result.summariesRebuilt = rebuildResult.rebuilt;
279
+ result.summariesRebuildFailed = rebuildResult.failed;
280
+ result.summariesZeroChildSkipped = rebuildResult.zeroChildSkipped;
281
+ result.summariesRebuildCapped = rebuildResult.capped;
282
+ if (rebuildResult.rebuilt > 0 || rebuildResult.zeroChildSkipped > 0 || rebuildResult.failed > 0) {
283
+ const parts = [];
284
+ if (rebuildResult.rebuilt > 0)
285
+ parts.push(`${rebuildResult.rebuilt} rebuilt`);
286
+ if (rebuildResult.zeroChildSkipped > 0)
287
+ parts.push(`${rebuildResult.zeroChildSkipped} zero-child-skipped`);
288
+ if (rebuildResult.failed > 0)
289
+ parts.push(`${rebuildResult.failed} failed`);
290
+ if (rebuildResult.capped)
291
+ parts.push(`CAPPED@${cap}`);
292
+ result.details.push(` 🌳 DAG rebuild: ${parts.join(', ')}`);
293
+ }
294
+ }
295
+ catch {
296
+ // Best-effort — same posture as buildDag block above.
297
+ }
298
+ }
299
+ // -------------------------------------------------------------------------
300
+ // 1.9. DAG entity profiles — cluster L2 topic summaries into L3 profiles
301
+ // -------------------------------------------------------------------------
302
+ // E5 phase: aggregate per-entity L2 summaries (e.g. all the speaker:Alice
303
+ // topic summaries) into a single L3 entity profile. Runs even when phase
304
+ // 1.7 buildDag was skipped (re-clusters existing L2s every sleep).
305
+ //
306
+ // Uses loadAllL2Summaries (not `survivors`) because phase 1.7 wrote new
307
+ // L2s directly via writeEntry without pushing back into survivors.
308
+ if (apiKey && !dryRun) {
309
+ try {
310
+ const { buildEntityProfiles } = await import('./dag.js');
311
+ const { loadAllL2Summaries } = await import('./store.js');
312
+ const l2Summaries = loadAllL2Summaries(hippoRoot);
313
+ if (l2Summaries.length >= 2) {
314
+ const profileResult = await buildEntityProfiles(hippoRoot, l2Summaries, {
315
+ apiKey,
316
+ model: config.extraction.model,
317
+ });
318
+ result.entityProfilesCreated = profileResult.profilesCreated;
319
+ if (profileResult.profilesCreated > 0) {
320
+ result.details.push(` 🌲 DAG L3: ${profileResult.profilesCreated} entity profiles, ${profileResult.l2sLinked} L2s linked`);
321
+ }
322
+ }
323
+ }
324
+ catch {
325
+ // Best-effort.
326
+ }
327
+ }
328
+ // -------------------------------------------------------------------------
252
329
  // 2. Physics simulation pass
253
330
  // -------------------------------------------------------------------------
254
331
  if (!dryRun) {
@@ -1 +1 @@
1
- {"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../src/consolidate.ts"],"names":[],"mappings":"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"}
package/dist/dag.d.ts CHANGED
@@ -17,4 +17,44 @@ export interface DagBuildResult {
17
17
  factsLinked: number;
18
18
  }
19
19
  export declare function buildDag(hippoRoot: string, facts: MemoryEntry[], opts: DagSummaryOptions): Promise<DagBuildResult>;
20
+ export interface DagRebuildResult {
21
+ attempted: number;
22
+ rebuilt: number;
23
+ zeroChildSkipped: number;
24
+ failed: number;
25
+ capped: boolean;
26
+ }
27
+ /**
28
+ * v0.30 / E3 — sleep-cycle phase that drains the dirty L2 summary queue.
29
+ * Thin orchestrator; the heavy lifting lives in store.ts (load + apply)
30
+ * and dag.ts:generateDagSummary (LLM call).
31
+ *
32
+ * Per-summary try/catch isolation (plan-eng-r1 MED must-fix) — one
33
+ * throwing rebuild does NOT abort the rest of the queue.
34
+ *
35
+ * Race-loser handling: applyRebuildResult's UPDATE WHERE includes
36
+ * AND summary_dirty=1, so concurrent sleep's second writer returns
37
+ * changed=false. Silent skip (neither rebuilt++ nor failed++).
38
+ */
39
+ export declare function rebuildDirtySummaries(hippoRoot: string, opts: DagSummaryOptions & {
40
+ cap?: number;
41
+ }): Promise<DagRebuildResult>;
42
+ export interface EntityProfilesBuildResult {
43
+ candidateClusters: number;
44
+ profilesCreated: number;
45
+ l2sLinked: number;
46
+ failed: number;
47
+ }
48
+ /**
49
+ * v0.30 / E5 — build L3 entity profiles by clustering L2 summaries with
50
+ * shared entity tags. Threshold 2+ L2s per entity. Mirrors buildDag L1->L2
51
+ * pattern, one level up.
52
+ *
53
+ * Born-dirty cancellation (E3 lesson): after linking L2 children to the new
54
+ * L3 (each link write fires E2 hook on L3 via widened markSummaryDirtyInTx),
55
+ * call clearSummaryDirtyAfterBuild with source='buildEntityProfiles-clean'
56
+ * so E3 sleep-cycle rebuild doesn't re-rebuild the freshly-built L3 this
57
+ * same cycle.
58
+ */
59
+ export declare function buildEntityProfiles(hippoRoot: string, l2Summaries: MemoryEntry[], opts: DagSummaryOptions): Promise<EntityProfilesBuildResult>;
20
60
  //# sourceMappingURL=dag.d.ts.map
package/dist/dag.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAsChE;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAUD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqCxB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAAE,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,cAAc,CAAC,CA2CzB"}
1
+ {"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AASpE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAsChE;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAUD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqCxB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAAE,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAkF3B;AAMD,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EAAE,EAC1B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,yBAAyB,CAAC,CA8EpC"}
package/dist/dag.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createMemory, Layer } from './memory.js';
2
- import { writeEntry } from './store.js';
2
+ import { writeEntry, loadAllDirtySummaries, loadChildrenOfSummary, applyRebuildResult, clearSummaryDirtyAfterBuild, } from './store.js';
3
3
  export function clusterFacts(facts) {
4
4
  if (facts.length === 0)
5
5
  return [];
@@ -31,12 +31,12 @@ export function clusterFacts(facts) {
31
31
  }
32
32
  return clusters;
33
33
  }
34
- const DAG_SUMMARY_PROMPT = `You are summarizing a cluster of facts about a specific topic/entity for a memory system.
35
-
36
- Topic: {label}
37
- Facts:
38
- {facts}
39
-
34
+ const DAG_SUMMARY_PROMPT = `You are summarizing a cluster of facts about a specific topic/entity for a memory system.
35
+
36
+ Topic: {label}
37
+ Facts:
38
+ {facts}
39
+
40
40
  Write a single concise paragraph (2-4 sentences) that captures all the key information from these facts. This summary will be used to quickly determine if this cluster is relevant to a future query, so include specific names, dates, numbers, and key details. Output ONLY the summary paragraph, no preamble.`;
41
41
  export async function generateDagSummary(label, factContents, opts) {
42
42
  const model = opts.model ?? 'claude-sonnet-4-6';
@@ -105,6 +105,163 @@ export async function buildDag(hippoRoot, facts, opts) {
105
105
  writeEntry(hippoRoot, updated);
106
106
  result.factsLinked++;
107
107
  }
108
+ // v0.30 / E3 — cancel the cascade of dirty-marks fired by member
109
+ // writeEntry calls (E2 hook on writeEntryDbOnly at store.ts:1214).
110
+ // The summary we just built IS fresh, no rebuild needed. Without this,
111
+ // E3 in the SAME sleep cycle would re-rebuild every new summary
112
+ // (2x LLM cost). plan-eng-r1 HIGH must-fix.
113
+ clearSummaryDirtyAfterBuild(hippoRoot, summaryEntry.id, summaryEntry.tenantId, 'buildDag');
114
+ }
115
+ return result;
116
+ }
117
+ /**
118
+ * v0.30 / E3 — sleep-cycle phase that drains the dirty L2 summary queue.
119
+ * Thin orchestrator; the heavy lifting lives in store.ts (load + apply)
120
+ * and dag.ts:generateDagSummary (LLM call).
121
+ *
122
+ * Per-summary try/catch isolation (plan-eng-r1 MED must-fix) — one
123
+ * throwing rebuild does NOT abort the rest of the queue.
124
+ *
125
+ * Race-loser handling: applyRebuildResult's UPDATE WHERE includes
126
+ * AND summary_dirty=1, so concurrent sleep's second writer returns
127
+ * changed=false. Silent skip (neither rebuilt++ nor failed++).
128
+ */
129
+ export async function rebuildDirtySummaries(hippoRoot, opts) {
130
+ const cap = opts.cap ?? 20;
131
+ const dirty = loadAllDirtySummaries(hippoRoot);
132
+ const capped = dirty.length > cap;
133
+ const queue = dirty.slice(0, cap);
134
+ const result = {
135
+ attempted: queue.length,
136
+ rebuilt: 0,
137
+ zeroChildSkipped: 0,
138
+ failed: 0,
139
+ capped,
140
+ };
141
+ for (const summary of queue) {
142
+ try {
143
+ const children = loadChildrenOfSummary(hippoRoot, summary.id, summary.tenantId);
144
+ if (children.length === 0) {
145
+ // Zero-child case: clear dirty + zero counts, no LLM call, no rebuild_count bump.
146
+ const changed = applyRebuildResult(hippoRoot, summary, {
147
+ content: summary.content,
148
+ descendant_count: 0,
149
+ earliest_at: null,
150
+ latest_at: null,
151
+ bumpRebuildCount: false,
152
+ zeroChildren: true,
153
+ actor: 'sleep',
154
+ });
155
+ if (changed)
156
+ result.zeroChildSkipped++;
157
+ // changed=false → race lost / row vanished; silently skip
158
+ continue;
159
+ }
160
+ // Derive label from summary's existing entity tags (mirrors clusterFacts)
161
+ const entityTags = summary.tags.filter((t) => t.startsWith('speaker:') || t.startsWith('topic:'));
162
+ const label = entityTags.length > 0
163
+ ? entityTags.map((t) => t.split(':')[1]).join(': ')
164
+ : summary.content.slice(0, 40);
165
+ const newContent = await generateDagSummary(label, children.map((c) => c.content), opts);
166
+ if (!newContent) {
167
+ // LLM null / fetch error → leave dirty for next cycle
168
+ result.failed++;
169
+ continue;
170
+ }
171
+ const childCreatedAts = children.map((c) => c.created).sort();
172
+ const changed = applyRebuildResult(hippoRoot, summary, {
173
+ content: newContent,
174
+ descendant_count: children.length,
175
+ earliest_at: childCreatedAts[0],
176
+ latest_at: childCreatedAts[childCreatedAts.length - 1],
177
+ bumpRebuildCount: true,
178
+ zeroChildren: false,
179
+ actor: 'sleep',
180
+ });
181
+ if (changed)
182
+ result.rebuilt++;
183
+ // changed=false → race lost; not failure, not success, silently skip
184
+ }
185
+ catch (err) {
186
+ // Per-summary failure isolation — one throw doesn't abort the queue.
187
+ // independent-review MED #2 fold: log enough to triage in production
188
+ // (audit() wraps its own writes try/catch per store.ts:2566, so a
189
+ // throw here is exotic: SQLite I/O error, prepare failure, etc).
190
+ result.failed++;
191
+ // eslint-disable-next-line no-console
192
+ console.error(`[rebuildDirtySummaries] summary ${summary.id} (tenant ${summary.tenantId}) failed: ${err instanceof Error ? err.message : String(err)}`);
193
+ }
194
+ }
195
+ return result;
196
+ }
197
+ /**
198
+ * v0.30 / E5 — build L3 entity profiles by clustering L2 summaries with
199
+ * shared entity tags. Threshold 2+ L2s per entity. Mirrors buildDag L1->L2
200
+ * pattern, one level up.
201
+ *
202
+ * Born-dirty cancellation (E3 lesson): after linking L2 children to the new
203
+ * L3 (each link write fires E2 hook on L3 via widened markSummaryDirtyInTx),
204
+ * call clearSummaryDirtyAfterBuild with source='buildEntityProfiles-clean'
205
+ * so E3 sleep-cycle rebuild doesn't re-rebuild the freshly-built L3 this
206
+ * same cycle.
207
+ */
208
+ export async function buildEntityProfiles(hippoRoot, l2Summaries, opts) {
209
+ const result = {
210
+ candidateClusters: 0,
211
+ profilesCreated: 0,
212
+ l2sLinked: 0,
213
+ failed: 0,
214
+ };
215
+ // Only L2 with no L3 parent yet (avoid re-clustering already-profiled L2s).
216
+ const unparented = l2Summaries.filter((s) => s.dag_level === 2 && !s.dag_parent_id);
217
+ // independent-review HIGH #1 fold: cluster ONLY within-tenant.
218
+ // clusterFacts has no tenant awareness; without this partition step a
219
+ // multi-tenant host could form a cluster spanning tenants and produce
220
+ // a single L3 with tenantId='default' that doesn't belong to either
221
+ // child tenant. Fix: bucket by tenantId, run clusterFacts per-tenant,
222
+ // pass tenantId to createMemory.
223
+ const byTenant = new Map();
224
+ for (const l2 of unparented) {
225
+ const tid = l2.tenantId ?? 'default';
226
+ const list = byTenant.get(tid) ?? [];
227
+ list.push(l2);
228
+ byTenant.set(tid, list);
229
+ }
230
+ for (const [tenantId, tenantL2s] of byTenant) {
231
+ const clusters = clusterFacts(tenantL2s);
232
+ const eligible = clusters.filter((c) => c.members.length >= 2);
233
+ result.candidateClusters += eligible.length;
234
+ for (const cluster of eligible) {
235
+ const summary = await generateDagSummary(cluster.label, cluster.members.map((m) => m.content), opts);
236
+ if (!summary) {
237
+ result.failed++;
238
+ continue;
239
+ }
240
+ const memberCreatedAts = cluster.members.map((m) => m.created).sort();
241
+ const nowIso = new Date().toISOString();
242
+ const profileEntry = createMemory(summary, {
243
+ layer: Layer.Semantic,
244
+ tags: [...cluster.entityTags, 'dag-entity-profile'],
245
+ confidence: 'inferred',
246
+ dag_level: 3,
247
+ tenantId, // HIGH #1 fold: thread tenant explicitly
248
+ });
249
+ profileEntry.descendant_count = cluster.members.length;
250
+ profileEntry.earliest_at = memberCreatedAts[0];
251
+ profileEntry.latest_at = memberCreatedAts[memberCreatedAts.length - 1];
252
+ profileEntry.dag_level_3_built_at = nowIso;
253
+ writeEntry(hippoRoot, profileEntry);
254
+ result.profilesCreated++;
255
+ for (const member of cluster.members) {
256
+ const updated = { ...member, dag_parent_id: profileEntry.id };
257
+ writeEntry(hippoRoot, updated);
258
+ result.l2sLinked++;
259
+ }
260
+ // E3 born-dirty cancellation, same dance as buildDag L161-168 but for
261
+ // L3. Pass source='buildEntityProfiles-clean' to distinguish in audit.
262
+ // Args: (root, id, tenantId, actor, source).
263
+ clearSummaryDirtyAfterBuild(hippoRoot, profileEntry.id, tenantId, 'buildEntityProfiles', 'buildEntityProfiles-clean');
264
+ }
108
265
  }
109
266
  return result;
110
267
  }
package/dist/dag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAoB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQxC,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CACzE,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC9B,MAAM,OAAO,GAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;QACF,MAAM,KAAK,GAAG,UAAU;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAQD,MAAM,kBAAkB,GAAG;;;;;;mTAMwR,CAAC;AAEpT,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,YAAsB,EACtB,IAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IAEtC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,kBAAkB;SAC9B,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;SACzB,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAElC,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,OAAO,CAAC,uCAAuC,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;gBACxB,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,GAAG;gBACf,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2C,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,KAAoB,EACpB,IAAuB;IAEvB,MAAM,MAAM,GAAmB,EAAE,iBAAiB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAE7F,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC7E,CAAC;IAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAEnD,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EACrC,IAAI,CACL,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE;YACzC,KAAK,EAAE,KAAK,CAAC,QAAQ;YACrB,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;YAC5C,UAAU,EAAE,UAAU;YACtB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;QACH,yEAAyE;QACzE,uEAAuE;QACvE,uDAAuD;QACvD,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACvD,YAAY,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC/C,YAAY,CAAC,SAAS,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvE,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACpC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAE1B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,OAAO,GAAgB,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;YAC3E,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAq6BD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAcD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CA2B/D;AAgDD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAI7D;AAwDD,wBAAgB,YAAY,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAGhF;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAE5D;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,SAAK,GAAG,IAAI,CAS5E"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAqhCD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAcD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CA2B/D;AAgDD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAI7D;AAwDD,wBAAgB,YAAY,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAGhF;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAE5D;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,SAAK,GAAG,IAAI,CAS5E"}
package/dist/db.js CHANGED
@@ -6,7 +6,7 @@ import { cleanupArchivedMirrors } from './raw-archive-mirror-cleanup.js';
6
6
  import { PACKAGE_VERSION, compareSemver } from './version.js';
7
7
  const require = createRequire(import.meta.url);
8
8
  const { DatabaseSync } = require('node:sqlite');
9
- const CURRENT_SCHEMA_VERSION = 27;
9
+ const CURRENT_SCHEMA_VERSION = 29;
10
10
  const MIGRATIONS = [
11
11
  {
12
12
  version: 1,
@@ -896,6 +896,118 @@ const MIGRATIONS = [
896
896
  }
897
897
  },
898
898
  },
899
+ {
900
+ version: 28,
901
+ up: (db) => {
902
+ // E1 of 5-episode DAG live-coupling arc (docs/plans/2026-05-25-dag-e1-schema-v28.md).
903
+ // Adds dirty-flag persistence for the existing DAG layer's level-2
904
+ // summaries so E2 (child-write propagation) and E3 (sleep-cycle
905
+ // rebuild) have somewhere to write + read the staleness signal. Adds
906
+ // dag_level_3_built_at as a column (Keith Q5 pick: lets E5 entity-
907
+ // profile build path land without a second migration).
908
+ //
909
+ // All columns are additive + DEFAULTed/nullable, so backfill is
910
+ // automatic for existing rows. No min_compatible_binary bump: old
911
+ // binaries (v1.12.x) ignore the columns on SELECTs that don't name
912
+ // them; new binaries on old data hit this migration at openHippoDb
913
+ // time before any DAG path touches summary_dirty.
914
+ //
915
+ // Precedent for column-only guards on memories: v25 (db.ts:827),
916
+ // which added the DAG cache columns the same way. memories table
917
+ // itself comes from v1 and is always present, so the tableExists
918
+ // half of the v26/v27 guard pattern isn't load-bearing here.
919
+ if (!tableHasColumn(db, 'memories', 'summary_dirty')) {
920
+ db.exec(`ALTER TABLE memories ADD COLUMN summary_dirty INTEGER NOT NULL DEFAULT 0`);
921
+ }
922
+ if (!tableHasColumn(db, 'memories', 'last_rebuilt_at')) {
923
+ db.exec(`ALTER TABLE memories ADD COLUMN last_rebuilt_at TEXT`);
924
+ }
925
+ if (!tableHasColumn(db, 'memories', 'rebuild_count')) {
926
+ db.exec(`ALTER TABLE memories ADD COLUMN rebuild_count INTEGER NOT NULL DEFAULT 0`);
927
+ }
928
+ if (!tableHasColumn(db, 'memories', 'dag_level_3_built_at')) {
929
+ // Reserved for E5: buildEntityProfiles will set this on level-3
930
+ // rows when they're created. Always NULL for level 0/1/2 rows.
931
+ db.exec(`ALTER TABLE memories ADD COLUMN dag_level_3_built_at TEXT`);
932
+ }
933
+ },
934
+ },
935
+ {
936
+ version: 29,
937
+ up: (db) => {
938
+ // E2 prediction first-class object (docs/plans/2026-05-26-e2-prediction-object.md).
939
+ // Adds a canonical predictions table for J3 reference-class /
940
+ // planning-fallacy detector (a follow-up episode). Predictions
941
+ // duplicate claim_text in the table itself so memory deletion
942
+ // (forget/consolidate/archive) does not lose prediction data; FK
943
+ // memory_id is NULLABLE with ON DELETE SET NULL.
944
+ //
945
+ // Cross-tenant safety: BEFORE INSERT + BEFORE UPDATE triggers
946
+ // enforce tenant_id match against the referenced memory. SQLite's
947
+ // ON DELETE SET NULL is incompatible with composite FK where one
948
+ // side is NOT NULL, so the trigger pattern replaces a composite
949
+ // FK target. Precedent: v14 memories.kind trigger pair at db.ts:298-322.
950
+ //
951
+ // CHECK constraint pins closure_state to (open|closed|closed-unknown).
952
+ // J3 computes accuracy (clean vs regressed) from (estimate_value,
953
+ // actual_value) at query time.
954
+ if (!tableExists(db, 'predictions')) {
955
+ db.exec(`
956
+ CREATE TABLE predictions (
957
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
958
+ memory_id TEXT,
959
+ tenant_id TEXT NOT NULL,
960
+ class_tag TEXT NOT NULL,
961
+ claim_text TEXT NOT NULL,
962
+ estimate_value REAL,
963
+ estimate_unit TEXT,
964
+ target_date TEXT,
965
+ actual_value REAL,
966
+ closure_state TEXT NOT NULL DEFAULT 'open'
967
+ CHECK (closure_state IN ('open', 'closed', 'closed-unknown')),
968
+ closed_at TEXT,
969
+ closure_note TEXT,
970
+ created_at TEXT NOT NULL,
971
+ FOREIGN KEY (memory_id) REFERENCES memories(id) ON DELETE SET NULL
972
+ )
973
+ `);
974
+ db.exec(`
975
+ CREATE INDEX IF NOT EXISTS idx_predictions_tenant_class
976
+ ON predictions(tenant_id, class_tag, closure_state)
977
+ `);
978
+ db.exec(`
979
+ CREATE INDEX IF NOT EXISTS idx_predictions_memory
980
+ ON predictions(memory_id) WHERE memory_id IS NOT NULL
981
+ `);
982
+ // Cross-tenant safety: tenant_id must match the referenced memory's
983
+ // tenant_id when memory_id IS NOT NULL. INSERT + UPDATE pair, mirroring
984
+ // v14 memories.kind enforcement (db.ts:298-322).
985
+ db.exec(`
986
+ CREATE TRIGGER IF NOT EXISTS trg_predictions_tenant_match_insert
987
+ BEFORE INSERT ON predictions
988
+ WHEN NEW.memory_id IS NOT NULL
989
+ BEGIN
990
+ SELECT CASE
991
+ WHEN NEW.tenant_id != (SELECT tenant_id FROM memories WHERE id = NEW.memory_id)
992
+ THEN RAISE(ABORT, 'predictions.tenant_id must match memories.tenant_id for the referenced memory')
993
+ END;
994
+ END
995
+ `);
996
+ db.exec(`
997
+ CREATE TRIGGER IF NOT EXISTS trg_predictions_tenant_match_update
998
+ BEFORE UPDATE ON predictions
999
+ WHEN NEW.memory_id IS NOT NULL
1000
+ AND (NEW.memory_id IS NOT OLD.memory_id OR NEW.tenant_id IS NOT OLD.tenant_id)
1001
+ BEGIN
1002
+ SELECT CASE
1003
+ WHEN NEW.tenant_id != (SELECT tenant_id FROM memories WHERE id = NEW.memory_id)
1004
+ THEN RAISE(ABORT, 'predictions.tenant_id must match memories.tenant_id for the referenced memory')
1005
+ END;
1006
+ END
1007
+ `);
1008
+ }
1009
+ },
1010
+ },
899
1011
  ];
900
1012
  function tableHasColumn(db, tableName, columnName) {
901
1013
  if (!/^[a-z_]+$/i.test(tableName))