@a9i5k4/dsh-auto-memory 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +30 -13
  2. package/README.zh-CN.md +30 -13
  3. package/docs/FRONTEND-CO-CREATION.md +191 -0
  4. package/docs/GM53-HOMEPAGE-PROMPT.md +323 -0
  5. package/docs/HANDBOOK.md +88 -52
  6. package/docs/HOMEPAGE-CONTENT-FOR-GM53.md +299 -0
  7. package/docs/PROMO-PROMPT-3.0.md +100 -0
  8. package/docs/USER-GUIDE.en.md +11 -11
  9. package/docs/USER-GUIDE.zh-CN.md +11 -11
  10. package/docs/WHITEPAPER.md +207 -0
  11. package/docs/screenshots/promo/promo-0-banner-v3.png +0 -0
  12. package/docs/screenshots/promo/promo-0-banner-v4.png +0 -0
  13. package/docs/screenshots/promo/promo-1b-auto-recall.png +0 -0
  14. package/lib/activation-host.js +69 -10
  15. package/lib/board-mode.js +1 -1
  16. package/lib/client.js +1697 -285
  17. package/lib/config-io.js +156 -0
  18. package/lib/context-bridge.js +3 -0
  19. package/lib/context-host.js +23 -10
  20. package/lib/degrade.js +385 -0
  21. package/lib/dsh-home.js +143 -0
  22. package/lib/episodic-store.js +142 -18
  23. package/lib/evidence-store.js +8 -1
  24. package/lib/fact-store.js +484 -43
  25. package/lib/hub-io.js +217 -0
  26. package/lib/index-sync.js +13 -1
  27. package/lib/index.js +1730 -202
  28. package/lib/intent-clean-safe.js +258 -40
  29. package/lib/l0-extract.js +231 -16
  30. package/lib/m4-corpus.js +8 -2
  31. package/lib/m7-index-sync-host.js +8 -1
  32. package/lib/memory-envelope.js +6 -1
  33. package/lib/memory-hub.js +164 -17
  34. package/lib/memory-index.js +4 -2
  35. package/lib/note-status-apply.js +118 -0
  36. package/lib/note-status.js +204 -0
  37. package/lib/procedure-store.js +333 -31
  38. package/lib/procedure-switch.js +38 -0
  39. package/lib/python-sidecar-client.js +314 -11
  40. package/lib/recall-fusion.js +83 -12
  41. package/lib/rules-edit.js +159 -0
  42. package/lib/semantic-decide.js +41 -8
  43. package/lib/semantic-js.js +51 -6
  44. package/lib/shadow-host.js +3 -5
  45. package/lib/skill-export-host.js +153 -0
  46. package/lib/skill-export.js +239 -0
  47. package/lib/storage-manage.js +6 -0
  48. package/lib/temporal-parse.js +191 -159
  49. package/lib/tier0-catalog.js +45 -3
  50. package/lib/wb-contract.js +198 -2
  51. package/lib/wb-sidecar.js +54 -3
  52. package/package.json +6 -2
  53. package/docs/internal/ACCEPT-35-LIVE.md +0 -143
  54. package/docs/internal/ACCEPTANCE-20260914.md +0 -90
  55. package/docs/internal/ARCH-REVIEW-BRIEF.md +0 -411
  56. package/docs/internal/ARCH-REVIEW-REQUEST.md +0 -201
  57. package/docs/internal/ARCH-REVIEW-ROUND2.md +0 -169
  58. package/docs/internal/ARCH-REVIEW-ROUND3.md +0 -206
  59. package/docs/internal/ART-DIRECTION-WIREFRAME.md +0 -181
  60. package/docs/internal/AUDIT-WB-GRAPH-FULL-20260916.md +0 -314
  61. package/docs/internal/CONCURRENCY-INVESTIGATION-20260917.md +0 -192
  62. package/docs/internal/CROSS-SESSION-SEARCH-PATH-DECISION.md +0 -72
  63. package/docs/internal/CROSS-SESSION-SEARCH-RESEARCH.md +0 -131
  64. package/docs/internal/CUA-VISION-FIX-NOTES.md +0 -78
  65. package/docs/internal/DECISIONS-20260914-SESSION.md +0 -269
  66. package/docs/internal/DESIGN-OVERHAUL-PRE-RESEARCH.md +0 -292
  67. package/docs/internal/DESIGN-P1-STATE-COMMIT-20260915.md +0 -219
  68. package/docs/internal/DIRECTION-CHECK-WB-GRAPH-20260916.md +0 -132
  69. package/docs/internal/FEEDBACK-TO-DSHAPI-RELAY.md +0 -13
  70. package/docs/internal/GH-DISCUSSION-5732-COMMENT.md +0 -74
  71. package/docs/internal/GPT-ACCEPTANCE-PROMPT-20260916.md +0 -352
  72. package/docs/internal/GPT-REVIEW-PROMPT.md +0 -216
  73. package/docs/internal/GROUP-DIGEST-SETUP.md +0 -62
  74. package/docs/internal/GROUP-LISTENER-SETUP.md +0 -49
  75. package/docs/internal/GROUP-WEBHOOK-SETUP.md +0 -93
  76. package/docs/internal/HANDOFF-TO-ZCODE.md +0 -168
  77. package/docs/internal/KICKOFF-P0.md +0 -254
  78. package/docs/internal/MASTER-PLAN-3.0.md +0 -411
  79. package/docs/internal/MEMORY-MUTATION-AND-INDEX-DESIGN.md +0 -85
  80. package/docs/internal/MERGE-CONFLICT-SCAN-20260914.md +0 -222
  81. package/docs/internal/NEXT-VERSION-TODO.md +0 -95
  82. package/docs/internal/OFFICIAL-DISCUSSION-DRAFT.md +0 -80
  83. package/docs/internal/PENDING-FIXES-20260916.md +0 -289
  84. package/docs/internal/RAG-KARPATHY-PROGRAM.md +0 -229
  85. package/docs/internal/RELEASE-PROCESS.md +0 -99
  86. package/docs/internal/REPORT-P0-NIGHTLY.md +0 -212
  87. package/docs/internal/REPORT-P5-ACCEPTANCE.md +0 -31
  88. package/docs/internal/REPORT-WB-GRAPH-NIGHTLY.md +0 -153
  89. package/docs/internal/REVIEW-WB-GRAPH-SELF.md +0 -81
  90. package/docs/internal/ROADMAP-20260917-WEEK.md +0 -305
  91. package/docs/internal/ROADMAP.md +0 -106
  92. package/docs/internal/RUN-P0-NIGHTLY.md +0 -227
  93. package/docs/internal/S10-CONSTRUCTION-HANDOFF-20260917.md +0 -175
  94. package/docs/internal/S10-GAPS-PLAIN-20260917.md +0 -125
  95. package/docs/internal/SEMANTIC-ARCHITECTURE-SPEC.md +0 -360
  96. package/docs/internal/SESSION-FILE-REPAIR-PROTOCOL.md +0 -90
  97. package/docs/internal/SUBAGENT-REPORT-ROUTING-PRE-RESEARCH.md +0 -261
  98. package/docs/internal/THREE-LAYER-CONTRACT.md +0 -210
  99. package/docs/internal/TODO-BACKLOG.md +0 -263
  100. package/docs/internal/TODO-GRAPH.html +0 -715
  101. package/docs/internal/TODO-GRAPH.html.bak-20260914-v2 +0 -493
  102. package/docs/internal/TODO-GRAPH.html.bak-20260915-alsfix +0 -710
  103. package/docs/internal/TODO-GRAPH.html.bak-20260915-p1 +0 -710
  104. package/docs/internal/TODO-GRAPH.html.bak-20260915-p6a-rev +0 -703
  105. package/docs/internal/TODO-GRAPH.html.bak-20260915-wshint +0 -710
  106. package/docs/internal/TODO-GRAPH.html.bak-20260916-batch +0 -715
  107. package/docs/internal/WB-FORMAT-CONVENTION.md +0 -112
  108. package/docs/internal/WB-GRAPH-DECISIONS-20260914.md +0 -71
  109. package/docs/internal/WB-GRAPH-INTEGRATION-PLAN.md +0 -386
  110. package/docs/internal/WB-GRAPH-RESEARCH-BRIEF.md +0 -118
  111. package/docs/internal/WB-GRAPH-RESEARCH-EXTERNAL.md +0 -228
  112. package/docs/internal/WB-GRAPH-RESEARCH-LOCAL.md +0 -190
  113. package/docs/internal/reviews/CLAIM-VERIFICATION-20260914.md +0 -56
  114. package/docs/internal/reviews/PLAN-gpt6astra-round2-20260914.md +0 -787
  115. package/docs/internal/reviews/REVIEW-gpt6astra-20260914.md +0 -112
  116. package/docs/internal/reviews/ROUND3-REVIEW-INTEGRATION-20260914.md +0 -230
package/README.md CHANGED
@@ -10,18 +10,19 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="docs/screenshots/promo/promo-0-banner-v2.png"><img width="820" alt="dsh-auto-memory hero: she remembers, unbidden" src="docs/screenshots/promo/promo-0-banner-v2.png"></a>
13
+ <a href="docs/screenshots/promo/promo-0-banner-v4.png"><img width="820" alt="dsh-auto-memory hero: she remembers, unbidden" src="docs/screenshots/promo/promo-0-banner-v4.png"></a>
14
14
  </p>
15
15
 
16
16
  <p align="center">
17
- <a href="docs/screenshots/promo/promo-0-banner-v2.png"><img width="130" alt="hero" src="docs/screenshots/promo/promo-0-banner-v2.png"></a>
17
+ <a href="docs/screenshots/promo/promo-0-banner-v4.png"><img width="130" alt="hero" src="docs/screenshots/promo/promo-0-banner-v4.png"></a>
18
+ <a href="docs/screenshots/promo/promo-1b-auto-recall.png"><img width="130" alt="auto recall" src="docs/screenshots/promo/promo-1b-auto-recall.png"></a>
18
19
  <a href="docs/screenshots/promo/promo-2-tour.png"><img width="130" alt="welcome tour" src="docs/screenshots/promo/promo-2-tour.png"></a>
19
20
  <a href="docs/screenshots/promo/promo-3-recall.png"><img width="130" alt="recall & crystallization" src="docs/screenshots/promo/promo-3-recall.png"></a>
20
21
  <a href="docs/screenshots/promo/promo-4-unattended.png"><img width="130" alt="unattended mode" src="docs/screenshots/promo/promo-4-unattended.png"></a>
21
22
  <a href="docs/screenshots/promo/promo-5-external.png"><img width="130" alt="external memory inheritance" src="docs/screenshots/promo/promo-5-external.png"></a>
22
23
  <a href="docs/screenshots/promo/promo-6-greeting.png"><img width="130" alt="scheduled greetings" src="docs/screenshots/promo/promo-6-greeting.png"></a>
23
24
  </p>
24
- <p align="center"><sub>Promo gallery · six frames · click any thumbnail to view full size</sub></p>
25
+ <p align="center"><sub>Promo gallery · seven frames · click any thumbnail to view full size</sub></p>
25
26
 
26
27
  <details>
27
28
  <summary><b>Promo gallery, frame by frame</b> (expand and flip through)</summary>
@@ -30,23 +31,27 @@
30
31
 
31
32
  <p align="center"><img width="720" alt="hero" src="docs/screenshots/promo/promo-1-hero.png"></p>
32
33
 
33
- #### Frame 2 · Welcome Tour — Every feature, explained and toggled on the spot
34
+ #### Frame 2 · Auto Recall — A semantic model matches it and injects it before you ask
35
+
36
+ <p align="center"><img width="720" alt="auto recall" src="docs/screenshots/promo/promo-1b-auto-recall.png"></p>
37
+
38
+ #### Frame 3 · Welcome Tour — Every feature, explained and toggled on the spot
34
39
 
35
40
  <p align="center"><img width="720" alt="welcome tour" src="docs/screenshots/promo/promo-2-tour.png"></p>
36
41
 
37
- #### Frame 3 · Recall & Crystallization — Conversation condenses into skills, traceably
42
+ #### Frame 4 · Recall & Crystallization — Conversation condenses into skills, traceably
38
43
 
39
44
  <p align="center"><img width="720" alt="recall" src="docs/screenshots/promo/promo-3-recall.png"></p>
40
45
 
41
- #### Frame 4 · Unattended Mode — Runs all night, zero small talk, zero interruptions
46
+ #### Frame 5 · Unattended Mode — Runs all night, zero small talk, zero interruptions
42
47
 
43
48
  <p align="center"><img width="720" alt="unattended" src="docs/screenshots/promo/promo-4-unattended.png"></p>
44
49
 
45
- #### Frame 5 · External Memory Inheritance — Your other AIs feed her memory too
50
+ #### Frame 6 · External Memory Inheritance — Your other AIs feed her memory too
46
51
 
47
52
  <p align="center"><img width="720" alt="external" src="docs/screenshots/promo/promo-5-external.png"></p>
48
53
 
49
- #### Frame 6 · Scheduled Greetings — Every day remembered
54
+ #### Frame 7 · Scheduled Greetings — Every day remembered
50
55
 
51
56
  <p align="center"><img width="720" alt="greeting" src="docs/screenshots/promo/promo-6-greeting.png"></p>
52
57
 
@@ -65,7 +70,7 @@
65
70
  </p>
66
71
 
67
72
  <p align="center">
68
- <code>pnpm add @a9i5k4/dsh-auto-memory</code>
73
+ <code>pnpm add @a9i5k4/dsh-auto-memory@latest</code>
69
74
  </p>
70
75
 
71
76
  <p align="center">
@@ -384,7 +389,7 @@ One-time catch-up for upgraders: from v0.1.30 every user auto-plays the full tou
384
389
 
385
390
  Settings and the tour are twin entrances, mapped one-to-one: proactive recall, periodic snapshots, away greetings, night unattended, daily reflection, scheduled digests, external memory, skill crystallization, auto-open… every switch carries a description, the UI switches between Chinese and English, and the panel font size is adjustable.
386
391
 
387
- Ten tabs, each minding its own post: **Workspace** (mind map), **Calendar**, **Connect** (external memory), **Memory Hub** (skill approvals), **Logs**, **Notes**, **Reflections**, **Recall review** (the audit), **Search**, **Storage**. The panel is considerate too: in DSH Desktop enhanced mode (transparent/Mica materials) it keeps its readability; the default position never covers the sidebar "Memory" entry; click outside or press Esc and it's gone — present, but never in the way.
392
+ Twelve tabs, each minding its own post: **Overview** (away greeting + period summaries), **Logs** (incl. the user-level hard-rules editor), **Recall review** (the audit — grade every activation), **Memory Hub** (three stores + skill approvals), **Storage**, **Notes**, **Whiteboard**, **Reflections**, **Connect** (external memory), **Calendar**, **Search**, **Workspace** (mind map). The panel is considerate too: in DSH Desktop enhanced mode (transparent/Mica materials) it keeps its readability; the default position never covers the sidebar "Memory" entry; click outside or press Esc and it's gone — present, but never in the way.
388
393
 
389
394
  **Long batch jobs? Go unattended.** Settings → Automation offers **Unattended mode** and **auto-unattended overnight** (22:00–08:00, tunable): while engaged, no greetings, no niceties or behavioural directives, calendar silent — the model focuses on the work, and tokens go to the work too.
390
395
 
@@ -400,7 +405,7 @@ Run in the **profile directory** (`~/.dsh/profiles/web`):
400
405
 
401
406
  ```bash
402
407
  cd ~/.dsh/profiles/web
403
- pnpm add @a9i5k4/dsh-auto-memory
408
+ pnpm add @a9i5k4/dsh-auto-memory@latest
404
409
  ```
405
410
 
406
411
  Then edit `package.json` in that directory and append to the `dsh.profile.bundles` array:
@@ -411,7 +416,7 @@ Then edit `package.json` in that directory and append to the `dsh.profile.bundle
411
416
 
412
417
  Restart **dsh web** (the 「Memory」entry appears in the sidebar).
413
418
 
414
- > No pnpm? `npm install @a9i5k4/dsh-auto-memory` works the same.
419
+ > No pnpm? `npm install @a9i5k4/dsh-auto-memory@latest` works the same.
415
420
  > pnpm v11 blocks packages published <1 day ago: set `minimumReleaseAge: 0` in pnpm-workspace.yaml or pin an explicit version for same-day updates.
416
421
 
417
422
  ### Semantic engine (optional but recommended)
@@ -446,7 +451,7 @@ then restart dsh web to activate the plugin.
446
451
  ### Updating
447
452
 
448
453
  ```bash
449
- cd ~/.dsh/profiles/web && pnpm up @a9i5k4/dsh-auto-memory
454
+ cd ~/.dsh/profiles/web && pnpm up @a9i5k4/dsh-auto-memory@latest
450
455
  ```
451
456
 
452
457
  The Settings page has a "Check for updates" button comparing your version with the npm registry; registry installs get a one-click update.
@@ -600,6 +605,18 @@ The design is not guesswork — every algorithmic conclusion comes from reproduc
600
605
 
601
606
  Papers were authored by the autonomous engineering agent (ZCode / GLM); all conclusions were frozen into the production implementation under human review.
602
607
 
608
+ ### Project documents
609
+
610
+ | Document | Answers |
611
+ |---|---|
612
+ | [**Whitepaper**](docs/WHITEPAPER.md) | What are the **invariants you must not break**, and what are the known limits? Every default value in it is code-verified. |
613
+ | [**Frontend co-creation plan**](docs/FRONTEND-CO-CREATION.md) | What can outside contributors change, what is off-limits, and how to do it — complete component/route/slot map included. |
614
+ | [Feature Inventory](docs/internal/FEATURE-INVENTORY.md) | What features exist and where each one lives (39 user capabilities / 17 tools / 49 routes / 98 config keys) |
615
+
616
+ > **⚠️ Upgrading from before 3.0?** A batch of default values was **flipped** in 3.0.0 —
617
+ > most notably whiteboard + ledger went from `off` to **`on`**. Do not trust pre-3.0
618
+ > documentation on defaults; see the [whitepaper §4.1](docs/WHITEPAPER.md) for the verified table.
619
+
603
620
  ## Known limitations
604
621
 
605
622
  - Memory files are plain-text Markdown; no secrets stored unless explicitly requested.
package/README.zh-CN.md CHANGED
@@ -10,18 +10,19 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="docs/screenshots/promo/promo-0-banner-v2.png"><img width="820" alt="dsh-auto-memory 主视觉:不用吩咐,她自己记得" src="docs/screenshots/promo/promo-0-banner-v2.png"></a>
13
+ <a href="docs/screenshots/promo/promo-0-banner-v4.png"><img width="820" alt="dsh-auto-memory 主视觉:无问自忆,且件件可查" src="docs/screenshots/promo/promo-0-banner-v4.png"></a>
14
14
  </p>
15
15
 
16
16
  <p align="center">
17
- <a href="docs/screenshots/promo/promo-0-banner-v2.png"><img width="130" alt="主视觉" src="docs/screenshots/promo/promo-0-banner-v2.png"></a>
17
+ <a href="docs/screenshots/promo/promo-0-banner-v4.png"><img width="130" alt="主视觉" src="docs/screenshots/promo/promo-0-banner-v4.png"></a>
18
+ <a href="docs/screenshots/promo/promo-1b-auto-recall.png"><img width="130" alt="自动唤起" src="docs/screenshots/promo/promo-1b-auto-recall.png"></a>
18
19
  <a href="docs/screenshots/promo/promo-2-tour.png"><img width="130" alt="欢迎向导" src="docs/screenshots/promo/promo-2-tour.png"></a>
19
20
  <a href="docs/screenshots/promo/promo-3-recall.png"><img width="130" alt="唤起与固化" src="docs/screenshots/promo/promo-3-recall.png"></a>
20
21
  <a href="docs/screenshots/promo/promo-4-unattended.png"><img width="130" alt="无人值守" src="docs/screenshots/promo/promo-4-unattended.png"></a>
21
22
  <a href="docs/screenshots/promo/promo-5-external.png"><img width="130" alt="外部记忆继承" src="docs/screenshots/promo/promo-5-external.png"></a>
22
23
  <a href="docs/screenshots/promo/promo-6-greeting.png"><img width="130" alt="定时问候" src="docs/screenshots/promo/promo-6-greeting.png"></a>
23
24
  </p>
24
- <p align="center"><sub>宣传图六幕 · 点击任意一张查看大图</sub></p>
25
+ <p align="center"><sub>宣传图七幕 · 点击任意一张查看大图</sub></p>
25
26
 
26
27
  <details>
27
28
  <summary><b>宣传图分幕浏览</b>(点击展开,逐幕翻看)</summary>
@@ -30,23 +31,27 @@
30
31
 
31
32
  <p align="center"><img width="720" alt="主视觉" src="docs/screenshots/promo/promo-1-hero.png"></p>
32
33
 
33
- #### 第二幕 · 欢迎向导 —— 每个功能,当场看懂、当场开关
34
+ #### 第二幕 · 自动唤起 —— 语义模型自动匹配,不等你问就已注入
35
+
36
+ <p align="center"><img width="720" alt="自动唤起" src="docs/screenshots/promo/promo-1b-auto-recall.png"></p>
37
+
38
+ #### 第三幕 · 欢迎向导 —— 每个功能,当场看懂、当场开关
34
39
 
35
40
  <p align="center"><img width="720" alt="欢迎向导" src="docs/screenshots/promo/promo-2-tour.png"></p>
36
41
 
37
- #### 第三幕 · 唤起与固化 —— 对话凝成技能,每一步有迹可循
42
+ #### 第四幕 · 唤起与固化 —— 对话凝成技能,每一步有迹可循
38
43
 
39
44
  <p align="center"><img width="720" alt="唤起与固化" src="docs/screenshots/promo/promo-3-recall.png"></p>
40
45
 
41
- #### 第四幕 · 无人值守模式 —— 整夜安静跑,零寒暄,零打扰
46
+ #### 第五幕 · 无人值守模式 —— 整夜安静跑,零寒暄,零打扰
42
47
 
43
48
  <p align="center"><img width="720" alt="无人值守" src="docs/screenshots/promo/promo-4-unattended.png"></p>
44
49
 
45
- #### 第五幕 · 外部记忆继承 —— 你的其他 AI,也在喂她记忆
50
+ #### 第六幕 · 外部记忆继承 —— 你的其他 AI,也在喂她记忆
46
51
 
47
52
  <p align="center"><img width="720" alt="外部记忆继承" src="docs/screenshots/promo/promo-5-external.png"></p>
48
53
 
49
- #### 第六幕 · 定时暖心问候 —— 让每一天都被记得
54
+ #### 第七幕 · 定时暖心问候 —— 让每一天都被记得
50
55
 
51
56
  <p align="center"><img width="720" alt="定时问候" src="docs/screenshots/promo/promo-6-greeting.png"></p>
52
57
 
@@ -65,7 +70,7 @@
65
70
  </p>
66
71
 
67
72
  <p align="center">
68
- <code>pnpm add @a9i5k4/dsh-auto-memory</code>
73
+ <code>pnpm add @a9i5k4/dsh-auto-memory@latest</code>
69
74
  </p>
70
75
 
71
76
  <p align="center">
@@ -384,7 +389,7 @@ e5-small 与 BGE-M3 的差距(0.85 vs 0.925)集中在 hard-negative 双子
384
389
 
385
390
  设置页与向导双入口、一一对应:自动联想、周期快照、暂离问候、夜间托管、每日反思、定时总结、外部记忆、技能固化、自动弹出……每个开关一行中文说明,中英文界面随心切换,面板字号可调。
386
391
 
387
- 十个页签,各司其职:**工作区**(关系图)、**日历**、**接续**(外部记忆)、**记忆中枢**(技能审批)、**日志**、**笔记**、**反思**、**唤起回顾**(查账)、**检索**、**存储**。面板也体贴:DSH Desktop 增强模式(透明/Mica 材质)下自动保住可读性;默认位置不挡侧边栏「记忆」入口;点外部或按 Esc 就走——在场,但不碍事。
392
+ 十二个页签,各司其职:**概览**(暂离问候 + 时段总结)、**日志**(含用户级硬约束编辑器)、**唤起回顾**(查账,每次激活可打分)、**记忆中枢**(三层记忆店 + 技能审批)、**存储管理**、**笔记**、**白板**、**反思**、**接续**(外部记忆)、**日历**、**检索**、**工作区**(关系图)。面板也体贴:DSH Desktop 增强模式(透明/Mica 材质)下自动保住可读性;默认位置不挡侧边栏「记忆」入口;点外部或按 Esc 就走——在场,但不碍事。
388
393
 
389
394
  **长跑批处理?开无人值守。** 设置 → 自动化提供「无人值守模式」与「夜间自动托管」(22:00–08:00 可调):托管期间不注入欢迎语、不寒暄、不下行为指令,日历提醒同步静默——模型专注干活,token 花在正事上。
390
395
 
@@ -400,7 +405,7 @@ e5-small 与 BGE-M3 的差距(0.85 vs 0.925)集中在 hard-negative 双子
400
405
 
401
406
  ```bash
402
407
  cd ~/.dsh/profiles/web
403
- pnpm add @a9i5k4/dsh-auto-memory
408
+ pnpm add @a9i5k4/dsh-auto-memory@latest
404
409
  ```
405
410
 
406
411
  然后编辑同目录 `package.json`,在 `dsh.profile.bundles` 数组追加:
@@ -411,7 +416,7 @@ pnpm add @a9i5k4/dsh-auto-memory
411
416
 
412
417
  重启 **dsh web** 生效(侧边栏出现「记忆」入口)。
413
418
 
414
- > 没有 pnpm?`npm install @a9i5k4/dsh-auto-memory` 同样可用。
419
+ > 没有 pnpm?`npm install @a9i5k4/dsh-auto-memory@latest` 同样可用。
415
420
  > pnpm v11 限制安装发布不足 1 天的版本:当天发布想立即更新,在 profile 目录 `pnpm-workspace.yaml` 加 `minimumReleaseAge: 0`,或装显式版本。
416
421
 
417
422
  ### 语义引擎(可选但推荐)
@@ -448,7 +453,7 @@ pnpm add @huggingface/transformers
448
453
  ### 更新
449
454
 
450
455
  ```bash
451
- cd ~/.dsh/profiles/web && pnpm up @a9i5k4/dsh-auto-memory
456
+ cd ~/.dsh/profiles/web && pnpm up @a9i5k4/dsh-auto-memory@latest
452
457
  ```
453
458
 
454
459
  设置页「检查更新」可比对 npm registry 最新版,registry 安装支持一键更新。
@@ -602,6 +607,18 @@ DeepSeek Harness (Node, 127.0.0.1:3080)
602
607
 
603
608
  论文由自主工程 Agent(ZCode / GLM)撰写,全部结论在人类审核下冻结进生产实现。
604
609
 
610
+ ### 项目文档
611
+
612
+ | 文档 | 回答什么 |
613
+ |---|---|
614
+ | [**白皮书**](docs/WHITEPAPER.md) | 「有哪些**不能违反**的约束、哪些已知边界」——文中每个默认值都经代码自核 |
615
+ | [**前端共创计划**](docs/FRONTEND-CO-CREATION.md) | 外部贡献者能改什么、什么是禁区、怎么改——含完整组件/路由/插槽地图 |
616
+ | [功能全量清单](docs/internal/FEATURE-INVENTORY.md) | 「有哪些功能、各住在哪」(39 条用户能力 / 17 工具 / 49 路由 / 98 配置键) |
617
+
618
+ > **⚠️ 从 3.0 之前升级上来的用户请注意**:3.0.0 有一批默认值**被翻转**——
619
+ > 其中最重要的是白板 + 账本从「默认关」改为 **「默认开」**。
620
+ > 3.0 之前的文档在默认值上都不可信,请以[白皮书 §4.1](docs/WHITEPAPER.md) 的核验表为准。
621
+
605
622
  ## 已知限制
606
623
 
607
624
  - 记忆文件为纯文本 Markdown;除非明确要求,不存储密钥
@@ -0,0 +1,191 @@
1
+ # 前端共创计划 · dsh-auto-memory
2
+
3
+ > **一句话**:这个插件的前端(记忆面板 12 页签 + 设置页 8 分组)目前是「能用」的水平,
4
+ > 我们知道它离「好用」还有距离。**视觉与交互的改进,交给社区。**
5
+ > 你有想法,提 PR;我们提供完整的落点地图、约束清单和一个不碰后端的沙盒。
6
+
7
+ ---
8
+
9
+ ## 一、为什么把前端交给社区
10
+
11
+ 三条实话:
12
+
13
+ 1. **功能已经稳定,前端是短板。** 后端 17 个模型工具、49 条路由、98 个设置键都在跑,
14
+ 但记忆面板的信息密度高、布局拥挤,用户第一眼常常不知道该看哪里。
15
+ 2. **前端的取舍没有唯一答案。** 「唤起回顾该怎么展示」「12 个页签该不该合并」
16
+ 这类问题取决于你自己的工作方式——而你们的工作方式比我们更丰富。
17
+ 3. **改前端的边际成本低于改后端。** 前端零构建、单文件、纯 ESM,
18
+ 你不需要装任何东西就能跑起来改。
19
+
20
+ 我们同时公开了**落点地图**(每个能力现在住在哪一行)和**视觉远期规划**(哪些不做、为什么),
21
+ 避免你花了力气做出来的东西因为「不在规划里」被拒。
22
+
23
+ ---
24
+
25
+ ## 二、你可以改什么(三档)
26
+
27
+ ### 🟢 A 档 · 随时欢迎,几乎不会被拒
28
+
29
+ | 方向 | 具体例子 |
30
+ |---|---|
31
+ | **信息层级** | 12 页签分组/折叠/重排;概览页只留最关键的三行 |
32
+ | **可读性** | 长列表虚拟滚动;日志页签的行距与等宽字体;中文断行 |
33
+ | **交互细节** | 键盘导航;Esc/焦点管理;加载态与空态;错误提示人话化 |
34
+ | **一致性** | 组件间距/圆角/字号收敛到设计令牌(见 §5) |
35
+ | **无障碍** | 对比度、focus-visible、aria-label、屏幕阅读器路径 |
36
+ | **文案** | 设置项说明从「参数名」改成人话 |
37
+
38
+ ### 🟡 B 档 · 欢迎,但请先开 issue 对齐
39
+
40
+ | 方向 | 为什么需要先对齐 |
41
+ |---|---|
42
+ | **页签合并/拆分** | 会改变所有人的肌肉记忆,属于破坏性变更 |
43
+ | **新增面板内视图** | 需要确认数据源已有路由支持(见 §4 路由表) |
44
+ | **动效体系** | 需要与「背景顺滑 / 角色克制」的分层帧率原则一致 |
45
+ | **亮色主题补全** | 令牌已备(`#f9f8f8`),但需要整套校验 |
46
+
47
+ ### 🔴 C 档 · 请不要做
48
+
49
+ | 方向 | 原因 |
50
+ |---|---|
51
+ | **改动注入语义** | 注入时机/预算/分层措辞是引擎契约,前端改不了也不该改 |
52
+ | **绕过 `saveConfigPatch` 直写配置** | 它是唯一写入出口(含校验与原子落盘),绕过会破坏配置完整性 |
53
+ | **新增运行时依赖** | 插件受单文件/无构建约束,不允许引入构建链或 npm 运行时依赖 |
54
+ | **改 `lib/*-pre.js` 的写入路径** | 这些文件的改动属于后端,需走另一套评审 |
55
+ | **提交后端 bug 修到前端 PR 里** | 请分开提,便于独立 review 与回滚 |
56
+
57
+ ---
58
+
59
+ ## 三、落点地图(你改的东西住在哪)
60
+
61
+ ### 3.1 六处插槽(插件 UI 的物理入口,全在 `lib/client.js`)
62
+
63
+ | # | 插槽 | 承载 | 定义行 |
64
+ |---|---|---|---|
65
+ | 1 | `sidebar.footer.action` | 侧栏入口按钮 | `client.js:5664` |
66
+ | 2 | `shell.overlay` | 浮层面板(12 页签) | `client.js:5667` |
67
+ | 3 | `shell.overlay` | 7 种弹窗 | `client.js:5670` |
68
+ | 4 | `shell.overlay` | 自动接续确认卡 | `client.js:5673` |
69
+ | 5 | `settings.section` | 设置页分区「自动记忆」 | `client.js:5676` |
70
+ | 6 | `conversation.view` | 会话页顶栏白板看板 | `client.js:5683` |
71
+
72
+ ### 3.2 12 页签 → 组件 → 数据源
73
+
74
+ | 页签 | 组件(定义行) | 读 | 写 |
75
+ |---|---|---|---|
76
+ | 概览 | OverviewTab(2315)+ GreetingCard(2115) | `/state` `/workspaces` `/greet` | `/reflect-auto` |
77
+ | 日志 | LogsTab(2537)**+ 硬约束编辑器**(2590) | `/list` `/file` | `/rules/apply` |
78
+ | 唤起回顾 | RefineTab(2413) | `/shadow-recent` | `/review-feedback` |
79
+ | 记忆中枢 | MemoryHubTab(2724) | `/memory-hub` | `/memory-hub` |
80
+ | 存储管理 | StorageTab(2850) | `/storage-manage` | `/storage-manage` `/scan-dirty` |
81
+ | 笔记 | NotesTab(2936) | `/state` | `/note` |
82
+ | 白板 | PlanTab(3111) | `/handoff-state` | `/handoff-continue` |
83
+ | 反思 | ReflectionsTab(3364) | `/file` | `/reflect` |
84
+ | 接续 | ConnectTab(3764) | `/external` `/external-view` | `/external-import` `/external-remove` |
85
+ | 日历 | CalendarTab(3594) | `/calendar` | `/calendar` |
86
+ | 检索 | SearchTab(3420) | — | `/recall` `/smart-recall` |
87
+ | 工作区 | WorkspaceTab(3543) | `/workspaces` | — |
88
+
89
+ 面板外壳另有:`/config` `/notices` `/update-check` `/debug`;看板另有 `/kanban-board`。
90
+
91
+ ### 3.3 设置页 8 分组(60 个可写键,共 98 个配置键)
92
+
93
+ | 分组 | 键数 | 内容 |
94
+ |---|---|---|
95
+ | 自动记忆引擎 | 9 | 联想开关/锚点/冷却/候选策略/思维链观察 |
96
+ | 记忆中枢 | 8 | 情节与技能的晋升门限、高风险审批 |
97
+ | 外观 | 2 | 欢迎向导、语言 |
98
+ | 存储 | 3+ | 用户级/项目级/记忆根目录 |
99
+ | 记忆窗口 | 10 | 注入预算、容量、排除源、快照节奏 |
100
+ | 自动化 | 17 | 自动固化、无人值守、时段总结、定时班 |
101
+ | 上下文管理 | 11 | 交接、自动接续、水位、看板模式、子代理回收 |
102
+ | 维护 | — | 版本/更新/调试中心(只读) |
103
+
104
+ **写入唯一出口**:`saveConfigPatch`(`client.js:999-1200`)→ `POST /config`。**不要绕过它。**
105
+
106
+ ---
107
+
108
+ ## 四、约束清单(提交前请自查)
109
+
110
+ ### 4.1 硬约束
111
+
112
+ - [ ] **零新增依赖**:不引 React/Vue/构建链/任何 npm 运行时包。现有 UI 是组件库内置原语 + 手写 CSS。
113
+ - [ ] **配置写入走 `saveConfigPatch`**:不得直写 `/config` 或本地存储绕开校验。
114
+ - [ ] **不改注入语义**:不碰任何决定「什么时候注入、注入多少」的逻辑。
115
+ - [ ] **失败要留痕**:新增的 fail-soft 分支必须产生**可观察信号**(面板可见或日志留痕),禁止静默吞异常。
116
+ - [ ] **开关解耦**:单个开关不得顺带改变其它功能的行为。
117
+ - [ ] **双语**:所有面向用户的文案必须同时给中文与英文(现有 `data-en` / 中文源文模式)。
118
+ - [ ] **不引入授权待清的资产**:字体/图标/图片必须自带许可或使用系统字体。
119
+
120
+ ### 4.2 自查清单
121
+
122
+ - [ ] 本地能跑起来(见 §5)
123
+ - [ ] 键盘可达:Tab 能走到,Esc 能退出,焦点可见
124
+ - [ ] 空态 / 加载态 / 错误态 都有处理
125
+ - [ ] 长内容不溢出(工作区名可能很长、日志可能几千行)
126
+ - [ ] 改设置后**界面立刻回显**(写盘成功但界面没变 = 功能坏了,这是明确的项目红线)
127
+ - [ ] 在窄窗口(≤640px)下不横向滚动
128
+
129
+ ---
130
+
131
+ ## 五、怎么跑起来改(零安装)
132
+
133
+ 插件是**纯 ESM 单文件 + 手写 CSS,没有构建步骤**:
134
+
135
+ ```bash
136
+ git clone https://github.com/Aik358/dsh-auto-memory.git
137
+ cd dsh-auto-memory
138
+ # 把 profile 指向你的开发树(link: 挂载)
139
+ # 然后重启 DSH,侧栏就会出现「记忆」入口
140
+ ```
141
+
142
+ 改 `lib/client.js` / `lib/client-*.js` 后刷新页面即可看到效果。
143
+
144
+ **回归自检**(改完请跑,PR 里贴上结果):
145
+
146
+ ```bash
147
+ node tools/run-smoke.mjs --timeout=90000 \
148
+ --exclude=-live- --exclude=m79-feature-v2-pre \
149
+ --exclude=m710-fv2-emit-pre --exclude=c4-fresh-install-pre
150
+ ```
151
+
152
+ 期望:**PASS 141 / FAIL 0 / TIMEOUT 0**(并行 ×4,约 44 秒)。
153
+
154
+ ---
155
+
156
+ ## 六、已公开的设计文献(动笔前先读)
157
+
158
+ | 文档 | 内容 |
159
+ |---|---|
160
+ | `docs/internal/FEATURE-INVENTORY.md` | 三层功能全量清单:L1 39 条用户能力 / L2 承载面 / L3 工程细节(含全部 17 工具、49 路由、98 键) |
161
+ | `docs/internal/ARCHITECTURE-FOR-ZCODE-20260920.md` | 面向新开发者的结构文档,61 个模块职责表 |
162
+ | `docs/internal/ART-DIRECTION-DEEPSEEK-20260920.md` | 现行美术方向(DeepSeek 官网体系) |
163
+ | `.dsh/skills/transitions-motion/` | 43 个生产级动效的完整源码与技法文档(含 motion token 刻度) |
164
+ | `site/` | 项目主页(纯静态,可直接本地打开) |
165
+
166
+ ---
167
+
168
+ ## 七、视觉远期规划(哪些暂时不做,为什么)
169
+
170
+ 以下方向**已经论证过可行性,但明确排在远期**。原因是它们属于「重投入、收益不确定」,
171
+ 在当前阶段不适合占用主线资源。**如果你愿意做,我们欢迎——前提是先开 issue 对齐范围。**
172
+
173
+ | 方向 | 结论 | 阻塞点 |
174
+ |---|---|---|
175
+ | **项目主页三维档案终端** | 技术已验证可行(Three.js 阵列 + 逐帧开场,本机跑通) | ① 参考项目的 3D 模型受 MIT 覆盖范围限制,**不可直接沿用**,需自建或程序化几何;② 配色需从暖灰底整体重标定为深底+品牌蓝(含光照/雾/AO);③ 40 份档案正文需重写 |
176
+ | **角色层(鲸鱼娘)** | 抽象线描已产出(Ark9 生图 + 本地亮度键控) | 三维场景内使用需要模型,非 2D 位图;2D 图层叠加是可行的降级方案 |
177
+ | **亮色主题** | 令牌已备(`#f9f8f8`) | 需整套对比度与光照校验 |
178
+ | **面板整体重排** | 需要先有特征化测试 | 前端目前回归网极薄(146 个套件里仅 3 个断言组件行为) |
179
+
180
+ ---
181
+
182
+ ## 八、怎么提 PR
183
+
184
+ 1. **先开 issue** 说明你想改什么、为什么、大概怎么做(B 档方向必须先走这步)
185
+ 2. Fork → 建分支 → 改 → 跑 §5 回归 → 提 PR
186
+ 3. PR 描述里请写:**改了什么 / 为什么 / 怎么验证 / 截图或录屏**
187
+ 4. 我们会用同一份 §4 约束清单 review
188
+ 5. 后端改动请单独提 PR,不要混在前端 PR 里
189
+
190
+ **许可**:本插件代码以 **BSD-3-Clause** 发布。你的贡献将以同一许可合入。
191
+ 页脚的角色设定署名(CC BY-NC-SA 4.0)与上游项目署名(MIT)**请勿删除或改写**。