agent-working-memory 0.16.1 → 0.18.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 (170) hide show
  1. package/README.md +321 -318
  2. package/dist/adapters/common.d.ts +34 -0
  3. package/dist/adapters/common.d.ts.map +1 -1
  4. package/dist/adapters/common.js +528 -444
  5. package/dist/adapters/common.js.map +1 -1
  6. package/dist/api/routes.d.ts.map +1 -1
  7. package/dist/api/routes.js +19 -0
  8. package/dist/api/routes.js.map +1 -1
  9. package/dist/cli/migrate.d.ts.map +1 -1
  10. package/dist/cli/migrate.js +31 -29
  11. package/dist/cli/migrate.js.map +1 -1
  12. package/dist/core/asked-value.d.ts +37 -0
  13. package/dist/core/asked-value.d.ts.map +1 -0
  14. package/dist/core/asked-value.js +77 -0
  15. package/dist/core/asked-value.js.map +1 -0
  16. package/dist/core/conflicts.d.ts +89 -0
  17. package/dist/core/conflicts.d.ts.map +1 -0
  18. package/dist/core/conflicts.js +267 -0
  19. package/dist/core/conflicts.js.map +1 -0
  20. package/dist/core/embeddings.d.ts +14 -2
  21. package/dist/core/embeddings.d.ts.map +1 -1
  22. package/dist/core/embeddings.js +32 -10
  23. package/dist/core/embeddings.js.map +1 -1
  24. package/dist/core/format-recall.d.ts +21 -1
  25. package/dist/core/format-recall.d.ts.map +1 -1
  26. package/dist/core/format-recall.js +60 -5
  27. package/dist/core/format-recall.js.map +1 -1
  28. package/dist/core/ml-worker.d.ts +24 -1
  29. package/dist/core/ml-worker.d.ts.map +1 -1
  30. package/dist/core/ml-worker.js +165 -4
  31. package/dist/core/ml-worker.js.map +1 -1
  32. package/dist/core/model-daemon-client.d.ts +77 -0
  33. package/dist/core/model-daemon-client.d.ts.map +1 -0
  34. package/dist/core/model-daemon-client.js +383 -0
  35. package/dist/core/model-daemon-client.js.map +1 -0
  36. package/dist/core/model-daemon-server.d.ts +71 -0
  37. package/dist/core/model-daemon-server.d.ts.map +1 -0
  38. package/dist/core/model-daemon-server.js +363 -0
  39. package/dist/core/model-daemon-server.js.map +1 -0
  40. package/dist/core/model-daemon.d.ts +137 -0
  41. package/dist/core/model-daemon.d.ts.map +1 -0
  42. package/dist/core/model-daemon.js +231 -0
  43. package/dist/core/model-daemon.js.map +1 -0
  44. package/dist/core/query-expander.d.ts +5 -0
  45. package/dist/core/query-expander.d.ts.map +1 -1
  46. package/dist/core/query-expander.js +3 -2
  47. package/dist/core/query-expander.js.map +1 -1
  48. package/dist/core/recall-config.d.ts +1 -1
  49. package/dist/core/recall-config.d.ts.map +1 -1
  50. package/dist/core/recall-config.js +5 -0
  51. package/dist/core/recall-config.js.map +1 -1
  52. package/dist/core/rerank-window.d.ts +7 -2
  53. package/dist/core/rerank-window.d.ts.map +1 -1
  54. package/dist/core/rerank-window.js +9 -4
  55. package/dist/core/rerank-window.js.map +1 -1
  56. package/dist/core/rerank2.d.ts +52 -2
  57. package/dist/core/rerank2.d.ts.map +1 -1
  58. package/dist/core/rerank2.js +60 -3
  59. package/dist/core/rerank2.js.map +1 -1
  60. package/dist/core/reranker.d.ts +19 -0
  61. package/dist/core/reranker.d.ts.map +1 -1
  62. package/dist/core/reranker.js +76 -12
  63. package/dist/core/reranker.js.map +1 -1
  64. package/dist/core/salience.d.ts +2 -0
  65. package/dist/core/salience.d.ts.map +1 -1
  66. package/dist/core/salience.js +45 -18
  67. package/dist/core/salience.js.map +1 -1
  68. package/dist/core/trust.d.ts +32 -0
  69. package/dist/core/trust.d.ts.map +1 -0
  70. package/dist/core/trust.js +66 -0
  71. package/dist/core/trust.js.map +1 -0
  72. package/dist/core/validity.d.ts +21 -0
  73. package/dist/core/validity.d.ts.map +1 -0
  74. package/dist/core/validity.js +41 -0
  75. package/dist/core/validity.js.map +1 -0
  76. package/dist/core/whoami.d.ts +3 -0
  77. package/dist/core/whoami.d.ts.map +1 -1
  78. package/dist/core/whoami.js +14 -0
  79. package/dist/core/whoami.js.map +1 -1
  80. package/dist/core/write-pipeline.d.ts +48 -0
  81. package/dist/core/write-pipeline.d.ts.map +1 -1
  82. package/dist/core/write-pipeline.js +104 -4
  83. package/dist/core/write-pipeline.js.map +1 -1
  84. package/dist/engine/activation.d.ts.map +1 -1
  85. package/dist/engine/activation.js +27 -4
  86. package/dist/engine/activation.js.map +1 -1
  87. package/dist/engine/consolidation.d.ts.map +1 -1
  88. package/dist/engine/consolidation.js +67 -5
  89. package/dist/engine/consolidation.js.map +1 -1
  90. package/dist/hooks/prime-query.d.ts +57 -0
  91. package/dist/hooks/prime-query.d.ts.map +1 -0
  92. package/dist/hooks/prime-query.js +388 -0
  93. package/dist/hooks/prime-query.js.map +1 -0
  94. package/dist/hooks/prime.d.ts +8 -0
  95. package/dist/hooks/prime.d.ts.map +1 -1
  96. package/dist/hooks/prime.js +21 -2
  97. package/dist/hooks/prime.js.map +1 -1
  98. package/dist/hooks/sidecar.d.ts +7 -0
  99. package/dist/hooks/sidecar.d.ts.map +1 -1
  100. package/dist/hooks/sidecar.js +10 -2
  101. package/dist/hooks/sidecar.js.map +1 -1
  102. package/dist/index.js +11 -3
  103. package/dist/index.js.map +1 -1
  104. package/dist/mcp.js +148 -103
  105. package/dist/mcp.js.map +1 -1
  106. package/dist/model-daemon.d.ts +8 -0
  107. package/dist/model-daemon.d.ts.map +1 -0
  108. package/dist/model-daemon.js +45 -0
  109. package/dist/model-daemon.js.map +1 -0
  110. package/dist/storage/factory.d.ts.map +1 -1
  111. package/dist/storage/factory.js +5 -0
  112. package/dist/storage/factory.js.map +1 -1
  113. package/dist/storage/pglite-schema.d.ts.map +1 -1
  114. package/dist/storage/pglite-schema.js +176 -170
  115. package/dist/storage/pglite-schema.js.map +1 -1
  116. package/dist/storage/pglite.d.ts +5 -0
  117. package/dist/storage/pglite.d.ts.map +1 -1
  118. package/dist/storage/pglite.js +165 -153
  119. package/dist/storage/pglite.js.map +1 -1
  120. package/dist/storage/postgres.d.ts +5 -0
  121. package/dist/storage/postgres.d.ts.map +1 -1
  122. package/dist/storage/postgres.js +165 -153
  123. package/dist/storage/postgres.js.map +1 -1
  124. package/dist/storage/sqlite.d.ts +22 -0
  125. package/dist/storage/sqlite.d.ts.map +1 -1
  126. package/dist/storage/sqlite.js +400 -363
  127. package/dist/storage/sqlite.js.map +1 -1
  128. package/dist/types/engram.d.ts +33 -0
  129. package/dist/types/engram.d.ts.map +1 -1
  130. package/dist/types/engram.js.map +1 -1
  131. package/package.json +106 -106
  132. package/plugin/.claude-plugin/plugin.json +1 -1
  133. package/plugin/README.md +1 -1
  134. package/plugin/bin/awm-mcp-launcher.cjs +2 -2
  135. package/plugin/skills/awm-memory/SKILL.md +16 -5
  136. package/src/adapters/common.ts +881 -800
  137. package/src/api/routes.ts +20 -0
  138. package/src/cli/migrate.ts +309 -307
  139. package/src/core/asked-value.ts +74 -0
  140. package/src/core/conflicts.ts +280 -0
  141. package/src/core/embeddings.ts +35 -10
  142. package/src/core/format-recall.ts +83 -25
  143. package/src/core/ml-worker.ts +458 -281
  144. package/src/core/model-daemon-client.ts +374 -0
  145. package/src/core/model-daemon-server.ts +344 -0
  146. package/src/core/model-daemon.ts +243 -0
  147. package/src/core/query-expander.ts +127 -126
  148. package/src/core/recall-config.ts +5 -0
  149. package/src/core/rerank-window.ts +164 -159
  150. package/src/core/rerank2.ts +143 -82
  151. package/src/core/reranker.ts +78 -11
  152. package/src/core/salience.ts +45 -18
  153. package/src/core/trust.ts +65 -0
  154. package/src/core/validity.ts +47 -0
  155. package/src/core/whoami.ts +136 -120
  156. package/src/core/write-pipeline.ts +143 -4
  157. package/src/engine/activation.ts +27 -4
  158. package/src/engine/consolidation.ts +950 -887
  159. package/src/hooks/prime-query.ts +375 -0
  160. package/src/hooks/prime.ts +25 -2
  161. package/src/hooks/sidecar.ts +13 -3
  162. package/src/index.ts +255 -248
  163. package/src/mcp.ts +1521 -1475
  164. package/src/model-daemon.ts +48 -0
  165. package/src/storage/factory.ts +25 -19
  166. package/src/storage/pglite-schema.ts +199 -193
  167. package/src/storage/pglite.ts +1513 -1498
  168. package/src/storage/postgres.ts +1613 -1598
  169. package/src/storage/sqlite.ts +2056 -2019
  170. package/src/types/engram.ts +30 -0
@@ -53,12 +53,41 @@ export interface WriteInput {
53
53
  eventType?: SalienceEventType;
54
54
  surprise?: number;
55
55
  decisionMade?: boolean;
56
+ /**
57
+ * Caller-declared purpose of the write: 'decision' | 'question' | 'todo' |
58
+ * 'finding' | 'context'. Stored as an `intent=` tag by the callers, and read HERE
59
+ * so a declared decision reaches the salience filter.
60
+ *
61
+ * It did not, before 2026-10-12: `intent` became a tag and nothing else, while the
62
+ * redundant `decisionMade` boolean was the only wired path, so a caller following
63
+ * the documented tagging discipline got no salience credit for saying this was a
64
+ * decision. Measured over all 496 discarded writes in the live store
65
+ * (`low-salience`, `work`+`personal`): those tagged `intent=decision` were later
66
+ * recalled at **77.3% against a 38.1% base rate**, +41pp — the strongest
67
+ * discriminator of any feature tested, discarded anyway.
68
+ *
69
+ * Mapped in the pipeline rather than at each call site so both write surfaces, and
70
+ * any future one, inherit it; widening the content-based operational-verb list was
71
+ * tested on the same population and rejected, because every candidate token scored
72
+ * at the base rate.
73
+ */
74
+ intent?: string;
56
75
  causalDepth?: number;
57
76
  resolutionEffort?: number;
58
77
  /** Confidence override. When unset, defaults from disposition + eventType priors. */
59
78
  confidence?: number;
60
79
  /** Explicit supersession requested by caller (independent of correction-on-match). */
61
80
  supersedes?: string;
81
+ /**
82
+ * This write corrects an existing memory whose id the caller does not have
83
+ * (2026-10-19). The closest active memory about the same thing — the same
84
+ * concept, else the novelty match when it is close enough — is superseded,
85
+ * the correction goes active at no less than that memory's confidence, and
86
+ * the result says what was replaced (`correctionOf`). Never reinforce-merges.
87
+ * With nothing close enough, the write is stored as new and `correctionOf`
88
+ * is null. An explicit `supersedes` outranks this.
89
+ */
90
+ correction?: boolean;
62
91
  /** Workspace scope for cross-agent novelty (v0.5.4+ stores only). */
63
92
  workspace?: string | null;
64
93
  /** Set to false to skip the reinforce/supersede branching and always create. */
@@ -103,6 +132,25 @@ export interface WriteResult {
103
132
  supersedeOf?: {
104
133
  id: string;
105
134
  };
135
+ /**
136
+ * Set when the write asked `correction: true`: the memory it replaced, or
137
+ * null when nothing close enough existed and the write was stored as new.
138
+ */
139
+ correctionOf?: {
140
+ id: string;
141
+ concept: string;
142
+ matchScore: number;
143
+ } | null;
144
+ /**
145
+ * Set when a merge, supersede, revive or correction was refused because the
146
+ * write is less trusted than the memory it matched (src/core/trust.ts). The
147
+ * write was stored as its own engram instead.
148
+ */
149
+ trustBlocked?: {
150
+ matchedId: string;
151
+ writeTrust: number | null;
152
+ matchedTrust: number | null;
153
+ };
106
154
  }
107
155
  export interface WritePipelineEngines {
108
156
  store: EngramStore;
@@ -1 +1 @@
1
- {"version":3,"file":"write-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAQvB,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,uFAAuF;AACvF,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAY9C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,oBAAoB,EAAE,eAAe,EAAE,CAAC;IAC5D;;qEAEiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,uGAAuG;IACvG,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,uDAAuD;IACvD,aAAa,EAAE,aAAa,CAAC;IAC7B,kEAAkE;IAClE,SAAS,CAAC,EAAE;QACV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,iEAAiE;IACjE,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,WAAW,CAAC,CA8LtB"}
1
+ {"version":3,"file":"write-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@
34
34
  * touch an existing engram. SUPERSEDE writes follow the disposition of
35
35
  * the new engram (typically active because corrections are high-salience).
36
36
  */
37
+ import { mergeBlockedByTrust, trustTier } from './trust.js';
37
38
  import { evaluateSalience, computeNoveltyWithMatch, detectUserFeedback, } from './salience.js';
38
39
  import { embed } from './embeddings.js';
39
40
  import { extractMetaTags } from './auto-tagger.js';
@@ -43,6 +44,14 @@ import { DEFAULT_AGENT_CONFIG } from '../types/agent.js';
43
44
  import { buildRetrievalText } from './retrieval-text.js';
44
45
  /** Confidence floor below which a matched engram is treated as "decaying out". */
45
46
  export const HEALTHY_CONFIDENCE_FLOOR = 0.3;
47
+ /**
48
+ * Lowest novelty match score at which `correction: true` may supersede the
49
+ * match without an id. matchScore is the stronger of BM25 and cosine
50
+ * similarity (0–1). A paraphrased correction of one fact scores well above
51
+ * this (the probe's flight correction: 0.95); two unrelated memories about
52
+ * the same subject do not.
53
+ */
54
+ const CORRECTION_MIN_MATCH = 0.6;
46
55
  /** Confidence delta applied on reinforcement. Bounded by REINFORCE_CONFIDENCE_CEIL. */
47
56
  export const REINFORCE_CONFIDENCE_DELTA = 0.05;
48
57
  export const REINFORCE_CONFIDENCE_CEIL = 0.95;
@@ -82,8 +91,19 @@ const CONFIDENCE_PRIORS = {
82
91
  */
83
92
  export async function performWrite(engines, input) {
84
93
  const { store, connectionEngine } = engines;
94
+ // An explicit `supersedes` argument outranks every novelty signal: the caller has
95
+ // NAMED the engram this write replaces. Gating reinforcement off it routes the write
96
+ // to createNewEngram, which is the only path that honors meta.supersedesId (see the
97
+ // supersession side-effects below). Without this gate the argument was silently
98
+ // discarded by every branch in the block below — R1 (healthy match reinforced),
99
+ // R2 (the superseder reinforced instead), R1b (an archived match revived), and R3,
100
+ // which supersedes `matched.id` rather than the id the caller actually asked for.
85
101
  const enableReinforcement = input.enableReinforcement !== false
86
- && process.env.AWM_WRITE_PIPELINE !== 'off';
102
+ && process.env.AWM_WRITE_PIPELINE !== 'off'
103
+ && !input.supersedes
104
+ // A correction must never reinforce-merge: merging is exactly how a changed
105
+ // value ended up inside the stale memory with a "--- reinforced ---" marker.
106
+ && !input.correction;
87
107
  // Profiling: AWM_PROFILE_WRITE=1 logs ms-per-phase to stderr (v0.8.2).
88
108
  // Off by default; zero cost when unset.
89
109
  const profile = process.env.AWM_PROFILE_WRITE === '1';
@@ -126,7 +146,7 @@ export async function performWrite(engines, input) {
126
146
  content: input.content,
127
147
  eventType: effectiveEventType,
128
148
  surprise: input.surprise,
129
- decisionMade: input.decisionMade,
149
+ decisionMade: input.decisionMade || input.intent === 'decision',
130
150
  causalDepth: input.causalDepth,
131
151
  resolutionEffort: input.resolutionEffort,
132
152
  novelty: noveltyResult.novelty,
@@ -136,6 +156,7 @@ export async function performWrite(engines, input) {
136
156
  const tStartCreate = performance.now();
137
157
  let busyHit = false;
138
158
  let result = null;
159
+ let trustBlocked;
139
160
  try {
140
161
  if (enableReinforcement && noveltyResult.matchedEngramId) {
141
162
  const matched = await store.getEngram(noveltyResult.matchedEngramId);
@@ -143,7 +164,12 @@ export async function performWrite(engines, input) {
143
164
  // workspace/hive recall can surface another agent's same-concept engram as the match; mutating it
144
165
  // (merge content, re-embed, bump confidence, or supersede) would corrupt that agent's memory. A
145
166
  // cross-agent match falls through to createNewEngram so this agent gets its own copy.
146
- if (matched && matched.agentId === input.agentId) {
167
+ // Trust guard (2026-10-19, src/core/trust.ts): a less-trusted write never merges into,
168
+ // supersedes or revives a more-trusted memory. It falls through to its own engram.
169
+ if (matched && matched.agentId === input.agentId && mergeBlockedByTrust(input.tags, matched.tags)) {
170
+ trustBlocked = { matchedId: matched.id, writeTrust: trustTier(input.tags), matchedTrust: trustTier(matched.tags) };
171
+ }
172
+ if (matched && matched.agentId === input.agentId && !trustBlocked) {
147
173
  const newConcept = (input.concept ?? '').toLowerCase().trim();
148
174
  const matchedConcept = (matched.concept ?? '').toLowerCase().trim();
149
175
  const sameConcept = newConcept === matchedConcept && newConcept.length > 0;
@@ -213,14 +239,88 @@ export async function performWrite(engines, input) {
213
239
  }
214
240
  }
215
241
  }
242
+ // -- Correction by intent, not by id (2026-10-19) --
243
+ // The MWA evaluation probe wrote "now departs 8:40" as an ordinary observation
244
+ // under a new concept: novelty 0.10, so it was stored at confidence 0.25 and
245
+ // ranked BELOW the stale "10:15". The writer knew it was a correction; it did
246
+ // not know the old id, and the only in-band way to say so (eventType surprise
247
+ // on the SAME concept, R3 above) is undocumented and needs the exact concept.
248
+ // `correction: true` names the intent. The target is the novelty match — the
249
+ // closest memory in content — when it is close enough to be the same fact;
250
+ // a superseded match is followed to its superseder. Below the floor nothing
251
+ // is replaced and the caller is told, because superseding a stranger would
252
+ // retire a true fact.
253
+ let correctionOf;
254
+ if (!result && input.correction && !input.supersedes) {
255
+ correctionOf = null;
256
+ let target = noveltyResult.matchedEngramId
257
+ ? await store.getEngram(noveltyResult.matchedEngramId)
258
+ : null;
259
+ if (target?.supersededBy)
260
+ target = await store.getEngram(target.supersededBy);
261
+ const closeEnough = noveltyResult.matchScore >= CORRECTION_MIN_MATCH;
262
+ if (target && closeEnough && target.agentId === input.agentId && mergeBlockedByTrust(input.tags, target.tags)) {
263
+ trustBlocked = { matchedId: target.id, writeTrust: trustTier(input.tags), matchedTrust: trustTier(target.tags) };
264
+ }
265
+ if (target && closeEnough && target.agentId === input.agentId && !trustBlocked
266
+ && !target.retracted && target.stage !== 'archived' && !target.supersededBy) {
267
+ const correctionSalience = {
268
+ ...salience,
269
+ disposition: 'active',
270
+ reasonCodes: [...salience.reasonCodes, 'correction:override-active'],
271
+ };
272
+ result = await createNewEngram(engines, {
273
+ ...input,
274
+ // The replacement must not stand weaker than what it replaces.
275
+ confidence: Math.max(input.confidence ?? 0, target.confidence),
276
+ }, correctionSalience, noveltyResult, {
277
+ effectiveEventType,
278
+ effectiveMemoryClass,
279
+ supersedesId: target.id,
280
+ }, prewriteEmbedding);
281
+ correctionOf = { id: target.id, concept: target.concept, matchScore: noveltyResult.matchScore };
282
+ }
283
+ }
216
284
  // -- Default: create new engram (if no reinforce/supersede branch fired) --
217
285
  if (!result) {
218
- result = await createNewEngram(engines, input, salience, noveltyResult, {
286
+ // An explicit `supersedes` names the target, but naming it does not make the
287
+ // write trustworthy: an untrusted write must not retire a trusted memory by id.
288
+ if (input.supersedes) {
289
+ const named = await store.getEngram(input.supersedes);
290
+ if (named && mergeBlockedByTrust(input.tags, named.tags)) {
291
+ trustBlocked = { matchedId: named.id, writeTrust: trustTier(input.tags), matchedTrust: trustTier(named.tags) };
292
+ input = { ...input, supersedes: undefined };
293
+ }
294
+ }
295
+ // A correction of a near-duplicate has low novelty BY CONSTRUCTION: the replacement
296
+ // says almost what the engram it replaces said. Left on its own salience it lands at
297
+ // `discard` (confidence 0.25, tagged `low-salience`, below HEALTHY_CONFIDENCE_FLOOR)
298
+ // or at `staging` — while the supersession side-effect fires regardless. The old
299
+ // engram would be retired and its replacement too weak to stand in for it, so the
300
+ // fact leaves recall altogether: strictly worse than dropping the argument. R3 above
301
+ // already forces `active` for precisely this reason; an explicit `supersedes` is the
302
+ // same correction intent, stated by the caller instead of inferred from eventType.
303
+ const supersedeSalience = input.supersedes
304
+ ? {
305
+ ...salience,
306
+ disposition: 'active',
307
+ reasonCodes: [...salience.reasonCodes, 'supersede:override-active'],
308
+ }
309
+ : salience;
310
+ result = await createNewEngram(engines, input, supersedeSalience, noveltyResult, {
219
311
  effectiveEventType,
220
312
  effectiveMemoryClass,
221
313
  supersedesId: input.supersedes,
222
314
  }, prewriteEmbedding);
223
315
  }
316
+ // A correction always reports what it did, including "nothing" (null).
317
+ if (input.correction && !input.supersedes && result)
318
+ result.correctionOf = correctionOf ?? null;
319
+ if (trustBlocked && result) {
320
+ result.trustBlocked = trustBlocked;
321
+ if (result.salience)
322
+ result.salience = { ...result.salience, reasonCodes: [...result.salience.reasonCodes, 'trust:no-merge'] };
323
+ }
224
324
  }
225
325
  catch (e) {
226
326
  const es = `${e?.code ?? ''} ${e?.message ?? ''}`;
@@ -1 +1 @@
1
- {"version":3,"file":"write-pipeline.js","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-pipeline.js","sourceRoot":"","sources":["../../src/core/write-pipeline.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAKH,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GAInB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,uFAAuF;AACvF,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAE9C,gFAAgF;AAChF,MAAM,iBAAiB,GAA2B;IAChD,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;CAClB,CAAC;AA+GF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAA6B,EAC7B,KAAiB;IAEjB,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAC5C,kFAAkF;IAClF,qFAAqF;IACrF,oFAAoF;IACpF,gFAAgF;IAChF,gFAAgF;IAChF,mFAAmF;IACnF,kFAAkF;IAClF,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,KAAK,KAAK;WAC1D,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,KAAK;WACxC,CAAC,KAAK,CAAC,UAAU;QACpB,4EAA4E;QAC5E,6EAA6E;WAC1E,CAAC,KAAK,CAAC,UAAU,CAAC;IAEvB,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;IACtD,4EAA4E;IAC5E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAE1C,4EAA4E;IAC5E,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,4EAA4E;IAC5E,EAAE;IACF,2EAA2E;IAC3E,uEAAuE;IACvE,0BAA0B;IAC1B,wEAAwE;IACxE,wCAAwC;IACxC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACtC,IAAI,iBAAiB,GAAoB,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,iBAAiB,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC,CAAC,iDAAiD,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;IAEzC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,MAAM,uBAAuB,CACjD,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAClD,KAAK,CAAC,SAAS,IAAI,IAAI,EACvB,iBAAiB,CAClB,CAAC;IACF,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;IAE7C,6DAA6D;IAC7D,MAAM,kBAAkB,GACtB,KAAK,CAAC,SAAS,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAE3F,mFAAmF;IACnF,IAAI,oBAAoB,GAA4B,KAAK,CAAC,WAAW,CAAC;IACtE,IAAI,CAAC,oBAAoB,IAAI,kBAAkB,KAAK,eAAe,EAAE,CAAC;QACpE,oBAAoB,GAAG,WAAW,CAAC;IACrC,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,kBAAkB;QAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAC/D,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,WAAW,EAAE,oBAAoB;KAClC,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,IAAI,YAAyC,CAAC;IAC9C,IAAI,CAAC;QACL,IAAI,mBAAmB,IAAI,aAAa,CAAC,eAAe,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YACrE,8FAA8F;YAC9F,kGAAkG;YAClG,gGAAgG;YAChG,sFAAsF;YACtF,uFAAuF;YACvF,mFAAmF;YACnF,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClG,YAAY,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrH,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpE,MAAM,WAAW,GAAG,UAAU,KAAK,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBAE3E,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,kBAAkB,GAAG,kBAAkB,KAAK,UAAU;2BACvD,kBAAkB,KAAK,UAAU,CAAC;oBAEvC,IAAI,kBAAkB,EAAE,CAAC;wBACvB,wDAAwD;wBACxD,mEAAmE;wBACnE,oEAAoE;wBACpE,kEAAkE;wBAClE,0DAA0D;wBAC1D,+DAA+D;wBAC/D,kEAAkE;wBAClE,mEAAmE;wBACnE,mEAAmE;wBACnE,2CAA2C;wBAC3C,MAAM,kBAAkB,GAAmB;4BACzC,GAAG,QAAQ;4BACX,WAAW,EAAE,QAAiB;4BAC9B,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC;yBACrE,CAAC;wBACF,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE;4BAChF,kBAAkB;4BAClB,oBAAoB;4BACpB,YAAY,EAAE,OAAO,CAAC,EAAE;yBACzB,EAAE,iBAAiB,CAAC,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,0CAA0C;wBAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,QAAQ;+BACvC,OAAO,CAAC,UAAU,IAAI,wBAAwB;+BAC9C,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;wBAElC,IAAI,SAAS,EAAE,CAAC;4BACd,qEAAqE;4BACrE,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;wBACzG,CAAC;6BAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;4BAChC,0EAA0E;4BAC1E,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;4BAC/D,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ;mCACxC,UAAU,CAAC,UAAU,IAAI,wBAAwB;mCACjD,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gCACvC,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC5G,CAAC;wBACH,CAAC;6BAAM,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;4BAC9F,8EAA8E;4BAC9E,+EAA+E;4BAC/E,wEAAwE;4BACxE,0EAA0E;4BAC1E,2EAA2E;4BAC3E,4EAA4E;4BAC5E,6EAA6E;4BAC7E,gFAAgF;4BAChF,0EAA0E;4BAC1E,gEAAgE;4BAChE,4EAA4E;4BAC5E,6EAA6E;4BAC7E,8EAA8E;4BAC9E,0EAA0E;4BAC1E,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BACvG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;4BAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACjC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,+EAA+E;QAC/E,6EAA6E;QAC7E,8EAA8E;QAC9E,8EAA8E;QAC9E,8EAA8E;QAC9E,6EAA6E;QAC7E,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,sBAAsB;QACtB,IAAI,YAAyC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACrD,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,MAAM,GAAkB,aAAa,CAAC,eAAe;gBACvD,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,MAAM,EAAE,YAAY;gBAAE,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,IAAI,oBAAoB,CAAC;YACrE,IAAI,MAAM,IAAI,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9G,YAAY,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnH,CAAC;YACD,IAAI,MAAM,IAAI,WAAW,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,YAAY;mBACvE,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAChF,MAAM,kBAAkB,GAAmB;oBACzC,GAAG,QAAQ;oBACX,WAAW,EAAE,QAAiB;oBAC9B,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC;iBACrE,CAAC;gBACF,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;oBACtC,GAAG,KAAK;oBACR,+DAA+D;oBAC/D,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;iBAC/D,EAAE,kBAAkB,EAAE,aAAa,EAAE;oBACpC,kBAAkB;oBAClB,oBAAoB;oBACpB,YAAY,EAAE,MAAM,CAAC,EAAE;iBACxB,EAAE,iBAAiB,CAAC,CAAC;gBACtB,YAAY,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC;YAClG,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,6EAA6E;YAC7E,gFAAgF;YAChF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACtD,IAAI,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzD,YAAY,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/G,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,oFAAoF;YACpF,qFAAqF;YACrF,qFAAqF;YACrF,iFAAiF;YACjF,kFAAkF;YAClF,qFAAqF;YACrF,qFAAqF;YACrF,mFAAmF;YACnF,MAAM,iBAAiB,GAAmB,KAAK,CAAC,UAAU;gBACxD,CAAC,CAAC;oBACE,GAAG,QAAQ;oBACX,WAAW,EAAE,QAAiB;oBAC9B,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;iBACpE;gBACH,CAAC,CAAC,QAAQ,CAAC;YACb,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE;gBAC/E,kBAAkB;gBAClB,oBAAoB;gBACpB,YAAY,EAAE,KAAK,CAAC,UAAU;aAC/B,EAAE,iBAAiB,CAAC,CAAC;QACxB,CAAC;QACD,uEAAuE;QACvE,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM;YAAE,MAAM,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QAChG,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;YACnC,IAAI,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACjI,CAAC;IACD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,GAAI,CAAwB,EAAE,IAAI,IAAI,EAAE,IAAK,CAAW,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QACrF,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,WAAW,CAAC;YACV,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU;YACvC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,YAAY;YAC3C,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,CAAC,CAAC;IACV,CAAC;IACD,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;IAE3C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IAC7C,WAAW,CAAC;QACV,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,0DAA0D;QAC1D,uFAAuF;QACvF,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,sBAAsB,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAC7M,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,yBAAyB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC;AAC5F,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,sBAAsB,CAAC,QAAgB,EAAE,QAAgB;IAChE,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC3D,yEAAyE;IACzE,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE7E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEnD,wEAAwE;IACxE,yEAAyE;IACzE,iEAAiE;IACjE,OAAO,SAAS,CAAC,MAAM,GAAG,yBAAyB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,KAAkB,EAClB,OAAe,EACf,aAA4B,EAC5B,QAAwB;AACxB,oFAAoF;AACpF,aAAqB,EAAE;AACvB,4EAA4E;AAC5E,iBAAyB,EAAE;IAE3B,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC9C,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,yBAAyB,EACzB,kBAAkB,GAAG,0BAA0B,CAChD,CAAC;IACF,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpC,2EAA2E;IAC3E,oEAAoE;IACpE,iEAAiE;IACjE,IAAI,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,IAAI,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;gBACrD,gEAAgE;gBAChE,gEAAgE;gBAChE,gEAAgE;gBAChE,qCAAqC;gBACrC,MAAM,eAAe,GAAG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;gBAC1D,uEAAuE;gBACvE,yEAAyE;gBACzE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7F,MAAM,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC,CAAC,2DAA2D,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,gEAAgE;IAChE,MAAM,SAAS,GAAW;QACxB,GAAG,OAAO;QACV,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,mBAAmB,GAAG,CAAC;QACpC,YAAY,EAAE,IAAI,IAAI,EAAE;KACzB,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI;QACd,aAAa;QACb,SAAS,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE;KACtE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAA6B,EAC7B,KAAiB,EACjB,QAAwB,EACxB,aAA4B,EAC5B,IAIC;AACD;yDACyD;AACzD,oBAAqC,IAAI;IAEzC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE5C,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC;IAEzD,wEAAwE;IACxE,sBAAsB;IACtB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU;WAC9B,CAAC,aAAa;YACf,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;gBAClC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE/E,2FAA2F;IAC3F,EAAE;IACF,qFAAqF;IACrF,uFAAuF;IACvF,kFAAkF;IAClF,+BAA+B;IAC/B,uFAAuF;IACvF,0FAA0F;IAC1F,2CAA2C;IAC3C,EAAE;IACF,0FAA0F;IAC1F,2FAA2F;IAC3F,gEAAgE;IAChE,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IACzE,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,2EAA2E;IAC3E,6DAA6D;IAC7D,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,UAAU;QACV,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;QACnC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,IAAI,CAAC,oBAAoB;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,GAAG,EAAE,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QACvF,UAAU,EAAE,IAAI,CAAC,YAAY;QAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAC1D,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAE3B,mEAAmE;IACnE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1D,MAAM,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;IAC/C,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,mEAAmE;IACnE,EAAE;IACF,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,KAAK,YAAY,CAAC;IAChE,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1E,IAAI,CAAC;YAAC,gBAAgB,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IACpG,CAAC;IAED,8DAA8D;IAC9D,+EAA+E;IAC/E,mEAAmE;IACnE,EAAE;IACF,kEAAkE;IAClE,qEAAqE;IACrE,wDAAwD;IACxD,MAAM,eAAe,GAAG,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;aAChE,IAAI,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YAChB,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;QAC5F,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAiC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAgB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,OAAO;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,aAAa;QACb,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;KACvE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../src/engine/activation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,EAA6C,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAMtG,OAAO,KAAK,EACF,gBAAgB,EAAE,eAAe,EAC1C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwIvE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;gBAEnC,KAAK,EAAE,WAAW;IAM9B;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA8nCnE,iFAAiF;IACjF,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE5C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAKnC;YAEY,SAAS;IA+FvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,gBAAgB;IAwJ9B;;;;OAIG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBhF,OAAO,CAAC,OAAO;CAchB"}
1
+ {"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../src/engine/activation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,EAA6C,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAMtG,OAAO,KAAK,EACF,gBAAgB,EAAE,eAAe,EAC1C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA0IvE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;gBAEnC,KAAK,EAAE,WAAW;IAM9B;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmpCnE,iFAAiF;IACjF,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE5C;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAKnC;YAEY,SAAS;IA+FvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,gBAAgB;IAwJ9B;;;;OAIG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBhF,OAAO,CAAC,OAAO;CAchB"}
@@ -54,6 +54,8 @@ import { expandQuery } from '../core/query-expander.js';
54
54
  import { startRecallProfile } from '../core/recall-telemetry.js';
55
55
  import { computeRecallConfidence } from './confidence.js';
56
56
  import { reorderByReranker, rerank2Enabled, rerank2WindowSize } from '../core/rerank2.js';
57
+ import { validityState } from '../core/validity.js';
58
+ import { detectConflicts } from '../core/conflicts.js';
57
59
  import { buildRerankPassage, rerankTruncation, rerankWindowMode } from '../core/rerank-window.js';
58
60
  import { parseTemporal, temporalEnabled, temporalBoost } from '../core/temporal-query.js';
59
61
  import { aliasTermsFor } from '../core/alias-map.js';
@@ -1113,11 +1115,17 @@ export class ActivationEngine {
1113
1115
  return [];
1114
1116
  }
1115
1117
  }
1116
- // Phase 8c: Supersession penalty — superseded memories are deprioritized.
1117
- // They aren't wrong (that's retraction), just outdated.
1118
+ // Phase 8c: Stale penalty — superseded memories, and (since 2026-10-19)
1119
+ // memories outside their valid_from/valid_to window, are deprioritized.
1120
+ // They aren't wrong (that's retraction), just outdated or not yet true.
1121
+ // The factor is also recorded on phaseScores so Phase 9b's re-sort by
1122
+ // reranker score honours it — without that, rerank2 put a superseded
1123
+ // memory above its successor (see src/core/rerank2.ts).
1124
+ const validityNow = query.asOf ?? Date.now();
1118
1125
  for (const item of rerankPool) {
1119
- if (item.engram.supersededBy) {
1120
- item.score *= 0.15; // Severe down-rank — successor should dominate
1126
+ if (item.engram.supersededBy || validityState(item.engram, validityNow) !== 'current') {
1127
+ item.score *= 0.15; // Severe down-rank — the current version should dominate
1128
+ item.phaseScores.stalePenalty = 0.15;
1121
1129
  }
1122
1130
  }
1123
1131
  // Phase 9: Final sort, limit, explain, attach confidence
@@ -1284,6 +1292,21 @@ export class ActivationEngine {
1284
1292
  ...(summary !== undefined && { summary }),
1285
1293
  };
1286
1294
  });
1295
+ // Conflict surfacing over the returned set (2026-10-19): two versions of
1296
+ // one fact used to come back as two undated lines with nothing to say they
1297
+ // disagreed. Pairwise over `limit` results, so it is a handful of string
1298
+ // comparisons; see src/core/conflicts.ts for the rule and its known limit.
1299
+ if (results.length > 1) {
1300
+ const marks = detectConflicts(results, validityNow);
1301
+ results.forEach((r, i) => { if (marks[i].length > 0)
1302
+ r.conflictsWith = marks[i]; });
1303
+ // The marks do NOT reorder results. Measured 2026-10-19: moving the
1304
+ // newest of a marked pair ahead cost identifier s@1 93.0% -> 74.7% with
1305
+ // s@5 unchanged, because on a real store the detector also marks related
1306
+ // memories that differ in a ticket id or a date — a cue to check the
1307
+ // source, not a verdict on rank. A harness that wants newest-first among
1308
+ // marked results can apply conflicts.ts `newestFirstAmongConflicts` itself.
1309
+ }
1287
1310
  const activatedIds = results.map(r => r.engram.id);
1288
1311
  // Side effects: touch, co-activate, defer Hebbian to validation gate (skip for internal/system calls)
1289
1312
  if (!query.internal) {