cogmem 3.7.0 → 3.7.2

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 (45) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/MEMORY_ATLAS.md +16 -6
  3. package/README.md +16 -11
  4. package/RELEASE_CHECKLIST.md +4 -4
  5. package/dist/agent/AgentMemoryBackend.d.ts +11 -2
  6. package/dist/agent/AgentMemoryBackend.js +185 -36
  7. package/dist/agent/AgentRecallQueryCompiler.d.ts +1 -1
  8. package/dist/agent/AgentRecallQueryCompiler.js +13 -1
  9. package/dist/agent/MemoryUsageReceipt.js +8 -10
  10. package/dist/agent/SessionWorkingState.js +3 -2
  11. package/dist/agent/UntrustedMemorySerializer.d.ts +2 -0
  12. package/dist/agent/UntrustedMemorySerializer.js +14 -0
  13. package/dist/atlas/ActionFrameExtractor.js +2 -0
  14. package/dist/atlas/EpisodeTitleGenerator.js +42 -3
  15. package/dist/atlas/FacetQueryPlanner.d.ts +2 -0
  16. package/dist/atlas/FacetQueryPlanner.js +57 -16
  17. package/dist/atlas/GraphCurator.d.ts +3 -0
  18. package/dist/atlas/GraphCurator.js +118 -14
  19. package/dist/atlas/MemoryAtlasIndexer.d.ts +12 -0
  20. package/dist/atlas/MemoryAtlasIndexer.js +36 -0
  21. package/dist/atlas/MemoryAtlasQueryCompiler.js +10 -7
  22. package/dist/atlas/MemoryAtlasService.d.ts +1 -0
  23. package/dist/atlas/MemoryAtlasService.js +102 -26
  24. package/dist/atlas/MemoryAtlasTypes.d.ts +7 -0
  25. package/dist/bin/memory.js +14 -4
  26. package/dist/factory.d.ts +18 -0
  27. package/dist/factory.js +41 -2
  28. package/dist/host/openclaw/AutoMemoryPluginInstaller.js +71 -44
  29. package/dist/mcp/server.js +1 -1
  30. package/dist/recall/RecallExplanation.d.ts +1 -1
  31. package/dist/store/MemoryAtlasStore.d.ts +4 -1
  32. package/dist/store/MemoryAtlasStore.js +203 -25
  33. package/dist/utils/ActionKindRegistry.d.ts +10 -0
  34. package/dist/utils/ActionKindRegistry.js +18 -0
  35. package/dist/utils/EntityCueExtractor.d.ts +13 -0
  36. package/dist/utils/EntityCueExtractor.js +81 -0
  37. package/examples/hermes-backend/AGENTS.md +1 -1
  38. package/examples/hermes-backend/README.md +1 -1
  39. package/examples/hermes-backend/SKILL.md +10 -3
  40. package/examples/hermes-backend/references/operations.md +9 -8
  41. package/examples/openclaw-backend/AGENTS.md +1 -1
  42. package/examples/openclaw-backend/README.md +2 -2
  43. package/examples/openclaw-backend/SKILL.md +24 -7
  44. package/examples/openclaw-backend/references/operations.md +26 -10
  45. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.7.2
4
+
5
+ - Fixed Memory Atlas `graph-explore` edge projection so selected action, topic, and ordinary memory edges are merged before the final stable edge limit.
6
+ - Added direct internal-edge SQL for selected Atlas nodes, including chunked parameters, so bounded graph results are not silently limited to the first 30 node IDs.
7
+ - Added edge truncation metadata and warnings when `graph-explore` omits candidate edges after prioritizing exact matched cards/facets.
8
+
9
+ ## 3.7.1
10
+
11
+ - Hardened OpenClaw volatile recall, Atlas context, turn bridge, and session-state serialization so historical text, card titles, summaries, source windows, related cards, short-term conclusions, and source anchors cannot close or create `COGMEM_*` prompt blocks.
12
+ - Scoped entity facet node IDs by project, bumped the Atlas projection schema metadata, and forced old multi-facet projections to rebuild instead of reusing cross-project-prone entity nodes.
13
+ - Changed targeted `graph-reindex` to refresh the addressed episode/card but leave the project projection dirty until a full consistency rebuild restores relation/action-frame guarantees.
14
+ - Tightened Raw Ledger forensic anchor scope checks so event anchors cannot bypass project/workspace/thread/session boundaries.
15
+ - Fixed OpenClaw auto intent routing for `action_history`, exact-quote ranking for same-day raw events, issue-title precedence over generic operation titles, shared action-kind inference, stricter entity-plus-action compiled relevance, local-date year inference, and evidence-level Atlas card dedupe.
16
+ - Extended generic Atlas entity cue extraction to Unicode letter/number names in ordinary historical queries, and expanded explicit relaxation traces from day → month to day → month → year plus issue → parent topic.
17
+ - Updated OpenClaw plugin 0.7.1, docs, skills, and tests for the security/isolation hotfix.
18
+
3
19
  ## 3.7.0
4
20
 
5
21
  - Upgraded Memory Atlas into a multi-dimensional navigation graph: canonical episodes and raw events exist once, while time, topic, issue, entity, session/thread, memory-kind, and action-kind facets connect to them with typed edges.
@@ -9,6 +25,8 @@
9
25
  - Extended Atlas cards to timeline results and CLI recall JSON, shared relaxation behavior across graph search/explore/timeline, and made broad “记忆黑盒” recall select the initial Memory Context/sourceContext discussion while listing later graph/runtime and Atlas readability issues as related side context.
10
26
  - Renamed the live Atlas projection to `memory_atlas.v2` with 3.7 schema metadata while still consuming legacy `memory_atlas.v1` dirty triggers, so upgraded 3.6.5 databases rebuild the multi-facet projection instead of trusting stale clean state.
11
27
  - Integrated facet graph cards into `historical_discussion` recall so OpenClaw/Hermes agents can explain selected memories while still grounding answers in Raw Ledger source locators.
28
+ - Fixed action-history recall such as “what did I ask you to do to <entity>?” by adding operational action-kind facets (`started`, `installed`, `configured`, `restarted`, `stopped`, `operated`), inferred `action_history` routing, generic entity cue extraction, entity/action relevance gating for compiled memories, and raw-ledger-only exact quote fallback for “我的原话”.
29
+ - Added targeted `cogmem memory graph-reindex --project <id> --event <eventId>|--episode <episodeId> --json` and clearer episode repair output so `repairId` is treated as an audit id, not a dream promotion candidate.
12
30
  - Updated OpenClaw plugin 0.7.0 and its generated bridge to preserve strict facet matches through Context Cortex planning and to include selected cards, matched facets/paths, related-but-not-selected side context, and relaxation traces in both volatile recall and Atlas context blocks.
13
31
  - Updated README, Memory Atlas docs, OpenClaw/Hermes skills, AGENTS runbooks, and operations references with npm-first install/update flow and the 3.7.0 multi-facet Atlas command playbook.
14
32
 
package/MEMORY_ATLAS.md CHANGED
@@ -10,7 +10,7 @@ Atlas projects existing project-scoped records into these node kinds:
10
10
  - Facet nodes: `time`, `topic`, `issue`, `entity`, `session`, `thread`, `memoryKind`, and `actionKind`.
11
11
  - Action frames are extracted deterministically from raw user evidence and link actor, target, action kind, time, topic, project, and evidence.
12
12
 
13
- Existing memory edges remain canonical. Atlas adds derived navigation edges such as `OCCURRED_ON`, `OCCURRED_IN`, `ABOUT_TOPIC`, `PART_OF_ISSUE`, `INVOLVES_ENTITY`, `IN_SESSION`, `IN_THREAD`, and `HAS_EVIDENCE` without changing the underlying belief or binding graph. The 3.7.0 offline curator automatically proposes only bounded `SAME_ISSUE`, `FOLLOWS_UP`, and weak `RELATED_TO` episode relations; stronger relations such as `REFINES`, `CORRECTS`, `CONTRADICTS`, and `SUPERSEDES` remain reserved for explicit evidence-bearing governance/binding flows.
13
+ Existing memory edges remain canonical. Atlas adds derived navigation edges such as `OCCURRED_ON`, `OCCURRED_IN`, `ABOUT_TOPIC`, `PART_OF_ISSUE`, `INVOLVES_ENTITY`, `IN_SESSION`, `IN_THREAD`, and `HAS_EVIDENCE` without changing the underlying belief or binding graph. The 3.7.2 offline curator automatically proposes only bounded `SAME_ISSUE`, `FOLLOWS_UP`, and weak `RELATED_TO` episode relations; stronger relations such as `REFINES`, `CORRECTS`, `CONTRADICTS`, and `SUPERSEDES` remain reserved for explicit evidence-bearing governance/binding flows. Entity facet node IDs are project-scoped; same-name tools or people in different projects do not share Atlas nodes.
14
14
 
15
15
  This is not a copied tree. One episode exists once as `episode:<id>`. A day, topic, issue, entity, session, memory kind, or action kind is only a facet entrance:
16
16
 
@@ -32,13 +32,13 @@ Search and explore output dedupe by `canonicalId`. When a canonical episode is r
32
32
  5. Use returned `sourceLocator.command` or event IDs with `cogmem memory show` before quoting exact source text.
33
33
  6. Use normal `cogmem_recall` for a direct factual memory question.
34
34
 
35
- Atlas summaries are `hint_only_not_evidence` in effect. Project scope, raw evidence ownership, and governance still decide what may be claimed as durable memory.
35
+ Atlas summaries are `hint_only_not_evidence` in effect. Project scope, raw evidence ownership, and governance still decide what may be claimed as durable memory. If two projected episodes share the same primary raw evidence with the same date/entity/action facets, Atlas returns one selected card and moves the duplicate episode identity into `relatedButNotSelected`.
36
36
 
37
37
  ## Faceted cold-memory resurrection
38
38
 
39
39
  Activation controls default visibility, not existence. Maintenance decays Atlas activation deterministically; an explicit `cogmem_graph_touch` raises nodes that the agent actually used. Read-only overview/search/explore calls do not change ranking. A query can still surface a cold node when its available facets match.
40
40
 
41
- Facets include project, day/month/year, topic, issue, entity/person/project, session/thread, memory kind, action kind, and ordinary keywords. The engine combines the facets actually present in the message, similar to filtering multiple columns in a table. It does not require the fixed combination entity + time + action.
41
+ Facets include project, day/month/year, topic, issue, entity/person/project, session/thread, memory kind, action kind, and ordinary keywords. The engine combines the facets actually present in the message, similar to filtering multiple columns in a table. It does not require the fixed combination entity + time + action. Entity cues are deterministic text cues and support Unicode letter/number names such as ordinary Chinese, Japanese, Korean, Cyrillic, and Latin labels; alias merging and person identity remain governed memory operations rather than automatic Atlas projection behavior.
42
42
 
43
43
  For example, all of these can revive cold memory:
44
44
 
@@ -46,12 +46,14 @@ For example, all of these can revive cold memory:
46
46
  - `6月6号关于记忆黑盒聊过什么`
47
47
  - `记忆黑盒后来有没有继续讨论`
48
48
  - `memory graph 卡死的问题修了吗`
49
- - `2025 Hermes 的决策`
49
+ - `2025 某工具的决策`
50
+ - `我之前让你对某工具做过什么`
51
+ - `启动某工具`
50
52
  - `在留更新里被纠正过的计划`
51
53
  - `去年 OpenClaw 失败的配置事件`
52
54
  - `餐车 POS 项目中关于库存的偏好`
53
55
 
54
- Exact constraints may bypass the visibility floor. They never bypass `projectId`, evidence validation, or traversal limits. If strict intersection is empty, Atlas may relax day to parent month or issue to parent topic, but JSON must include `relaxationTrace`; it must not silently substitute a nearby memory.
56
+ Exact constraints may bypass the visibility floor. They never bypass `projectId`, evidence validation, or traversal limits. If strict intersection is empty, Atlas may relax day to parent month, month to parent year, or issue to parent topic, but JSON must include `relaxationTrace`; it must not silently substitute a nearby memory.
55
57
 
56
58
  `graph-search` and `graph-explore` include agent-facing `cards` when canonical episodes match:
57
59
 
@@ -74,6 +76,8 @@ Exact constraints may bypass the visibility floor. They never bypass `projectId`
74
76
 
75
77
  Agents should prefer `cards` over raw node labels for historical discussion because cards preserve the canonical episode, match reason, and drilldown command.
76
78
 
79
+ Action-history queries use the same card model. Entity cues such as a project, tool, person, or service name combine with operational action kinds including `started`, `installed`, `configured`, `restarted`, `stopped`, and `operated`. If the user asks for exact wording, follow the card's `sourceLocator.command` or call `cogmem memory recall --intent forensic_quote`; do not quote from a compiled summary or a daily memory file.
80
+
77
81
  ## Bounds
78
82
 
79
83
  - Default/hard node limit: 8/30.
@@ -95,16 +99,22 @@ cogmem memory graph --project <id> --json
95
99
  cogmem memory graph-search --project <id> --query <query> --json
96
100
  cogmem memory graph-explore --project <id> --query <query> --json
97
101
  cogmem memory graph-explore --project openclaw --query "6月6号关于记忆黑盒聊过什么" --json
102
+ cogmem memory graph-explore --project openclaw --query "启动 <工具名>" --json
98
103
  cogmem memory graph-node --project <id> --id <node-id> --json
99
104
  cogmem memory graph-neighbors --project <id> --id <node-id> --hops 1 --json
100
105
  cogmem memory graph-path --project <id> --from <node-id> --to <node-id> --json
101
106
  cogmem memory graph-timeline --project <id> --query <query> --json
107
+ cogmem memory graph-timeline --project openclaw --query "对 <实体或工具名> 做过什么操作" --include-evidence --json
108
+ cogmem memory graph-reindex --project <id> --event <event-id> --json
109
+ cogmem memory graph-reindex --project <id> --episode <episode-id> --json
102
110
  ```
103
111
 
104
112
  `graph-explore` and `graph-timeline` accept `--now <epoch-ms>` for deterministic relative-time parsing and `--evidence-limit <1..10>` for bounded evidence. Node results distinguish `evidenceTotal` from `evidenceReturned`.
105
113
 
106
114
  Graph reads try to refresh dirty Atlas state, but they default to stale-safe operation for diagnostics. If refresh is blocked by SQLite busy, JSON includes `atlasFresh: false` and `refreshError` while returning the existing projection. Use `--refresh` to force a fresh rebuild or `--no-refresh` to inspect the current projection only.
107
115
 
116
+ Use `graph-reindex` after an audited episode repair or binding repair when one event/episode needs fresh card/facet projection. It updates the targeted episode card, raw-event node, source locator, and episode facet edges without rebuilding the whole project graph. Because episode-to-episode relations and action-frame consistency are global, targeted reindex marks the project projection dirty; run `cogmem memory tick --project <id> --json` or the next maintenance tick for the full consistency rebuild.
117
+
108
118
  ## MCP
109
119
 
110
120
  The canonical-memory-safe tools are:
@@ -135,4 +145,4 @@ Upgrade an existing 3.5.2 database with:
135
145
  cogmem migrate --yes --backup --json
136
146
  ```
137
147
 
138
- Migration 0025 creates and backfills the disposable projection. Migration 0026 adds exact memory-kind metadata, projection health, and candidate-review audit state. Migration 0027 corrects 3.6.0-upgraded databases by marking Atlas projections dirty until the real action/time rebuild runs. Cogmem 3.7.0 keeps the projection-first schema and adds facet nodes, canonical cards, issue hints, and episode relation edges during Atlas rebuild/maintenance. `cogmem memory tick` refreshes only dirty projects, records rebuild errors, prunes old access telemetry, and decays navigation activation without starting a daemon.
148
+ Migration 0025 creates and backfills the disposable projection. Migration 0026 adds exact memory-kind metadata, projection health, and candidate-review audit state. Migration 0027 corrects 3.6.0-upgraded databases by marking Atlas projections dirty until the real action/time rebuild runs. Cogmem 3.7.2 keeps the projection-first schema and adds facet nodes, canonical cards, issue hints, and episode relation edges during Atlas rebuild/maintenance. Projection metadata schema `3.7.2` invalidates earlier 3.7.x Atlas v2 projections so project-scoped entity facets are rebuilt. `cogmem memory tick` refreshes only dirty projects, records rebuild errors, prunes old access telemetry, and decays navigation activation without starting a daemon.
package/README.md CHANGED
@@ -11,7 +11,7 @@ It is not a knowledge-base app, a note-taking app, a vector RAG wrapper, an Obsi
11
11
 
12
12
  ## Status
13
13
 
14
- Current version: `3.7.0`
14
+ Current version: `3.7.2`
15
15
 
16
16
  Distribution: npm registry. GitHub remains the source mirror and hosts this installer, but package install and upgrade resolve `cogmem` from npm by default.
17
17
 
@@ -229,7 +229,7 @@ cogmem migrate --dry-run --json
229
229
 
230
230
  For a manual migration, run `cogmem migrate --yes --backup`. The migration runner adopts the existing `_meta.schema_version`, applies only later idempotent migrations, preserves Raw Ledger rows, and creates a timestamped, transaction-consistent standalone database backup before changing an on-disk database. The backup includes committed SQLite WAL pages instead of copying only the main database file.
231
231
 
232
- Upgrade a 3.5.2 database, a 3.6.x database, or a pre-release schema-25 test database into the current 3.7.0 schema and projection set with one command:
232
+ Upgrade a 3.5.2 database, a 3.6.x database, or a pre-release schema-25 test database into the current 3.7.2 schema and projection set with one command:
233
233
 
234
234
  ```bash
235
235
  cogmem migrate --yes --backup --json
@@ -276,7 +276,7 @@ For a host timer, call `dream tick`; the timer only wakes the sealed-episode sch
276
276
  cogmem dream tick --project my-agent --mode auto --max-episodes 10 --json
277
277
  ```
278
278
 
279
- Raw events are always written first. `KernelAgentMemoryBackend` and OpenClaw plugin 0.7.0 assemble live turns automatically. The foreground hook uses deterministic rules and previous assistant/user context; background import and repair paths may use the advisory hybrid classifier. Advisory output is allow-listed and cannot directly mutate durable memory. Unknown turns now fail closed as ambiguous. Continuation requires explicit continuation language or project/topic/entity/semantic overlap; Cogmem does not route domains with an expanding hard-coded keyword dictionary.
279
+ Raw events are always written first. `KernelAgentMemoryBackend` and OpenClaw plugin 0.7.1 assemble live turns automatically. The foreground hook uses deterministic rules and previous assistant/user context; background import and repair paths may use the advisory hybrid classifier. Advisory output is allow-listed and cannot directly mutate durable memory. Unknown turns now fail closed as ambiguous. Continuation requires explicit continuation language or project/topic/entity/semantic overlap; Cogmem does not route domains with an expanding hard-coded keyword dictionary.
280
280
 
281
281
  Hookless MCP agents can call `cogmem_episode_append` or bounded `cogmem_episode_import`. Existing OpenClaw/Hermes import commands use stable content identities and the same episode schema. Low-confidence imported groups soft-seal for review unless an operator explicitly forces sealing. Cogmem skips import batch sealing for empty episode boundaries and skips legacy empty Dream jobs so one bad imported episode cannot block the queue. Episode semantic summaries and closure receipts are control hints, never durable evidence; every Dream candidate must cite a non-empty subset of the episode's raw event IDs and still pass CPU governance.
282
282
 
@@ -304,24 +304,29 @@ cogmem memory review --project my-agent --id <candidate-id> --action approve --a
304
304
 
305
305
  `cogmem memory map` remains the system anatomy map. Memory Atlas is the content map. It does not replace recall or create a second fact store; it projects existing topics, entities, clusters, episodes, beliefs, action frames, time buckets, bindings, and evidence into a bounded navigation surface.
306
306
 
307
- In 3.7.0, Atlas is a multi-dimensional navigation graph rather than a folder tree. A remembered episode has one canonical node such as `episode:<id>`. Time, topic, issue, entity, session/thread, memory-kind, and action-kind nodes are facet entrances connected to that canonical episode with typed edges. Results dedupe by `canonicalId` and explain `matchedFacets` plus `matchedPaths`.
307
+ In 3.7.2, Atlas is a multi-dimensional navigation graph rather than a folder tree. A remembered episode has one canonical node such as `episode:<id>`. Time, topic, issue, entity, session/thread, memory-kind, and action-kind nodes are facet entrances connected to that canonical episode with typed edges. Results dedupe by `canonicalId` and explain `matchedFacets` plus `matchedPaths`.
308
308
 
309
309
  ```bash
310
310
  cogmem memory graph --project my-agent --json
311
- cogmem memory graph-search --project my-agent --query "Hermes" --json
312
- cogmem memory graph-explore --project my-agent --query "去年我让你对 Hermes 做过什么" --json
311
+ cogmem memory graph-search --project my-agent --query "<实体或工具名>" --json
312
+ cogmem memory graph-explore --project my-agent --query "去年我让你对 <实体或工具名> 做过什么" --json
313
+ cogmem memory graph-explore --project openclaw --query "启动 <工具名>" --json
313
314
  cogmem memory graph-explore --project openclaw --query "6月6号关于记忆黑盒聊过什么" --json
314
315
  cogmem memory graph-node --project my-agent --id "entity:<id>" --json
315
316
  cogmem memory graph-neighbors --project my-agent --id "entity:<id>" --hops 2 --json
316
317
  cogmem memory graph-path --project my-agent --from "entity:<id>" --to "action:<id>" --json
317
- cogmem memory graph-timeline --project my-agent --query "2025 Hermes 的决策和修复" --json
318
+ cogmem memory graph-timeline --project my-agent --query "2025 <实体或工具名> 的决策和修复" --json
319
+ cogmem memory graph-timeline --project openclaw --query "对 <实体或工具名> 做过什么操作" --include-evidence --json
320
+ cogmem memory graph-reindex --project openclaw --event <event-id> --json
318
321
  ```
319
322
 
320
- Atlas filtering is not limited to entity + time + action. The facet planner combines whichever facets are actually present, such as project, day/month/year, topic, issue, entity/person/project, session/thread, memory kind, action kind, and ordinary keywords. Strict multi-facet matches may surface cold nodes even when their activation has decayed. If strict intersection is empty, JSON includes `relaxationTrace` instead of silently pretending an exact match existed. Project scope and raw evidence validation are never bypassed.
323
+ Atlas filtering is not limited to entity + time + action. The facet planner combines whichever facets are actually present, such as project, day/month/year, topic, issue, entity/person/project, session/thread, memory kind, action kind, and ordinary keywords. Entity cue extraction supports Unicode letter/number names in ordinary historical and action-history questions, but it is still deterministic cue extraction, not full named-entity recognition or an automatic alias merge graph. Strict multi-facet matches may surface cold nodes even when their activation has decayed. If strict intersection is empty, JSON includes `relaxationTrace` for explicit fallbacks such as day → month → year or issue → parent topic instead of silently pretending an exact match existed. Project scope and raw evidence validation are never bypassed.
321
324
 
322
325
  Defaults are 8 nodes, one hop, and two evidence IDs per node. Hard limits are 30 nodes, two hops, ten evidence IDs, six path hops, and 2,000 visited nodes. Raw excerpts are omitted unless `--include-evidence` or `includeEvidence: true` is explicit. `evidenceTotal` reports all known evidence while `evidenceReturned` reports the bounded payload. Every returned evidence item carries an `eventId` and a `cogmem memory show` drilldown command.
323
326
 
324
- Atlas search and explore return agent-facing `cards` for canonical episodes. Each card includes `canonicalId`, `displayTitle`, `oneLineSummary`, `matchedFacets`, `matchedPaths`, `relatedButNotSelected`, and `sourceLocator.command` / `sourceLocator.contextCommand` when evidence is available. Agents should run that locator before quoting exact wording, before claiming a historical topic is absent, or when a graph summary looks relevant but underspecified.
327
+ Atlas search and explore return agent-facing `cards` for canonical episodes. Each card includes `canonicalId`, `displayTitle`, `oneLineSummary`, `matchedFacets`, `matchedPaths`, `relatedButNotSelected`, and `sourceLocator.command` / `sourceLocator.contextCommand` when evidence is available. Cards dedupe overlapping episodes by primary raw evidence so the same event is not displayed twice through two episode IDs. Agents should run that locator before quoting exact wording, before claiming a historical topic is absent, or when a graph summary looks relevant but underspecified.
328
+
329
+ Action-history questions such as “what did I ask you to do to <entity>?” route through entity + actionKind facets before compiled memory. Operational action kinds include `started`, `installed`, `configured`, `restarted`, `stopped`, and `operated`. If graph/raw evidence is empty and compiled candidates do not share both the query's entity and an operational action cue, Cogmem suppresses the unrelated compiled memory rather than injecting noise. Exact quote cues such as “我的原话”, “精确”, “exact quote”, or “verbatim” must use Raw Ledger/sourceLocator evidence and must not quote from daily memory files, imported summaries, or compiled memories alone.
325
330
 
326
331
  Atlas reads do not brighten everything they display. MCP graph queries are read-only/idempotent; call `cogmem_graph_touch` only after the agent actually uses selected nodes. Maintenance decays activation, refreshes dirty projections only, and prunes old access telemetry.
327
332
 
@@ -381,7 +386,7 @@ cogmem strategy plan --project hermes --query "我当时的原话是什么?" -
381
386
  cogmem strategy outcomes --project hermes --json
382
387
  ```
383
388
 
384
- OpenClaw plugin 0.7.0 skips Cogmem entirely for greetings, uses only session state/turn bridge for short continuations, and applies Strategy Cortex before full recall. Navigation turns use one bridge/kernel lifecycle for Atlas exploration, evidence-bearing node/timeline drill-down, and recall. The bounded volatile `<COGMEM_MEMORY_ATLAS>` block includes selected memory cards, matched facets, matched paths, related-but-not-selected cards, evidence event IDs, and drill-down commands; OpenClaw does not need MCP for this path.
389
+ OpenClaw plugin 0.7.1 skips Cogmem entirely for greetings, uses only session state/turn bridge for short continuations, and applies Strategy Cortex before full recall. Navigation turns use one bridge/kernel lifecycle for Atlas exploration, evidence-bearing node/timeline drill-down, and recall. The bounded volatile `<COGMEM_MEMORY_ATLAS>` block includes selected memory cards, matched facets, matched paths, related-but-not-selected cards, evidence event IDs, and drill-down commands; OpenClaw does not need MCP for this path. Historical text, source windows, short-term bridge conclusions, and session-state strings are serialized as untrusted data before injection so stored memories cannot create or close `COGMEM_*` blocks.
385
390
 
386
391
  `cogmem connect openclaw --auto --force --json` and `cogmem connect hermes --auto --force --json` now return structured `nextSteps`. Only `nextSteps` with `actor: "agent"` and `safeForAutomation: true` are mirrored into `nextCommands`. Interactive setup, gateway restart, and Hermes reload remain visible as operator/host steps but are intentionally absent from `nextCommands`.
387
392
 
@@ -793,7 +798,7 @@ npm pack --dry-run --json
793
798
  npm publish --dry-run --access public
794
799
  ```
795
800
 
796
- Create a GitHub Release from the matching version tag, for example `v3.7.0`. The `.github/workflows/publish.yml` workflow publishes to npm only when the release is published, not when a tag is pushed. The npm Trusted Publisher entry must match repository `liuqin164/cogmem`, workflow file `publish.yml`, and environment `npm publish`.
801
+ Create a GitHub Release from the matching version tag, for example `v3.7.2`. The `.github/workflows/publish.yml` workflow publishes to npm only when the release is published, not when a tag is pushed. The npm Trusted Publisher entry must match repository `liuqin164/cogmem`, workflow file `publish.yml`, and environment `npm publish`.
797
802
 
798
803
  Publish manually only for emergency fallback:
799
804
 
@@ -1,11 +1,11 @@
1
- # cogmem 3.7.0 Release Checklist
1
+ # cogmem 3.7.2 Release Checklist
2
2
 
3
3
  This release is distributed through the npm registry. GitHub remains the source and review mirror.
4
4
 
5
5
  ## Required Metadata
6
6
 
7
7
  - `package.json` name is `cogmem`.
8
- - `package.json` version is `3.7.0`.
8
+ - `package.json` version is `3.7.2`.
9
9
  - `package.json` has `publishConfig.access = public`.
10
10
  - Public export `.` points to `dist/public.js` and `dist/public.d.ts`.
11
11
  - Internal subpath `./internal` exists only as an explicit advanced subpath.
@@ -61,7 +61,7 @@ MCP `tools/list` includes strategy, episode append/import/status/seal/repair, to
61
61
  - README and skills explain Raw Ledger-first episode assembly, soft/hard sealing, explicit conditional Dream ticks, raw-event evidence grounding, repair/retry, and hookless Hermes MCP/import usage.
62
62
  - README and skills give the full post-import maintenance sequence: status, episode status, Dream status, bounded Dream tick, candidate listing, govern candidate, needs-confirmation listing, explicit review, and recall verification.
63
63
  - README and skills explain that 3.6.4+ skips empty imported episode boundaries and legacy empty Dream jobs instead of letting them abort `dream tick`.
64
- - README and skills explain the 3.7.0 agent operations protocol: `memory plan` for next actions, default grouped `memory candidates --json`, `memory list --since/--until/--order`, historical-discussion recall intent, Atlas canonical cards, `matchedFacets`, `relatedButNotSelected`, `relaxationTrace`, Atlas evidence `sourceLocator`, and cursor-based `memory bind`.
64
+ - README and skills explain the 3.7.2 agent operations protocol: `memory plan` for next actions, default grouped `memory candidates --json`, `memory list --since/--until/--order`, historical-discussion recall intent, Atlas canonical cards, `matchedFacets`, `relatedButNotSelected`, `relaxationTrace`, Atlas evidence `sourceLocator`, and cursor-based `memory bind`.
65
65
  - README, `MEMORY_ATLAS.md`, and installed skills explain the multi-dimensional Atlas model: a canonical episode/raw event exists once, facet nodes connect through typed edges, query results intersect facets, and display/injection dedupes by `canonicalId`.
66
66
  - `connect openclaw|hermes --json` documents structured `nextSteps`; `nextCommands` must contain only agent-safe, non-interactive commands and must not include `cogmem init`, `cogmem-init`, gateway restart, or Hermes reload.
67
67
  - README and skills document `cogmem mcp` as the preferred MCP server command for new configs while preserving `cogmem-mcp` as a compatibility bin.
@@ -94,7 +94,7 @@ npm publish --dry-run --access public
94
94
 
95
95
  The pack dry-run must include built public API files, CLI files, examples, docs, and `install.sh`. It must not include local databases or machine-specific files.
96
96
 
97
- After verification, create a GitHub Release from the matching version tag, for example `v3.7.0`. The release workflow publishes through npm Trusted Publishing when the release is published. It must not publish on tag push alone.
97
+ After verification, create a GitHub Release from the matching version tag, for example `v3.7.2`. The release workflow publishes through npm Trusted Publishing when the release is published. It must not publish on tag push alone.
98
98
 
99
99
  Emergency manual fallback:
100
100
 
@@ -40,6 +40,9 @@ export interface AgentRecallQuery {
40
40
  intent?: AgentRecallIntent;
41
41
  anchorEventId?: string;
42
42
  anchorText?: string;
43
+ now?: number;
44
+ localDateNow?: string;
45
+ timeZone?: string;
43
46
  limit?: number;
44
47
  startTime?: number;
45
48
  endTime?: number;
@@ -167,7 +170,7 @@ export interface AgentRecallItem {
167
170
  canAnswerExactQuote?: boolean;
168
171
  }
169
172
  export interface AgentRecallResult {
170
- recallMode: MemoryKernelNavigationResult['recallMode'] | 'raw_ledger_fallback';
173
+ recallMode: MemoryKernelNavigationResult['recallMode'] | 'raw_ledger_fallback' | 'atlas_facet_recall' | 'atlas_raw_grounded_recall';
171
174
  items: AgentRecallItem[];
172
175
  narrative?: NonNullable<MemoryKernelNavigationResult['navigation']>['narrative'];
173
176
  pulseTrace?: NonNullable<MemoryKernelNavigationResult['navigation']>['pulse']['trace'];
@@ -184,7 +187,7 @@ export interface AgentRecallResult {
184
187
  export interface AgentRecallDecisionTrace {
185
188
  version: 'agent_recall_decision.v1';
186
189
  selectedLane: 'facet_graph_raw_ledger' | 'graph' | 'compiled' | 'brain_fallback' | 'raw_ledger' | 'mixed' | 'none';
187
- reason: 'previous_session' | 'forensic_quote' | 'historical_discussion' | 'graph_selected' | 'raw_cue_match_preferred' | 'compiled_cue_match' | 'brain_fallback_selected' | 'raw_ledger_only' | 'no_recall_evidence';
190
+ reason: 'previous_session' | 'forensic_quote' | 'historical_discussion' | 'action_history' | 'graph_selected' | 'raw_cue_match_preferred' | 'compiled_cue_match' | 'brain_fallback_selected' | 'raw_ledger_only' | 'no_recall_evidence';
188
191
  candidateCounts: {
189
192
  graph: number;
190
193
  navigation: number;
@@ -255,20 +258,25 @@ export declare class KernelAgentMemoryBackend {
255
258
  private recallPreviousSession;
256
259
  private recallForensicQuote;
257
260
  private recallHistoricalDiscussion;
261
+ private facetGraphQuoteItemsForQuery;
258
262
  private facetGraphItemsForQuery;
259
263
  private toAgentRecallItemFromAtlasCard;
260
264
  private recallForensicAnchor;
261
265
  private searchRawEventsByQueryPlan;
266
+ private rawEventsForLocalDateCue;
262
267
  private rawLedgerFallbackItemsForQuery;
263
268
  private memoryBindingGraphItemsForQuery;
264
269
  private graphRecallTextScore;
265
270
  private shouldPreferRawLedgerFallback;
266
271
  private itemsContainRecallCue;
267
272
  private recallCueTerms;
273
+ private queryHasStructuredCue;
274
+ private structuredCueTerms;
268
275
  private itemSearchableText;
269
276
  private mergeRecallItems;
270
277
  private mergeHistoricalRecallItems;
271
278
  private compiledItemsForHistoricalQuery;
279
+ private filterCompiledItemsByQueryCues;
272
280
  private dedupeRawEventsByTurnPreferUser;
273
281
  private expandRawSearchTexts;
274
282
  private findPreviousSessionId;
@@ -280,6 +288,7 @@ export declare class KernelAgentMemoryBackend {
280
288
  private filterAgentEvidence;
281
289
  private toAgentRecallItem;
282
290
  private isAgentRawEvent;
291
+ private isRawEventInRecallScope;
283
292
  private isOperationalNoiseRawEvent;
284
293
  private isAllowedSession;
285
294
  private hasReadableEventText;