recallnest 2.2.0 → 2.2.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.
- package/.env +4 -0
- package/config.json +55 -0
- package/logs/daily-recall.error.log +0 -0
- package/logs/daily-recall.log +30 -0
- package/logs/ingest-2026-04-11.log +110 -0
- package/logs/ingest-2026-04-12.log +90 -0
- package/logs/launchagent-stderr.log +0 -0
- package/logs/launchagent-stdout.log +0 -0
- package/package.json +1 -1
- package/.claude-plugin/CLAUDE.md +0 -29
- package/.claude-plugin/marketplace.json +0 -18
- package/.dockerignore +0 -11
- package/.github/workflows/ci.yml +0 -28
- package/.mcp.json +0 -9
- package/CHANGELOG.md +0 -51
- package/DEMO.md +0 -94
- package/Dockerfile +0 -20
- package/EVAL.md +0 -89
- package/FAILURES.md +0 -75
- package/OPERATIONS.md +0 -59
- package/ROADMAP.md +0 -245
- package/SKILL.md +0 -250
- package/assets/dashboard.png +0 -0
- package/assets/knowledge-graph.png +0 -0
- package/assets/recallnest-workbench.png +0 -0
- package/assets/screenshots/ui-full.png +0 -0
- package/assets/screenshots/ui-overview.png +0 -0
- package/assets/screenshots/ui-search.png +0 -0
- package/assets/ui/app.js +0 -1031
- package/assets/ui/index.html +0 -224
- package/assets/ui/styles.css +0 -781
- package/assets/wechat-qr.jpg +0 -0
- package/bun.lock +0 -337
- package/daily-reflections/2026-03-05.md +0 -15
- package/daily-reflections/2026-03-06.md +0 -15
- package/daily-reflections/2026-03-07.md +0 -7
- package/daily-reflections/2026-03-08.md +0 -34
- package/daily-reflections/2026-03-09.md +0 -35
- package/daily-reflections/2026-03-10.md +0 -36
- package/daily-reflections/2026-03-11.md +0 -35
- package/daily-reflections/2026-03-12.md +0 -36
- package/daily-reflections/2026-03-13.md +0 -35
- package/daily-reflections/2026-03-14.md +0 -35
- package/daily-reflections/2026-03-15.md +0 -35
- package/daily-reflections/2026-03-16.md +0 -41
- package/daily-reflections/2026-03-17.md +0 -10
- package/daily-reflections/2026-03-18.md +0 -10
- package/daily-reflections/2026-03-19.md +0 -10
- package/daily-reflections/2026-03-20.md +0 -10
- package/daily-reflections/2026-03-21.md +0 -10
- package/daily-reflections/2026-03-22.md +0 -10
- package/daily-reflections/2026-03-23.md +0 -10
- package/daily-reflections/2026-03-24.md +0 -10
- package/daily-reflections/2026-03-25.md +0 -32
- package/daily-reflections/2026-03-26.md +0 -37
- package/daily-reflections/2026-03-27.md +0 -35
- package/daily-reflections/2026-03-28.md +0 -35
- package/daily-reflections/2026-03-29.md +0 -35
- package/daily-reflections/2026-03-30.md +0 -36
- package/daily-reflections/2026-03-31.md +0 -35
- package/daily-reflections/2026-04-01.md +0 -35
- package/daily-reflections/2026-04-02.md +0 -35
- package/daily-reflections/2026-04-03.md +0 -37
- package/daily-reflections/2026-04-04.md +0 -37
- package/daily-reflections/2026-04-05.md +0 -35
- package/daily-reflections/2026-04-06.md +0 -36
- package/daily-reflections/2026-04-07.md +0 -35
- package/daily-reflections/2026-04-08.md +0 -35
- package/daily-reflections/2026-04-12.md +0 -35
- package/data/alias-map.example.json +0 -22
- package/docs/api-reference.md +0 -1291
- package/docs/architecture.md +0 -168
- package/docs/memory-boundary-contract.md +0 -226
- package/docs/memory-categories.md +0 -119
- package/docs/pipeline-audit-ultramemory.md +0 -177
- package/docs/plans/2026-03-08-query-expansion.md +0 -270
- package/docs/plans/2026-03-16-continuity-layer.md +0 -196
- package/docs/plans/2026-04-01-recall-boost.md +0 -100
- package/docs/plans/mcp-tiering-plan.md +0 -126
- package/docs/research/recall-quality-audit-2026-03-22.md +0 -153
- package/docs/self-evolution.md +0 -198
- package/docs/superpowers/plans/2026-03-19-ingest-pipeline-upgrade.md +0 -782
- package/docs/superpowers/plans/2026-04-11-constructive-retrieval-emotion.md +0 -1195
- package/docs/superpowers/specs/2026-03-19-ingest-pipeline-upgrade-design.md +0 -77
- package/docs/superpowers/specs/2026-03-23-pull-claude-desktop-design.md +0 -95
- package/docs/superpowers/specs/2026-04-11-constructive-retrieval-emotion-design.md +0 -398
- package/eval/continuity/results-2026-03-16.md +0 -117
- package/eval/continuity/results-2026-03-19.md +0 -453
- package/eval/continuity/runbook.md +0 -110
- package/eval/continuity/seed-cases.md +0 -54
- package/eval/reports/2026-03-06-abstract-query-baseline.md +0 -96
- package/eval/reports/2026-03-06-aws-ssh-baseline.md +0 -82
- package/eval/reports/2026-03-06-baseline.md +0 -82
- package/eval/reports/query-expansion.md +0 -138
- package/glama.json +0 -6
- package/lm +0 -19
- package/plan-philosophy-upgrades.md +0 -363
- package/plan-product-upgrades.md +0 -155
- package/plan-v1.2-distributable.md +0 -105
- package/plan.md +0 -140
- package/research-memory-evolution.md +0 -440
- package/research-rl-agent-memory.md +0 -330
- package/scripts/archive-distilled-junk.ts +0 -116
- package/scripts/backfill-anchors.ts +0 -130
- package/scripts/backfill-l0l1l2.ts +0 -98
- package/scripts/blind-scan.ts +0 -588
- package/scripts/cleanup-step1-exact-dups.ts +0 -117
- package/scripts/cleanup-step2-template-dups.ts +0 -113
- package/scripts/cleanup-step3-stale-content.ts +0 -149
- package/scripts/cleanup-step4-orphan-scopes.ts +0 -131
- package/scripts/delete-distilled-junk.ts +0 -88
- package/scripts/diagnose-vector-search.ts +0 -132
- package/scripts/distill-facts.ts +0 -305
- package/scripts/health-check.ts +0 -343
- package/scripts/incremental-ingest.sh +0 -71
- package/scripts/migrate-language.ts +0 -75
- package/scripts/mlp-health-check.ts +0 -382
- package/scripts/pull-claude-desktop.ts +0 -515
- package/scripts/re-ingest-cc.sh +0 -66
- package/scripts/rebalance-memory-health.ts +0 -181
- package/scripts/run-desktop-ingest.sh +0 -11
- package/scripts/start-server.sh +0 -12
- package/scripts/verify-emotion-decay.ts +0 -148
- package/scripts/viz-dashboard.html +0 -423
- package/scripts/viz-export.ts +0 -703
- package/src/__tests__/access-tracker-novelty.test.ts +0 -228
- package/src/__tests__/activity-counter.test.ts +0 -96
- package/src/__tests__/admission-control.test.ts +0 -206
- package/src/__tests__/anchor-generator.test.ts +0 -67
- package/src/__tests__/auto-consolidation.test.ts +0 -168
- package/src/__tests__/auto-recall.test.ts +0 -131
- package/src/__tests__/babel-integration.test.ts +0 -139
- package/src/__tests__/batch-dedup.test.ts +0 -65
- package/src/__tests__/capture-engine.test.ts +0 -1144
- package/src/__tests__/capture-heuristic.test.ts +0 -171
- package/src/__tests__/cascade-forget.test.ts +0 -210
- package/src/__tests__/category-min-scores.test.ts +0 -33
- package/src/__tests__/cc8-cc1-essential-context.test.ts +0 -298
- package/src/__tests__/circuit-breaker.test.ts +0 -99
- package/src/__tests__/cluster-consolidation.test.ts +0 -712
- package/src/__tests__/confidence-metadata.test.ts +0 -125
- package/src/__tests__/confidence-tracker.test.ts +0 -249
- package/src/__tests__/conflict-advisor.test.ts +0 -206
- package/src/__tests__/conflict-escalation.test.ts +0 -149
- package/src/__tests__/conflict-lifecycle.test.ts +0 -83
- package/src/__tests__/conflict-output.test.ts +0 -85
- package/src/__tests__/conflict-store.test.ts +0 -374
- package/src/__tests__/consolidation-engine.test.ts +0 -181
- package/src/__tests__/constructive-retrieval.test.ts +0 -509
- package/src/__tests__/context-collapse-renderer.test.ts +0 -214
- package/src/__tests__/context-composer-pins.test.ts +0 -64
- package/src/__tests__/context-composer-task-selection.test.ts +0 -24
- package/src/__tests__/context-reconstructor.test.ts +0 -65
- package/src/__tests__/context-renderer.test.ts +0 -91
- package/src/__tests__/continuity-eval.test.ts +0 -275
- package/src/__tests__/continuity-schema.test.ts +0 -97
- package/src/__tests__/conversation-importer.test.ts +0 -692
- package/src/__tests__/core-recall-eval.test.ts +0 -235
- package/src/__tests__/core-summary.test.ts +0 -109
- package/src/__tests__/data-checkup.test.ts +0 -225
- package/src/__tests__/decay-exemption.test.ts +0 -84
- package/src/__tests__/dedup-actions.test.ts +0 -58
- package/src/__tests__/dedup-guard.test.ts +0 -39
- package/src/__tests__/deterministic-id.test.ts +0 -39
- package/src/__tests__/distill-lock.test.ts +0 -176
- package/src/__tests__/doctor.test.ts +0 -303
- package/src/__tests__/dream-pipeline.test.ts +0 -232
- package/src/__tests__/drill-down.test.ts +0 -108
- package/src/__tests__/embedder.test.ts +0 -122
- package/src/__tests__/emotion-decay.test.ts +0 -46
- package/src/__tests__/emotion-detector.test.ts +0 -56
- package/src/__tests__/emotion-phase1-integration.test.ts +0 -153
- package/src/__tests__/emotion-retrieval.test.ts +0 -56
- package/src/__tests__/entity-resolver.test.ts +0 -58
- package/src/__tests__/ethics-layer.test.ts +0 -476
- package/src/__tests__/event-segmenter.test.ts +0 -153
- package/src/__tests__/feature-flags-integration.test.ts +0 -54
- package/src/__tests__/frequency-tracker.test.ts +0 -113
- package/src/__tests__/graph-export.test.ts +0 -489
- package/src/__tests__/hotness-blend.test.ts +0 -76
- package/src/__tests__/ingest.test.ts +0 -360
- package/src/__tests__/interference-detector.test.ts +0 -203
- package/src/__tests__/kg-extractor.test.ts +0 -184
- package/src/__tests__/kg-store.test.ts +0 -198
- package/src/__tests__/llm-consolidation.test.ts +0 -226
- package/src/__tests__/mcp-efficiency.test.ts +0 -288
- package/src/__tests__/memory-boundaries.test.ts +0 -237
- package/src/__tests__/memory-evolution-b2-b3-e1.test.ts +0 -243
- package/src/__tests__/memory-evolution.test.ts +0 -271
- package/src/__tests__/memory-health-rebalance.test.ts +0 -144
- package/src/__tests__/memory-lint.test.ts +0 -271
- package/src/__tests__/memory-output.test.ts +0 -215
- package/src/__tests__/multi-vector.test.ts +0 -242
- package/src/__tests__/narrative-architecture.test.ts +0 -456
- package/src/__tests__/pending-review.test.ts +0 -77
- package/src/__tests__/post-retrieval-filter.test.ts +0 -178
- package/src/__tests__/ppr-traversal.test.ts +0 -256
- package/src/__tests__/prediction-engine.test.ts +0 -349
- package/src/__tests__/predictive-prospective-memory.test.ts +0 -416
- package/src/__tests__/preference-guard-smoke.test.ts +0 -211
- package/src/__tests__/preference-matcher.test.ts +0 -230
- package/src/__tests__/preference-slots.test.ts +0 -205
- package/src/__tests__/prospective-memory.test.ts +0 -283
- package/src/__tests__/query-entity-detector.test.ts +0 -171
- package/src/__tests__/query-expander-alias.test.ts +0 -89
- package/src/__tests__/query-expander.test.ts +0 -34
- package/src/__tests__/recall-governor.test.ts +0 -227
- package/src/__tests__/recall-mode.test.ts +0 -64
- package/src/__tests__/result-synthesizer.test.ts +0 -198
- package/src/__tests__/resume-context.test.ts +0 -4898
- package/src/__tests__/retrieval-trace.test.ts +0 -213
- package/src/__tests__/retriever-boundary-weight.test.ts +0 -136
- package/src/__tests__/retroactive-boost.test.ts +0 -223
- package/src/__tests__/salience-scoring.test.ts +0 -106
- package/src/__tests__/scope-inventory.test.ts +0 -200
- package/src/__tests__/scope-policy.test.ts +0 -69
- package/src/__tests__/session-checkpoint.test.ts +0 -259
- package/src/__tests__/session-distiller.test.ts +0 -611
- package/src/__tests__/session-gc.test.ts +0 -215
- package/src/__tests__/skill-engine.test.ts +0 -546
- package/src/__tests__/skill-promotion.test.ts +0 -349
- package/src/__tests__/store-scope-audit.test.ts +0 -81
- package/src/__tests__/supersede-chain.test.ts +0 -154
- package/src/__tests__/temporal-parser.test.ts +0 -241
- package/src/__tests__/temporal-validity.test.ts +0 -160
- package/src/__tests__/term-registry.test.ts +0 -121
- package/src/__tests__/tool-output-compressor.test.ts +0 -133
- package/src/__tests__/topic-tag.test.ts +0 -113
- package/src/__tests__/trusted-memory.test.ts +0 -828
- package/src/__tests__/version-manager.test.ts +0 -213
- package/src/__tests__/workflow-observation.test.ts +0 -400
- package/src/__tests__/write-verifier.test.ts +0 -122
package/FAILURES.md
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# RecallNest Failure Notebook
|
|
2
|
-
|
|
3
|
-
Use this file to record misses, weak hits, and noisy hits.
|
|
4
|
-
|
|
5
|
-
Do not rely on memory when retrieval quality changes. Add an entry, then update `eval/cases.json` if the failure should become a permanent benchmark.
|
|
6
|
-
|
|
7
|
-
## How To Use
|
|
8
|
-
|
|
9
|
-
| Step | Action |
|
|
10
|
-
|------|------|
|
|
11
|
-
| 1 | Record the exact query you ran |
|
|
12
|
-
| 2 | Note the mode, scope, and surface (`UI`, `MCP`, or `CLI`) |
|
|
13
|
-
| 3 | Write what you expected to see |
|
|
14
|
-
| 4 | Write what actually happened |
|
|
15
|
-
| 5 | Make one concrete hypothesis, not five vague ones |
|
|
16
|
-
| 6 | After a fix, record whether the issue moved into `eval/cases.json` |
|
|
17
|
-
|
|
18
|
-
## Entry Template
|
|
19
|
-
|
|
20
|
-
```md
|
|
21
|
-
## YYYY-MM-DD - short_name
|
|
22
|
-
|
|
23
|
-
| Field | Value |
|
|
24
|
-
|------|------|
|
|
25
|
-
| Query | `...` |
|
|
26
|
-
| Profile | `default / writing / debug / fact-check` |
|
|
27
|
-
| Scope | `...` |
|
|
28
|
-
| Surface | `UI / MCP / CLI` |
|
|
29
|
-
| Expected | ... |
|
|
30
|
-
| Actual | ... |
|
|
31
|
-
| Failure Type | `miss / weak hit / noisy hit / asset pollution / bad ranking` |
|
|
32
|
-
| Hypothesis | ... |
|
|
33
|
-
| Fix | ... |
|
|
34
|
-
| Eval Case Added | `yes / no` |
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Current Known Weak Spots
|
|
38
|
-
|
|
39
|
-
| Query family | Current issue | Status |
|
|
40
|
-
|------|------|------|
|
|
41
|
-
| `aws ssh` | needs to stay strong because this is the real operator wording | watch |
|
|
42
|
-
| abstract relationship queries | must keep working without exact keywords | watch |
|
|
43
|
-
| asset-heavy topics | old briefs can pollute recall if asset hygiene is ignored | mitigated, keep watching |
|
|
44
|
-
|
|
45
|
-
## Entries
|
|
46
|
-
|
|
47
|
-
## 2026-03-06 - aws_query_wording
|
|
48
|
-
|
|
49
|
-
| Field | Value |
|
|
50
|
-
|------|------|
|
|
51
|
-
| Query | `aws bot config` vs `aws ssh` |
|
|
52
|
-
| Profile | `debug` |
|
|
53
|
-
| Scope | `cc / codex / gemini / memory` |
|
|
54
|
-
| Surface | `UI` |
|
|
55
|
-
| Expected | the AWS access path should be easy to recover using the wording the operator naturally types |
|
|
56
|
-
| Actual | `aws ssh` returns stronger and more directly useful hits than `aws bot config` |
|
|
57
|
-
| Failure Type | `bad ranking` |
|
|
58
|
-
| Hypothesis | the earlier eval case used an artificial wording closer to a label than a real operator query |
|
|
59
|
-
| Fix | replace the eval case with `aws ssh` and treat operator wording as the benchmark source of truth |
|
|
60
|
-
| Eval Case Added | `yes` |
|
|
61
|
-
|
|
62
|
-
## 2026-03-06 - working_relationship_positive
|
|
63
|
-
|
|
64
|
-
| Field | Value |
|
|
65
|
-
|------|------|
|
|
66
|
-
| Query | `我们相处态度` |
|
|
67
|
-
| Profile | `default` |
|
|
68
|
-
| Scope | `cc / codex / gemini / memory` |
|
|
69
|
-
| Surface | `UI` |
|
|
70
|
-
| Expected | abstract relationship and collaboration preferences should still surface the right context |
|
|
71
|
-
| Actual | user reported the result felt right; eval later passed at `73%`, which means it works but is still weaker than exact operational queries |
|
|
72
|
-
| Failure Type | `weak hit / positive signal` |
|
|
73
|
-
| Hypothesis | semantic recall is working for summarized wording, but abstract preference queries still need stronger ranking and cleaner memory prioritization |
|
|
74
|
-
| Fix | keep this query as a protected eval case and treat it as a primary target for future retrieval tuning |
|
|
75
|
-
| Eval Case Added | `yes` |
|
package/OPERATIONS.md
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# RecallNest Operations
|
|
2
|
-
|
|
3
|
-
This file is the short operator memo for common actions.
|
|
4
|
-
|
|
5
|
-
## Open The UI
|
|
6
|
-
|
|
7
|
-
### Manual
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
cd /Users/anxianjingya/recallnest
|
|
11
|
-
bun run src/ui-server.ts
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Then open:
|
|
15
|
-
|
|
16
|
-
```text
|
|
17
|
-
http://localhost:4317
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Ask Codex
|
|
21
|
-
|
|
22
|
-
Use either of these:
|
|
23
|
-
|
|
24
|
-
- `帮我启动 RecallNest UI`
|
|
25
|
-
- `帮我打开 RecallNest 记忆工作台`
|
|
26
|
-
- `帮我把 RecallNest 的本地界面跑起来`
|
|
27
|
-
|
|
28
|
-
Expected result:
|
|
29
|
-
- local UI server starts
|
|
30
|
-
- browser target is `http://localhost:4317`
|
|
31
|
-
|
|
32
|
-
## Quick Intent Phrases
|
|
33
|
-
|
|
34
|
-
### Search
|
|
35
|
-
- `帮我在 RecallNest 里搜 telegram bridge`
|
|
36
|
-
- `帮我查一下过去关于 OpenClaw memory 的记录`
|
|
37
|
-
|
|
38
|
-
### Distill
|
|
39
|
-
- `帮我把 OpenClaw 记忆系统蒸馏成 briefing`
|
|
40
|
-
|
|
41
|
-
### Brief
|
|
42
|
-
- `帮我把这个主题做成一个 brief asset`
|
|
43
|
-
|
|
44
|
-
### Assets
|
|
45
|
-
- `帮我打开 Assets 视图`
|
|
46
|
-
- `帮我看一下有哪些 memory assets`
|
|
47
|
-
|
|
48
|
-
### Cleanup
|
|
49
|
-
- `帮我检查有没有 dirty briefs`
|
|
50
|
-
- `帮我清理旧的脏 brief`
|
|
51
|
-
|
|
52
|
-
## Product Position
|
|
53
|
-
|
|
54
|
-
RecallNest should be operated primarily through:
|
|
55
|
-
|
|
56
|
-
1. MCP
|
|
57
|
-
2. UI
|
|
58
|
-
|
|
59
|
-
CLI is an implementation layer, not the main product surface.
|
package/ROADMAP.md
DELETED
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
# RecallNest Roadmap
|
|
2
|
-
|
|
3
|
-
> Vision: a shared memory layer for Claude Code, Codex, and Gemini CLI that gets more useful over time.
|
|
4
|
-
|
|
5
|
-
RecallNest is no longer best described as "local transcript search." The real target is stricter:
|
|
6
|
-
|
|
7
|
-
- one memory layer shared by the three terminals
|
|
8
|
-
- stable context that survives across windows
|
|
9
|
-
- memory that becomes more reusable, not just larger
|
|
10
|
-
|
|
11
|
-
This roadmap reflects that direction.
|
|
12
|
-
|
|
13
|
-
## The Core Problem
|
|
14
|
-
|
|
15
|
-
Today, most coding agents have weak continuity:
|
|
16
|
-
|
|
17
|
-
- past context is scattered across tools
|
|
18
|
-
- a new window often behaves like a reset
|
|
19
|
-
- search is passive, so memory works only when explicitly invoked
|
|
20
|
-
- transcript archives are large, but high-value memories are sparse
|
|
21
|
-
|
|
22
|
-
RecallNest exists to close that gap without giving up local control.
|
|
23
|
-
|
|
24
|
-
What matters first is this: opening another window should not erase stable context about the user, projects, patterns, and past solutions.
|
|
25
|
-
|
|
26
|
-
## Status Summary
|
|
27
|
-
|
|
28
|
-
### Already Done
|
|
29
|
-
|
|
30
|
-
- Shared local LanceDB index
|
|
31
|
-
- MCP server for Claude Code, Gemini CLI, and Codex (41 tools in 3 tiers)
|
|
32
|
-
- HTTP API for custom agents (21 endpoints)
|
|
33
|
-
- Ingestion from existing transcripts and memory files
|
|
34
|
-
- Hybrid retrieval: vector + BM25 + reranking + 4 retrieval profiles
|
|
35
|
-
- 6-channel retrieval: vector + BM25 + L0/L1/L2 multi-vector + KG graph (PPR)
|
|
36
|
-
- 6-category memory classification with topic tags (15 auto-detected topics)
|
|
37
|
-
- Tier-aware decay (Weibull) and access reinforcement
|
|
38
|
-
- Brief and pin assets re-indexed into recall
|
|
39
|
-
- Session checkpoints for active work state
|
|
40
|
-
- `resume_context` composition for fresh windows (full/light/summary modes)
|
|
41
|
-
- Continuity eval harness with seed cases and baseline reports
|
|
42
|
-
- Setup scripts, diagnostics, and debugging UI
|
|
43
|
-
- Explicit evidence -> durable promotion with provenance and `canonicalKey`
|
|
44
|
-
- Conflict candidates, review, audit, escalation, merge resolution, and audit export
|
|
45
|
-
- Session Distiller: 3-layer conversation compression to durable memory
|
|
46
|
-
- Conversation import from Claude Code, Claude.ai, ChatGPT, Slack, and plaintext
|
|
47
|
-
- Skill Memory: store, retrieve, and auto-promote executable skills
|
|
48
|
-
- Admission Control: write-time gating with noise filter, importance floor, dedup, and rate limiting
|
|
49
|
-
- Memory Lint: contradiction, duplicate, stale, and orphan detection with health score
|
|
50
|
-
- Knowledge Graph: interactive D3.js visualization with cross-scope semantic bridges
|
|
51
|
-
- Memory Dashboard: Web UI with stats, category distribution, growth trends, and health
|
|
52
|
-
- SKILL.md: Memory Partner Protocol for LLM onboarding
|
|
53
|
-
- Offline consolidation (`dream`): clustering, merging, pruning
|
|
54
|
-
- Batch operations (`batch_store`): up to 20 memories per call with dedup
|
|
55
|
-
- Data quality health checks (`data_checkup`)
|
|
56
|
-
- Philosophy-Informed Memory: emotion-aware decay, memory ethics layer, autobiographical narrative, constructive retrieval, predictive prospective memory (5 phases, all complete)
|
|
57
|
-
- Feature flags: 6 independent flags for gradual rollout
|
|
58
|
-
- `forget_memory` MCP tool with cascade deletion and audit trail
|
|
59
|
-
- `set_reminder` MCP tool with behavioral prediction engine
|
|
60
|
-
- Memory confidence meta-tags: structured `ConfidenceMetadata` (score/reliability/verifiedAt), source-based auto-assignment, retrieval weighting, low-confidence tagging in `resume_context`
|
|
61
|
-
- Interference detection + active forgetting gate: semantic cluster detection, enhanced RIF with top-K cluster demotion, write-time interference pre-warning, `data_checkup` density report
|
|
62
|
-
- Temporal validity windows: `eventTime`/`validUntil` on `store_memory`, `validAt`/`includeExpired` on `search_memory`, expired memory demotion, auto-GC decay acceleration
|
|
63
|
-
|
|
64
|
-
Test baseline: 1,428 tests, 0 failures
|
|
65
|
-
|
|
66
|
-
### Current Gap
|
|
67
|
-
|
|
68
|
-
RecallNest is a mature three-terminal continuity layer with philosophy-informed memory architecture and research-grade retrieval quality (confidence scoring, interference detection, temporal validity). The remaining gaps are operational and architectural:
|
|
69
|
-
|
|
70
|
-
- continuity eval still depends on the latest live checkpoint in one case
|
|
71
|
-
- scheduled conflict audit/export for recurring review is still missing
|
|
72
|
-
- cross-scope semantic bridge threshold may need per-user tuning
|
|
73
|
-
- `retriever.ts` and `capture-engine.ts` are the two largest modules (2,111 and 1,280 lines) and need decomposition
|
|
74
|
-
- Feature flags (6 total) need gradual production validation before defaulting to on
|
|
75
|
-
|
|
76
|
-
## Phase 1: Shared Memory Foundation
|
|
77
|
-
|
|
78
|
-
Status: done
|
|
79
|
-
|
|
80
|
-
Goal: make all three terminals use the same local memory base.
|
|
81
|
-
|
|
82
|
-
Delivered:
|
|
83
|
-
|
|
84
|
-
- one local index shared by Claude Code, Codex, and Gemini CLI
|
|
85
|
-
- MCP integration scripts for the three terminals
|
|
86
|
-
- HTTP API for agent frameworks
|
|
87
|
-
- multi-source ingest pipeline
|
|
88
|
-
|
|
89
|
-
## Phase 2: Searchable Recall Engine
|
|
90
|
-
|
|
91
|
-
Status: done
|
|
92
|
-
|
|
93
|
-
Goal: make the memory base actually retrievable.
|
|
94
|
-
|
|
95
|
-
Delivered:
|
|
96
|
-
|
|
97
|
-
- ✅ hybrid retrieval (vector + BM25 + RRF)
|
|
98
|
-
- ✅ 6-channel retrieval: vector + BM25 + L0/L1/L2 multi-vector + KG graph (PPR)
|
|
99
|
-
- ✅ temporal validity windows: `validAt`/`includeExpired` retrieval, expired memory demotion
|
|
100
|
-
- ✅ 4 retrieval profiles (default, writing, debug, fact-check)
|
|
101
|
-
- ✅ 6 memory categories with topic tags
|
|
102
|
-
- ✅ Weibull decay + tiering (core / working / peripheral)
|
|
103
|
-
- ✅ explain, distill, brief, and pin flows
|
|
104
|
-
- ✅ Recall Governor: auto-recall governance with budget control and session dedup
|
|
105
|
-
|
|
106
|
-
## Phase 3: Cross-Window Continuity Layer
|
|
107
|
-
|
|
108
|
-
Status: ~~usable~~ **done**
|
|
109
|
-
|
|
110
|
-
Goal: a fresh window should recall stable context without depending on the user to restate it.
|
|
111
|
-
|
|
112
|
-
Delivered:
|
|
113
|
-
|
|
114
|
-
- ✅ session checkpoints for active work state
|
|
115
|
-
- ✅ `resume_context` for fresh windows (full/light/summary modes)
|
|
116
|
-
- ✅ ultra-light wake-up: `resume_context(mode='light')` returns <300 tokens for low-budget terminals
|
|
117
|
-
- ✅ context composition that prefers stable background over blindly replaying the last topic
|
|
118
|
-
- ✅ managed continuity rules installed by setup for Claude Code, Codex, and Gemini CLI
|
|
119
|
-
- ✅ repo-state guard: `checkpoint_session` scrubs volatile git status before handoff
|
|
120
|
-
- ✅ session distiller: 3-layer conversation compression to durable memory
|
|
121
|
-
|
|
122
|
-
Remaining work:
|
|
123
|
-
|
|
124
|
-
- ⬜ isolate eval from live checkpoint drift
|
|
125
|
-
- ⬜ keep measuring instruction-driven startup continuity across the three terminals
|
|
126
|
-
|
|
127
|
-
## Phase 4: High-Signal Memory Capture
|
|
128
|
-
|
|
129
|
-
Status: ~~usable~~ **done**
|
|
130
|
-
|
|
131
|
-
Goal: store more useful memory and less raw transcript residue.
|
|
132
|
-
|
|
133
|
-
Delivered:
|
|
134
|
-
|
|
135
|
-
- ✅ `store_memory` for MCP
|
|
136
|
-
- ✅ dedicated workflow-pattern capture for durable `patterns`
|
|
137
|
-
- ✅ structured capture endpoints for non-MCP agents
|
|
138
|
-
- ✅ explicit evidence promotion into durable memory
|
|
139
|
-
- ✅ boundary guards for `evidence / durable / session`
|
|
140
|
-
- ✅ conflict handling when new durable candidates disagree with existing canonical owners
|
|
141
|
-
- ✅ admission control: noise filter, importance floor, dedup, rate limiting
|
|
142
|
-
- ✅ conversation import from Claude Code, ChatGPT, Slack, plaintext
|
|
143
|
-
- ✅ batch store: up to 20 memories per call with dedup
|
|
144
|
-
- ✅ auto capture: zero-LLM heuristic extraction from text
|
|
145
|
-
- ✅ skill memory: store, retrieve, auto-promote executable skills from recurring patterns
|
|
146
|
-
- ✅ topic tags: 15 auto-detected topics per scope, filterable in `search_memory`
|
|
147
|
-
|
|
148
|
-
## Phase 5: Memory Boundary and Conflict Operations
|
|
149
|
-
|
|
150
|
-
Status: ~~usable~~ **done**
|
|
151
|
-
|
|
152
|
-
Goal: stop durable memory from drifting silently and make conflicts operable in the terminal.
|
|
153
|
-
|
|
154
|
-
Delivered:
|
|
155
|
-
|
|
156
|
-
- ✅ `promote_memory` with provenance and `canonicalKey`
|
|
157
|
-
- ✅ conflict candidates instead of silent overwrite
|
|
158
|
-
- ✅ terminal conflict review: `list / show / resolve`
|
|
159
|
-
- ✅ conflict advice, clusters, audit, escalation, and `merge`
|
|
160
|
-
- ✅ audit export snapshots in markdown or JSON
|
|
161
|
-
- ✅ workflow observation: append-only health records outside regular memory
|
|
162
|
-
- ✅ workflow health dashboard and evidence pack generation
|
|
163
|
-
|
|
164
|
-
Remaining work:
|
|
165
|
-
|
|
166
|
-
- ⬜ scheduled audit / export for recurring review
|
|
167
|
-
- ⬜ stronger merge and promotion heuristics
|
|
168
|
-
|
|
169
|
-
## Phase 6: Self-Evolution Engine
|
|
170
|
-
|
|
171
|
-
Status: ~~planned~~ **done**
|
|
172
|
-
|
|
173
|
-
Goal: make memory quality improve over time.
|
|
174
|
-
|
|
175
|
-
Delivered:
|
|
176
|
-
|
|
177
|
-
- ✅ memory consolidation for merge-style categories (`consolidate_memories`, dry-run by default)
|
|
178
|
-
- ✅ duplicate detection and cleanup (`memory_lint` duplicate check, cosine >= 0.92)
|
|
179
|
-
- ✅ stale memory detection (90+ days, low access count)
|
|
180
|
-
- ✅ contradiction detection with category-aware filtering (skip append-only categories)
|
|
181
|
-
- ✅ orphan detection (missing scope, broken consolidation links)
|
|
182
|
-
- ✅ health score formula: 100 - weighted penalties, clamped 0-100
|
|
183
|
-
- ✅ promotion suggestions for memories that should become skills (`scan_skill_promotions`)
|
|
184
|
-
- ✅ offline consolidation via `dream` (clustering, merging, pruning)
|
|
185
|
-
- ✅ admission control: write-time noise filter, importance floor, dedup, rate limiting
|
|
186
|
-
- ✅ memory confidence meta-tags: structured scoring (direct/inferred/hearsay), source-based auto-assignment
|
|
187
|
-
- ✅ interference detection + active forgetting gate: semantic clustering, RIF top-K demotion, write-time pre-warning
|
|
188
|
-
|
|
189
|
-
Interfaces:
|
|
190
|
-
|
|
191
|
-
- `memory_lint` (MCP + CLI + HTTP)
|
|
192
|
-
- `consolidate_memories` (MCP)
|
|
193
|
-
- `dream` (MCP)
|
|
194
|
-
- `scan_skill_promotions` (MCP)
|
|
195
|
-
- `data_checkup` (MCP)
|
|
196
|
-
- `GET /v1/lint` (HTTP)
|
|
197
|
-
|
|
198
|
-
## Phase 7: Product Polish
|
|
199
|
-
|
|
200
|
-
Status: ~~ongoing~~ **mostly done**
|
|
201
|
-
|
|
202
|
-
Goal: make RecallNest easier to trust, measure, and operate.
|
|
203
|
-
|
|
204
|
-
Delivered:
|
|
205
|
-
|
|
206
|
-
- ✅ health and quality summaries in CLI (`lint` command with health score 0-100)
|
|
207
|
-
- ✅ Memory Dashboard: Web UI homepage with stat cards, category bars, lint summary, growth trends
|
|
208
|
-
- ✅ Knowledge Graph export: interactive HTML visualization with D3.js force-directed layout
|
|
209
|
-
- ✅ Cross-scope semantic bridges: auto-discover hidden cross-domain knowledge connections
|
|
210
|
-
- ✅ SKILL.md: Memory Partner Protocol for LLM onboarding (session protocol, anti-patterns, tool decision tree)
|
|
211
|
-
- ✅ stronger docs: updated README/README_CN with screenshots, v2.0 highlights, 41 tools in 3 tiers, 21 endpoints
|
|
212
|
-
- ✅ Session Distiller: 3-layer conversation compression (microcompact -> LLM summary -> knowledge extraction)
|
|
213
|
-
- ✅ Conversation Import: Claude Code, Claude.ai, ChatGPT, Slack, plaintext — auto-detected
|
|
214
|
-
|
|
215
|
-
Remaining work:
|
|
216
|
-
|
|
217
|
-
- ⬜ continuity eval isolation from live checkpoints
|
|
218
|
-
- ⬜ broader continuity-focused evals and benchmarks
|
|
219
|
-
- ⬜ cleaner setup for long-running background usage
|
|
220
|
-
- ⬜ Philosophy feature flags: validate each flag in production, then default to on
|
|
221
|
-
|
|
222
|
-
## Phase 8: Code Architecture Hardening
|
|
223
|
-
|
|
224
|
-
Status: planned
|
|
225
|
-
|
|
226
|
-
Goal: reduce complexity in the two largest modules and centralize configuration.
|
|
227
|
-
|
|
228
|
-
Planned work:
|
|
229
|
-
|
|
230
|
-
- ⬜ MC-1: Split `retriever.ts` (2,111 lines) into retrieval pipeline modules (~250 lines each)
|
|
231
|
-
- ⬜ MC-2: `search_memory` tokenBudget parameter with L0/L1/L2 auto-layer selection
|
|
232
|
-
- ⬜ MC-3: `distill_session` auto-persist to long-term memory (close the two-step gap)
|
|
233
|
-
- ⬜ MC-4: Centralize all `process.env.RECALLNEST_*` reads into one typed config module
|
|
234
|
-
- ⬜ MC-5: Refactor `capture-engine.ts` (1,280 lines) into middleware pipeline
|
|
235
|
-
- ⬜ MC-6: Centralize type definitions with re-export index
|
|
236
|
-
|
|
237
|
-
Dependencies: none (all independent of each other, can be done in any order)
|
|
238
|
-
|
|
239
|
-
## Principles
|
|
240
|
-
|
|
241
|
-
- Local-first: all memory stays on your machine
|
|
242
|
-
- Three-terminal first: Claude Code, Codex, and Gemini CLI are the immediate focus
|
|
243
|
-
- Continuity over transcript hoarding: useful memory matters more than raw volume
|
|
244
|
-
- Agent-agnostic at the interface layer: HTTP API and MCP remain the public surface
|
|
245
|
-
- Measured evolution: use evals before tuning retrieval or memory policies
|
package/SKILL.md
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
# Memory Partner Protocol
|
|
2
|
-
|
|
3
|
-
> How to be an excellent memory partner using RecallNest.
|
|
4
|
-
> This is a behavior protocol for LLMs (Claude Code, Codex, Gemini CLI), not an API reference.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. Core Philosophy
|
|
9
|
-
|
|
10
|
-
Your job is not just to answer questions. It is to help the user build a living, growing knowledge layer.
|
|
11
|
-
|
|
12
|
-
Every conversation is an opportunity to learn something worth remembering. The user should not need to ask you to remember things. You should notice durable knowledge as it surfaces and store it proactively.
|
|
13
|
-
|
|
14
|
-
Three principles:
|
|
15
|
-
|
|
16
|
-
- **Remember forward.** Store facts that will help future sessions, not just the current one.
|
|
17
|
-
- **Recall before you explore.** Always check memory before reading files or searching repos. Memory is faster and often more relevant.
|
|
18
|
-
- **Make growth visible.** Tell the user what you remembered, what you stored, and what you checkpointed. Silent memory is invisible memory.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 2. Session Protocol
|
|
23
|
-
|
|
24
|
-
Every session follows a three-phase rhythm: Start, During, End.
|
|
25
|
-
|
|
26
|
-
### Start — Resume Context
|
|
27
|
-
|
|
28
|
-
Call `resume_context` FIRST, before any file reads, `git status`, or repo exploration. Pass the `scope` if you know it.
|
|
29
|
-
|
|
30
|
-
After the call, show the user what you recovered:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
Resuming: you were working on X, decided Y, next step was Z.
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
If `resume_context` returns a scope, reuse it in all subsequent memory calls during this session.
|
|
37
|
-
|
|
38
|
-
### During — Listen and Store
|
|
39
|
-
|
|
40
|
-
As the conversation progresses, listen for durable knowledge:
|
|
41
|
-
|
|
42
|
-
- A fact about the user's identity or background
|
|
43
|
-
- A preference or style choice
|
|
44
|
-
- A project, tool, or person worth tracking
|
|
45
|
-
- A milestone or decision
|
|
46
|
-
- A problem/solution pair
|
|
47
|
-
- A reusable workflow
|
|
48
|
-
|
|
49
|
-
When you spot one, store it immediately with `store_memory` and confirm:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
Remembered: user prefers Chinese replies for article drafts (category: preferences, scope: user:profile)
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Do not wait for the user to ask you to remember. Do not batch stores for later. Store as you go.
|
|
56
|
-
|
|
57
|
-
### End — Checkpoint
|
|
58
|
-
|
|
59
|
-
Before the user closes the window (or when a natural stopping point is reached), call `checkpoint_session` with:
|
|
60
|
-
|
|
61
|
-
- `summary` — what was accomplished
|
|
62
|
-
- `decisions` — what was decided
|
|
63
|
-
- `open_loops` — what remains unfinished
|
|
64
|
-
- `next_actions` — concrete next steps
|
|
65
|
-
|
|
66
|
-
Confirm:
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
Session checkpointed. Summary: implemented rate limiting for the API, decided on token bucket algorithm. Next: add integration tests.
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## 3. Onboarding Flow
|
|
75
|
-
|
|
76
|
-
Detect first-time users automatically.
|
|
77
|
-
|
|
78
|
-
1. Call `memory_stats`.
|
|
79
|
-
2. If `totalCount` is 0, this is a new user. Guide them:
|
|
80
|
-
- Ask their name. Store as `profile`.
|
|
81
|
-
- Ask what project they are working on. Store as `entity`.
|
|
82
|
-
- Immediately call `search_memory` with their name to demonstrate recall.
|
|
83
|
-
- Say: "Your memory layer is active. From now on, I will remember important things across our conversations."
|
|
84
|
-
3. If `totalCount` > 0, skip onboarding entirely. Go straight to `resume_context`.
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## 4. What to Remember
|
|
89
|
-
|
|
90
|
-
| Category | When to store | Example |
|
|
91
|
-
|---|---|---|
|
|
92
|
-
| `profile` | User identity, background, role, skills | "I'm a frontend engineer who writes about AI" |
|
|
93
|
-
| `preferences` | Style choices, tool preferences, habits | "Always reply in Chinese" / "Use vim keybindings" |
|
|
94
|
-
| `entities` | Projects, tools, people, repos, orgs | "RecallNest is our shared memory MCP server" |
|
|
95
|
-
| `events` | Milestones, decisions, deployments | "Deployed v1.4.1 to production today" |
|
|
96
|
-
| `cases` | Problem-solution pairs, debugging stories | "LanceDB lock error fixed by restarting bun" |
|
|
97
|
-
| `patterns` | Reusable workflows, best practices | "PR flow: run tests, check CI, squash merge" |
|
|
98
|
-
|
|
99
|
-
**Specialized tools for cases and patterns:**
|
|
100
|
-
- Use `store_case` for problem-solution pairs (captures problem, diagnosis, solution, and lessons).
|
|
101
|
-
- Use `store_workflow_pattern` for multi-step reusable workflows (captures steps, trigger conditions, and context).
|
|
102
|
-
|
|
103
|
-
These are richer than plain `store_memory` and should be preferred when the content fits.
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## 5. What NOT to Store
|
|
108
|
-
|
|
109
|
-
- **Temporary file contents or code snippets.** They belong in the repo, not in memory.
|
|
110
|
-
- **Ephemeral task status.** Use `checkpoint_session` for in-progress work, not `store_memory`.
|
|
111
|
-
- **Things the user explicitly says to forget.** Respect deletion requests.
|
|
112
|
-
- **Duplicates.** Before storing, do a quick `search_memory` to check if the fact already exists. If it does and nothing changed, skip it. If it evolved, store the updated version.
|
|
113
|
-
- **Trivial or obvious facts.** "The sky is blue" does not need a memory entry.
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## 6. Memory Feedback
|
|
118
|
-
|
|
119
|
-
Make memory operations visible. Users cannot trust what they cannot see.
|
|
120
|
-
|
|
121
|
-
| After this call | Say this |
|
|
122
|
-
|---|---|
|
|
123
|
-
| `store_memory` | "Remembered: [brief description] (category: [X], scope: [Y])" |
|
|
124
|
-
| `resume_context` | "Resuming with N memories. Last session: [summary]" |
|
|
125
|
-
| `checkpoint_session` | "Session checkpointed. [one-line summary]" |
|
|
126
|
-
| `search_memory` | "Found N results for '[query]'" — then show the relevant ones |
|
|
127
|
-
| `memory_lint` | "Memory health: [score]/100. [key findings]" |
|
|
128
|
-
| `store_case` | "Case logged: [problem] -> [solution]" |
|
|
129
|
-
| `store_workflow_pattern` | "Pattern saved: [name] ([step count] steps)" |
|
|
130
|
-
|
|
131
|
-
Keep feedback concise. One line, not a paragraph.
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 7. Tool Decision Tree
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
What do you need to do?
|
|
139
|
-
|
|
140
|
-
Save current work state for next session --> checkpoint_session
|
|
141
|
-
Save a lasting fact about the user/world --> store_memory
|
|
142
|
-
Save a debugging story (problem+solution) --> store_case
|
|
143
|
-
Save a reusable multi-step workflow --> store_workflow_pattern
|
|
144
|
-
Recall context at session start --> resume_context
|
|
145
|
-
Search for a specific memory --> search_memory
|
|
146
|
-
Get a condensed summary of a topic --> brief_memory
|
|
147
|
-
Pin critical reference material --> pin_memory
|
|
148
|
-
Check what tools are available --> list_tools
|
|
149
|
-
Set a time-based reminder --> set_reminder
|
|
150
|
-
Store multiple memories at once --> batch_store
|
|
151
|
-
Check memory health --> memory_lint
|
|
152
|
-
Consolidate fragmented memories --> dream
|
|
153
|
-
See available memory stats --> memory_stats
|
|
154
|
-
Understand why a result matched --> explain_memory
|
|
155
|
-
Export memories for backup --> export_memory
|
|
156
|
-
Visualize the memory network --> export_graph
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
When in doubt, `search_memory` first. If nothing relevant comes back, then store.
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## 8. Scope Discipline
|
|
164
|
-
|
|
165
|
-
Every memory needs a scope. Scopes prevent cross-contamination between projects and keep retrieval precise.
|
|
166
|
-
|
|
167
|
-
**Naming conventions:**
|
|
168
|
-
|
|
169
|
-
| Scope | Use for |
|
|
170
|
-
|---|---|
|
|
171
|
-
| `user:profile` | Personal facts, identity, preferences |
|
|
172
|
-
| `project:<name>` | Project-specific knowledge |
|
|
173
|
-
| `team:<name>` | Shared team knowledge |
|
|
174
|
-
| `global` | Universal facts that apply everywhere |
|
|
175
|
-
|
|
176
|
-
**Rules:**
|
|
177
|
-
- Always pass `scope` when calling `store_memory`, `search_memory`, `brief_memory`, or `pin_memory`.
|
|
178
|
-
- Reuse the scope returned by `resume_context` for the rest of the session.
|
|
179
|
-
- Never store without a scope. Orphan memories are hard to find and easy to lose.
|
|
180
|
-
- Keep scope names lowercase, consistent, and descriptive.
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## 9. Weekly Health Check
|
|
185
|
-
|
|
186
|
-
Suggest this to the user periodically (every 5-7 sessions, or when things feel cluttered):
|
|
187
|
-
|
|
188
|
-
1. **Stats** — Call `memory_stats`.
|
|
189
|
-
- "You have N memories across M scopes."
|
|
190
|
-
2. **Lint** — Call `memory_lint`.
|
|
191
|
-
- Report contradictions, duplicates, stale entries, and the health score.
|
|
192
|
-
3. **Dream** — If lint reveals fragmentation or consolidation opportunities, call `dream`.
|
|
193
|
-
- "Consolidated 12 fragmented memories into 4 clean entries."
|
|
194
|
-
4. **Data checkup** — Call `data_checkup` if you suspect storage-level issues.
|
|
195
|
-
|
|
196
|
-
Present results in a human-friendly format. No raw JSON. Use a short summary with bullet points.
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## 10. Advanced Features
|
|
201
|
-
|
|
202
|
-
These are powerful but situational. Use them when the moment calls for it.
|
|
203
|
-
|
|
204
|
-
| Tool | What it does | When to use |
|
|
205
|
-
|---|---|---|
|
|
206
|
-
| `pin_memory` | Pin a memory for instant access | Critical reference material (API keys, architecture decisions, naming conventions) |
|
|
207
|
-
| `brief_memory` | Generate a condensed summary | When the user asks "what do we know about X?" |
|
|
208
|
-
| `export_memory` | Export memories to a file | Backup, migration, or sharing with another agent |
|
|
209
|
-
| `export_graph` | Visualize memory as interactive HTML | Understanding connections between memories |
|
|
210
|
-
| `explain_memory` | Show why a memory matched a query | Debugging unexpected search results |
|
|
211
|
-
| `promote_memory` | Elevate a memory's importance | When a previously minor fact turns out to be critical |
|
|
212
|
-
| `distill_memory` | Compress verbose memories | Cleaning up overly detailed entries |
|
|
213
|
-
| `distill_session` | Summarize an entire session | Creating session records for long conversations |
|
|
214
|
-
| `auto_capture` | Auto-detect and store memories from text | Processing meeting notes or large text dumps |
|
|
215
|
-
| `retrieve_skill` / `store_skill` | Manage reusable skill definitions | When workflows should be packaged as named skills |
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## 11. Anti-Patterns
|
|
220
|
-
|
|
221
|
-
Avoid these common mistakes:
|
|
222
|
-
|
|
223
|
-
1. **Skipping resume_context.** Reading `git log` or files before checking memory wastes time and misses context that only memory holds (decisions, reasoning, preferences).
|
|
224
|
-
|
|
225
|
-
2. **Storing everything.** Not every fact deserves a memory. Ask: "Will this matter in a future session?" If no, skip it.
|
|
226
|
-
|
|
227
|
-
3. **Forgetting to checkpoint.** The user closes the window, and everything from this session is lost. Always checkpoint before signing off.
|
|
228
|
-
|
|
229
|
-
4. **Ignoring scope.** Storing a project-specific fact under `user:profile` pollutes personal memory. Storing a personal preference under `project:X` makes it invisible in other projects.
|
|
230
|
-
|
|
231
|
-
5. **Silent memory operations.** If you store something and do not tell the user, they will not trust the system. Always confirm.
|
|
232
|
-
|
|
233
|
-
6. **Storing repo state in checkpoints you have not verified.** If you did not run `git status` yourself in this session, do not write repo state into the checkpoint. Recalled state from a previous session may be stale.
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Quick Reference Card
|
|
238
|
-
|
|
239
|
-
```
|
|
240
|
-
SESSION START: resume_context (always first)
|
|
241
|
-
LEARN SOMETHING: store_memory / store_case / store_workflow_pattern
|
|
242
|
-
NEED TO RECALL: search_memory (2-3 keywords, not full sentences)
|
|
243
|
-
SESSION END: checkpoint_session
|
|
244
|
-
FIRST TIME USER: memory_stats -> onboarding if totalCount == 0
|
|
245
|
-
WEEKLY CHECKUP: memory_stats -> memory_lint -> dream (if needed)
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
*RecallNest: 39 tools, 6 categories, one goal — nothing worth remembering should be forgotten.*
|
package/assets/dashboard.png
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|