agent-working-memory 0.7.17 → 0.8.6

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 (188) hide show
  1. package/README.md +156 -15
  2. package/dist/adapters/common.d.ts.map +1 -1
  3. package/dist/adapters/common.js +289 -202
  4. package/dist/adapters/common.js.map +1 -1
  5. package/dist/adapters/http.js +22 -22
  6. package/dist/api/routes.d.ts +1 -1
  7. package/dist/api/routes.d.ts.map +1 -1
  8. package/dist/api/routes.js +258 -79
  9. package/dist/api/routes.js.map +1 -1
  10. package/dist/cli/migrate.d.ts +42 -0
  11. package/dist/cli/migrate.d.ts.map +1 -0
  12. package/dist/cli/migrate.js +268 -0
  13. package/dist/cli/migrate.js.map +1 -0
  14. package/dist/cli.js +147 -103
  15. package/dist/cli.js.map +1 -1
  16. package/dist/coordination/circuit-breaker.d.ts +24 -0
  17. package/dist/coordination/circuit-breaker.d.ts.map +1 -0
  18. package/dist/coordination/circuit-breaker.js +70 -0
  19. package/dist/coordination/circuit-breaker.js.map +1 -0
  20. package/dist/coordination/failure-modes.d.ts +21 -0
  21. package/dist/coordination/failure-modes.d.ts.map +1 -0
  22. package/dist/coordination/failure-modes.js +49 -0
  23. package/dist/coordination/failure-modes.js.map +1 -0
  24. package/dist/coordination/peer-decisions.js +7 -7
  25. package/dist/coordination/routes.d.ts.map +1 -1
  26. package/dist/coordination/routes.js +44 -1
  27. package/dist/coordination/routes.js.map +1 -1
  28. package/dist/coordination/schema.d.ts.map +1 -1
  29. package/dist/coordination/schema.js +18 -0
  30. package/dist/coordination/schema.js.map +1 -1
  31. package/dist/coordination/schemas.d.ts +9 -9
  32. package/dist/coordination/stale.d.ts +9 -1
  33. package/dist/coordination/stale.d.ts.map +1 -1
  34. package/dist/coordination/stale.js +53 -9
  35. package/dist/coordination/stale.js.map +1 -1
  36. package/dist/core/embeddings.d.ts +16 -10
  37. package/dist/core/embeddings.d.ts.map +1 -1
  38. package/dist/core/embeddings.js +54 -38
  39. package/dist/core/embeddings.js.map +1 -1
  40. package/dist/core/ml-worker-entry.d.ts +17 -0
  41. package/dist/core/ml-worker-entry.d.ts.map +1 -0
  42. package/dist/core/ml-worker-entry.js +193 -0
  43. package/dist/core/ml-worker-entry.js.map +1 -0
  44. package/dist/core/ml-worker.d.ts +59 -0
  45. package/dist/core/ml-worker.d.ts.map +1 -0
  46. package/dist/core/ml-worker.js +253 -0
  47. package/dist/core/ml-worker.js.map +1 -0
  48. package/dist/core/query-expander.d.ts +13 -15
  49. package/dist/core/query-expander.d.ts.map +1 -1
  50. package/dist/core/query-expander.js +48 -54
  51. package/dist/core/query-expander.js.map +1 -1
  52. package/dist/core/reranker.d.ts +9 -19
  53. package/dist/core/reranker.d.ts.map +1 -1
  54. package/dist/core/reranker.js +33 -35
  55. package/dist/core/reranker.js.map +1 -1
  56. package/dist/core/salience.d.ts +32 -5
  57. package/dist/core/salience.d.ts.map +1 -1
  58. package/dist/core/salience.js +201 -28
  59. package/dist/core/salience.js.map +1 -1
  60. package/dist/core/write-pipeline.d.ts +10 -2
  61. package/dist/core/write-pipeline.d.ts.map +1 -1
  62. package/dist/core/write-pipeline.js +218 -49
  63. package/dist/core/write-pipeline.js.map +1 -1
  64. package/dist/engine/activation.d.ts +2 -2
  65. package/dist/engine/activation.d.ts.map +1 -1
  66. package/dist/engine/activation.js +238 -115
  67. package/dist/engine/activation.js.map +1 -1
  68. package/dist/engine/confidence.d.ts +62 -0
  69. package/dist/engine/confidence.d.ts.map +1 -0
  70. package/dist/engine/confidence.js +100 -0
  71. package/dist/engine/confidence.js.map +1 -0
  72. package/dist/engine/connections.d.ts +47 -8
  73. package/dist/engine/connections.d.ts.map +1 -1
  74. package/dist/engine/connections.js +83 -22
  75. package/dist/engine/connections.js.map +1 -1
  76. package/dist/engine/consolidation-scheduler.d.ts +46 -10
  77. package/dist/engine/consolidation-scheduler.d.ts.map +1 -1
  78. package/dist/engine/consolidation-scheduler.js +170 -50
  79. package/dist/engine/consolidation-scheduler.js.map +1 -1
  80. package/dist/engine/consolidation.d.ts +16 -2
  81. package/dist/engine/consolidation.d.ts.map +1 -1
  82. package/dist/engine/consolidation.js +143 -44
  83. package/dist/engine/consolidation.js.map +1 -1
  84. package/dist/engine/eval.d.ts +2 -2
  85. package/dist/engine/eval.d.ts.map +1 -1
  86. package/dist/engine/eval.js +9 -9
  87. package/dist/engine/eval.js.map +1 -1
  88. package/dist/engine/eviction.d.ts +4 -4
  89. package/dist/engine/eviction.d.ts.map +1 -1
  90. package/dist/engine/eviction.js +15 -15
  91. package/dist/engine/eviction.js.map +1 -1
  92. package/dist/engine/retraction.d.ts +93 -5
  93. package/dist/engine/retraction.d.ts.map +1 -1
  94. package/dist/engine/retraction.js +238 -19
  95. package/dist/engine/retraction.js.map +1 -1
  96. package/dist/engine/staging.d.ts +1 -1
  97. package/dist/engine/staging.d.ts.map +1 -1
  98. package/dist/engine/staging.js +3 -3
  99. package/dist/engine/staging.js.map +1 -1
  100. package/dist/hooks/sidecar.d.ts +1 -1
  101. package/dist/hooks/sidecar.d.ts.map +1 -1
  102. package/dist/hooks/sidecar.js +4 -4
  103. package/dist/hooks/sidecar.js.map +1 -1
  104. package/dist/index.js +48 -31
  105. package/dist/index.js.map +1 -1
  106. package/dist/mcp.js +167 -141
  107. package/dist/mcp.js.map +1 -1
  108. package/dist/storage/factory.d.ts +55 -0
  109. package/dist/storage/factory.d.ts.map +1 -0
  110. package/dist/storage/factory.js +135 -0
  111. package/dist/storage/factory.js.map +1 -0
  112. package/dist/storage/pglite-schema.d.ts +20 -0
  113. package/dist/storage/pglite-schema.d.ts.map +1 -0
  114. package/dist/storage/pglite-schema.js +165 -0
  115. package/dist/storage/pglite-schema.js.map +1 -0
  116. package/dist/storage/pglite.d.ts +187 -0
  117. package/dist/storage/pglite.d.ts.map +1 -0
  118. package/dist/storage/pglite.js +1114 -0
  119. package/dist/storage/pglite.js.map +1 -0
  120. package/dist/storage/sqlite.d.ts +117 -0
  121. package/dist/storage/sqlite.d.ts.map +1 -1
  122. package/dist/storage/sqlite.js +357 -8
  123. package/dist/storage/sqlite.js.map +1 -1
  124. package/dist/storage/store.d.ts +63 -0
  125. package/dist/storage/store.d.ts.map +1 -0
  126. package/dist/storage/store.js +27 -0
  127. package/dist/storage/store.js.map +1 -0
  128. package/dist/types/engram.d.ts +92 -2
  129. package/dist/types/engram.d.ts.map +1 -1
  130. package/dist/types/engram.js.map +1 -1
  131. package/package.json +3 -1
  132. package/src/adapters/claude-code.ts +218 -218
  133. package/src/adapters/codex.ts +252 -252
  134. package/src/adapters/common.ts +498 -411
  135. package/src/adapters/cursor.ts +135 -135
  136. package/src/adapters/http.ts +93 -93
  137. package/src/adapters/index.ts +31 -31
  138. package/src/adapters/types.ts +75 -75
  139. package/src/api/index.ts +3 -3
  140. package/src/api/routes.ts +970 -714
  141. package/src/cli/migrate.ts +307 -0
  142. package/src/cli.ts +755 -719
  143. package/src/coordination/circuit-breaker.ts +83 -0
  144. package/src/coordination/events.ts +90 -90
  145. package/src/coordination/failure-modes.ts +50 -0
  146. package/src/coordination/peer-decisions.ts +105 -105
  147. package/src/coordination/plugin-loader.ts +60 -60
  148. package/src/coordination/plugin.ts +44 -44
  149. package/src/coordination/routes.ts +56 -1
  150. package/src/coordination/schema.ts +13 -0
  151. package/src/coordination/stale.ts +80 -11
  152. package/src/coordination/types.ts +311 -311
  153. package/src/coordination/write-mutex.ts +69 -69
  154. package/src/core/auto-tagger.ts +168 -168
  155. package/src/core/decay.ts +63 -63
  156. package/src/core/embeddings.ts +110 -93
  157. package/src/core/index.ts +5 -5
  158. package/src/core/logger.ts +36 -36
  159. package/src/core/ml-worker-entry.ts +194 -0
  160. package/src/core/ml-worker.ts +281 -0
  161. package/src/core/query-expander.ts +122 -128
  162. package/src/core/reranker.ts +119 -125
  163. package/src/core/salience.ts +200 -33
  164. package/src/core/write-pipeline.ts +521 -343
  165. package/src/engine/activation.ts +235 -109
  166. package/src/engine/confidence.ts +120 -0
  167. package/src/engine/connections.ts +162 -103
  168. package/src/engine/consolidation-scheduler.ts +242 -125
  169. package/src/engine/consolidation.ts +138 -45
  170. package/src/engine/eval.ts +102 -102
  171. package/src/engine/eviction.ts +101 -101
  172. package/src/engine/index.ts +8 -8
  173. package/src/engine/retraction.ts +366 -116
  174. package/src/engine/staging.ts +74 -74
  175. package/src/hooks/sidecar.ts +5 -5
  176. package/src/index.ts +226 -212
  177. package/src/mcp.ts +1145 -1121
  178. package/src/storage/factory.ts +147 -0
  179. package/src/storage/index.ts +3 -3
  180. package/src/storage/pglite-schema.ts +166 -0
  181. package/src/storage/pglite.ts +1363 -0
  182. package/src/storage/sqlite.ts +402 -7
  183. package/src/storage/store.ts +80 -0
  184. package/src/types/agent.ts +67 -67
  185. package/src/types/checkpoint.ts +46 -46
  186. package/src/types/engram.ts +101 -3
  187. package/src/types/eval.ts +100 -100
  188. package/src/types/index.ts +6 -6
package/README.md CHANGED
@@ -86,18 +86,25 @@ The design is based on cognitive science — ACT-R activation decay, Hebbian lea
86
86
 
87
87
  ---
88
88
 
89
- ## Benchmarks (v0.6.0)
90
-
91
- ### Eval Harness (new in v0.6.0)
92
-
93
- | Suite | Score | Threshold | What it tests |
94
- |-------|-------|-----------|---------------|
95
- | Retrieval | **Recall@5 = 0.800** | >= 0.80 | 200 facts, 50 queries — BM25 + vector + reranker pipeline precision |
96
- | Associative | **success@10 = 1.000** | >= 0.70 | 20 multi-hop causal chains — graph walk finds non-obvious connections |
97
- | Redundancy | **dedup F1 = 0.966** | >= 0.80 | 50 clusters × 4 paraphrases — consolidation removes duplicates correctly |
98
- | Temporal | **Spearman = 0.932** | >= 0.75 | 25 facts with controlled age/access — ACT-R decay ranking accuracy |
99
-
100
- Key finding: **consolidation improves retrieval by 30%** — post-consolidation recall (0.950) exceeds pre-consolidation (0.650). Removing redundant noise helps ranking.
89
+ ## Benchmarks
90
+
91
+ ### Eval Harness
92
+
93
+ | Suite | Score (v0.8.5) | Score (v0.6.0 baseline) | Threshold | What it tests |
94
+ |-------|---|---|-----------|---------------|
95
+ | Retrieval | **Recall@5 = 0.980** | 0.800 | >= 0.80 | 200 facts, 50 queries — BM25 + vector + reranker pipeline precision |
96
+ | Associative | **success@10 = 1.000** | 1.000 | >= 0.70 | 20 multi-hop causal chains — graph walk finds non-obvious connections |
97
+ | Redundancy | **dedup F1 = 0.966** | 0.966 | >= 0.80 | 50 clusters × 4 paraphrases — consolidation removes duplicates correctly |
98
+ | Temporal | **Spearman = 0.932** | 0.932 | >= 0.75 | 25 facts with controlled age/access — ACT-R decay ranking accuracy |
99
+
100
+ > **v0.8.5 recall fix:** A regression intermediate-step had Recall@5 drop to
101
+ > 0.46. Root cause: the entity-bridge boost (Phase 3.7) inverted top-1 in
102
+ > dense same-concept corpora — it rewarded clones that shared tags with
103
+ > the anchor while excluding the anchor itself. Fix: proportional gating
104
+ > so the boost scales with the textMatch gap between candidate and anchor.
105
+ > Clones near the anchor get near-zero boost; genuine lateral candidates
106
+ > (low textMatch, shared entities) still get the full boost.
107
+ > Result: Recall@5 0.46 → 0.980 with all 4 eval suites green.
101
108
 
102
109
  ### Full Test Suite
103
110
 
@@ -113,6 +120,7 @@ Key finding: **consolidation improves retrieval by 30%** — post-consolidation
113
120
  | `npm run test:ab` | **AWM 20/22 vs Baseline 18/22** | AWM outperforms keyword baseline on architecture + testing topics |
114
121
  | `npm run test:sleep` | **71.4%** | 60 memories, 4 topic clusters, consolidation impact across 3 cycles |
115
122
  | `npm run test:tokens` | **56.3% savings, 2.3x efficiency** | Memory-guided context vs full history, keyword accuracy 72.5% |
123
+ | `scripts/measure-claude-vs-awm.ts` | **9.8× lower aggregate cost vs file_retrieval** | Real Claude Code session audit: AWM recall vs Read/Grep/Glob workflows |
116
124
  | `npm run test:pilot` | **14/15 pass** | Production-like queries with noise rejection (5/5 noise rejected) |
117
125
  | `npm run test:locomo` | **28.2%** | Industry-standard LoCoMo conversational memory benchmark (1,986 QA pairs) |
118
126
 
@@ -277,6 +285,46 @@ curl -X POST http://localhost:8400/memory/activate \
277
285
  }'
278
286
  ```
279
287
 
288
+ ### Substrate primitives (new in 0.8)
289
+
290
+ For long-running structured projects — novels, codebases, investigations,
291
+ design docs — where the agent needs to track typed state across hundreds
292
+ of writes without polluting cognitive retrieval. Full reference at
293
+ [`docs/reference.md`](docs/reference.md).
294
+
295
+ ```bash
296
+ # "Latest emotional state per character" — one round trip
297
+ curl -X POST http://localhost:8400/memory/latest-by-tag -d '{
298
+ "agentId": "novel-x", "tagKey": "character=",
299
+ "scopeTagsAll": ["topic=emotional-state"], "sortBy": "sequence"
300
+ }'
301
+
302
+ # "Top 40 active promises by weight, excluding resolved" — filter + sort native
303
+ curl -X POST http://localhost:8400/memory/top-by -d '{
304
+ "agentId": "novel-x", "sortField": "weight=", "order": "desc",
305
+ "filterTagsAll": ["topic=promise", "state=active"],
306
+ "filterTagsNone": ["kind=advancement"], "limit": 40
307
+ }'
308
+
309
+ # Atomic write-and-supersede by concept match (Form B)
310
+ curl -X POST http://localhost:8400/memory/supersede -d '{
311
+ "agentId": "novel-x",
312
+ "matchConcept": "Mara's deferred disclosure",
313
+ "newEngram": {
314
+ "concept": "Mara's disclosure — RESOLVED in Ch 3",
315
+ "content": "...", "memory_class": "structural"
316
+ }
317
+ }'
318
+
319
+ # Race-free chronology
320
+ curl http://localhost:8400/memory/sequence/novel-x/next
321
+ ```
322
+
323
+ New `memory_class: "structural"` keeps high-volume system-written records
324
+ (chapter analyses, promise advancements, commit logs) out of cognitive
325
+ `/activate` while preserving them with canonical-level salience. See the
326
+ [CHANGELOG entry for 0.8.0](CHANGELOG.md) for the full design.
327
+
280
328
  ---
281
329
 
282
330
  ## How It Works
@@ -395,6 +443,18 @@ npm run test:locomo # LoCoMo industry benchmark (28.2%)
395
443
  | `AWM_DISABLE_RERANK_SKIP` | *(unset)* | Set to `1` to disable the reranker skip on clear-winner queries (0.7.10+). Forces every recall through the cross-encoder |
396
444
  | `AWM_DISABLE_EXPANSION_CACHE` | *(unset)* | Set to `1` to disable the query expansion skip heuristic + LRU cache (0.7.11+). Forces every recall through the flan-t5-small expander |
397
445
  | `AWM_WORKSPACE` | *(unset)* | Default workspace for cross-agent recall in hive setups |
446
+ | `AWM_STORE_BACKEND` | `sqlite` | `sqlite` (better-sqlite3 + FTS5) or `pglite` (PGlite + pgvector + pgroonga). 0.8.x. |
447
+ | `AWM_DB_PATH` | `memory.db` (SQLite) / `./memory-pglite` (PGlite) | Storage path. Directory for PGlite, file for SQLite. |
448
+ | `AWM_CONF_SHARPNESS_W` | `0.4` | Weight of `top1 / mean(top5)` in recall confidence (PR-1, v0.8.5) |
449
+ | `AWM_CONF_CLIFF_W` | `0.3` | Weight of `(top1 - top10) / top1` in recall confidence (PR-1, v0.8.5) |
450
+ | `AWM_CONF_FLOOR_W` | `0.3` | Weight of `top1` absolute score in recall confidence (PR-1, v0.8.5) |
451
+ | `AWM_FADE_DAYS_SINCE_ACCESS` | `45` | Days without access before a stale active engram fades (v0.8.5) |
452
+ | `AWM_FADE_KEEP_CHARS` | `150` | Chars retained in faded engram content (v0.8.5) |
453
+ | `AWM_FADE_MIN_CONTENT_LEN` | `250` | Don't fade engrams shorter than this — nothing to trim (v0.8.5) |
454
+ | `AWM_FADE_MAX_PER_CYCLE` | `25` | Max engrams faded per consolidation cycle — gradual, not sudden (v0.8.5) |
455
+ | `AWM_GRANULARITY_COMPACT_LEN` | `200` | Char cap for `granularity: 'compact'` summaries (v0.8.5) |
456
+ | `AWM_GRANULARITY_FULL_LEN` | `1000` | Char cap for top result under `granularity: 'auto'` when confidence ≥ threshold (v0.8.5) |
457
+ | `AWM_GRANULARITY_AUTO_THRESHOLD` | `0.4` | Recall-confidence threshold above which `'auto'` granularity gives the top result a long-form summary (v0.8.5) |
398
458
 
399
459
  ## Tech Stack
400
460
 
@@ -413,6 +473,81 @@ npm run test:locomo # LoCoMo industry benchmark (28.2%)
413
473
 
414
474
  All three ML models run locally via ONNX. No external API calls for retrieval. The entire system is a single SQLite file + a Node.js process.
415
475
 
476
+ ## What's New in v0.8.5
477
+
478
+ A research-grounded hardening pass on recall quality, retraction propagation,
479
+ and lifecycle management. Every change is **fully additive** — existing
480
+ callers keep working without modification. Full validation at the milestone:
481
+ `vitest run` 549/549 pass; `test:self` 97.6% EXCELLENT (was 91.4% on 0.8.0);
482
+ `test:ab` AWM 89.3% vs Baseline 83.0% (+6.4 points); `test:perf` 4/4 PASS.
483
+
484
+ - **Recall confidence as data (PR-1).** Every `ActivationResult` now carries
485
+ a `confidence` field in [0, 1] — a score-distribution-aware signal
486
+ (sharpness + cliff + floor blended via weighted geometric mean) that tells
487
+ the caller how trustworthy the recall set is. Same value on every result
488
+ in a recall — it describes the *set*, not the individual. Research grounding:
489
+ Geifman & El-Yaniv (NeurIPS 2017), Roitero et al (SIGIR 2022). Default
490
+ behavior unchanged; this is data, not a gate.
491
+
492
+ - **Opt-in confidence-based abstention (PR-2).** Callers can pass
493
+ `requireConfidence` (typical values: 0.10 strict, 0.25 balanced, 0.40
494
+ aggressive). When set, the engine returns `[]` on recalls whose
495
+ distribution shape falls below the threshold — defeats the
496
+ "best-of-bad-bunch" leak where a noisy recall returns a weak top result
497
+ that the agent then trusts.
498
+
499
+ - **Coherence-weighted retraction (#18).** Retraction penalty propagation
500
+ is no longer uniform. Multiplier scales with local neighborhood cohesion:
501
+ dense topically-coherent clusters (a narrative) get heavier penalties when
502
+ the seed is wrong; hub structures (popular node with heterogeneous edges)
503
+ get lighter penalties. Implements Carrillo et al, "Continued Influence
504
+ Effect" (ICCM 2025).
505
+
506
+ - **Counter-narrative replacement on supersede/correction (#19).** When
507
+ retraction creates a counter-content correction, the new engram inherits
508
+ the original's `'connection'` edges (scaled 0.7×, capped at 10
509
+ inheritances, with `invalidation` / `causal` / `temporal` skipped). The
510
+ corrected fact takes over the graph role of the wrong fact rather than
511
+ leaving the corrected fact disconnected.
512
+
513
+ - **Content fade stage (#20) — Paper 1.** New intermediate `'fading'`
514
+ lifecycle stage between `'active'` and `'archived'`. Engrams accessed
515
+ before but stale (no access in 45+ days, content > 250 chars) get content
516
+ trimmed to 150 chars + `… [faded]` marker. Concept, tags, and embedding
517
+ preserved — the engram still participates in BM25 + vector recall, just
518
+ with less body to score against. Models human memory's loss of surface
519
+ detail while retaining cue-association pathways (PLOS Comp Biology on
520
+ storage degradation). Heavily-used (`accessCount >= 10`), `canonical`,
521
+ `structural`, and retracted engrams excluded.
522
+
523
+ - **Adaptive output granularity (#21) — Paper 3.** New
524
+ `granularity: 'full' | 'compact' | 'auto'` on `ActivationQuery`.
525
+ `'compact'` attaches a 200-char `summary` to every result. `'auto'` is
526
+ confidence-adaptive: when recall confidence ≥ 0.4, the top result gets
527
+ a long-form summary and the rest are compact; when confidence is low,
528
+ everything is compact so the agent can scan a diverse set without
529
+ drowning in content. Engram body never modified — just the response shape.
530
+ Models cognitive teaming (Brill 2018 ACT-R collaboration).
531
+
532
+ ## What's New in v0.8.1
533
+
534
+ - **Coordination control layer** — `FailureMode` classifier + mutation-hint
535
+ retry on `cleanupStale`, per-worker `CircuitBreaker`, and voluntary
536
+ `POST /assignment/:id/fail` endpoint. Designed to reduce the 11.5%
537
+ failure-with-no-retry rate observed in production hive runs (81/703).
538
+ Two new schema columns on `coord_assignments` plus a `coord_circuit_state`
539
+ table — both additive `CREATE IF NOT EXISTS` migrations.
540
+
541
+ ## What's New in v0.8.0
542
+
543
+ - **Substrate primitives for long-running structured projects** — four new
544
+ HTTP endpoints (`/memory/latest-by-tag`, `/memory/top-by`,
545
+ `/memory/resolve`, `/memory/supersede` Form B), three query operators
546
+ (`tagsAll`, `tagsAny`, `tagsNone`), and a fourth `memory_class` value
547
+ (`structural`). Optional engram columns `sequence` + `references_json`
548
+ enable race-free chronology and typed cross-record links. Designed against
549
+ the NovelForge 36,000-word "Drawdown" test bed.
550
+
416
551
  ## What's New in v0.7.16
417
552
 
418
553
  - **`awm setup --global` template now teaches *write quality*.** Two new sections in `AWM_INSTRUCTION_CONTENT`:
@@ -524,15 +659,21 @@ See [CHANGELOG.md](CHANGELOG.md) for full details.
524
659
 
525
660
  ## Project Status
526
661
 
527
- AWM is in active development (v0.7.15). The core memory pipeline, consolidation system, multi-agent coordination, and MCP integration are stable and used daily in production coding workflows.
662
+ AWM is in active development (v0.8.5). The core memory pipeline, consolidation
663
+ system, multi-agent coordination, and MCP integration are stable and used
664
+ daily in production coding workflows.
528
665
 
529
666
  - Core retrieval and consolidation: **stable**
530
667
  - MCP tools and Claude Code integration: **stable**
531
- - Multi-agent coordination: **stable** (v0.6.0)
668
+ - Multi-agent coordination: **stable** (v0.8.1 hardening)
532
669
  - Task management: **stable**
533
670
  - Hook sidecar and auto-checkpoint: **stable**
534
671
  - HTTP API: **stable** (for custom agents)
535
- - Eval harness: **stable** (v0.6.0)
672
+ - Eval harness: **stable** (v0.6.0, extended through 0.8.x)
673
+ - Recall confidence + opt-in abstention (PR-1, PR-2): **stable** (v0.8.5)
674
+ - Coherence-weighted retraction + counter-narrative inheritance: **stable** (v0.8.5)
675
+ - Content fade stage + adaptive output granularity: **stable** (v0.8.5)
676
+ - PGlite backend (alternative to SQLite, with pgvector + ivfflat): **stable** (v0.8.x)
536
677
 
537
678
  See [CHANGELOG.md](CHANGELOG.md) for version history.
538
679
 
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/adapters/common.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,gEAAgE;AAChE,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOnF;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAkBA;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,YAAY,CA6Bf;AAED,sBAAsB;AACtB,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAID;;;GAGG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,MAAM,CA8CR;AAED,eAAO,MAAM,uBAAuB,QA0MvB,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/adapters/common.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,gEAAgE;AAChE,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOnF;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAkBA;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,YAAY,CA6Bf;AAED,sBAAsB;AACtB,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAID;;;GAGG;AACH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,MAAM,CA8CR;AAED,eAAO,MAAM,uBAAuB,QAiSvB,CAAC"}