@a9i5k4/dsh-auto-memory 2.2.2 → 2.2.3

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 (110) hide show
  1. package/docs/A3-RISK-ASSESSMENT-20260830.md +61 -0
  2. package/docs/COT-WATCH-RFC.md +88 -0
  3. package/docs/DUAL-TIER-RATIFICATION-PROMPT.md +71 -0
  4. package/docs/HANDOFF-HARNESS.md +78 -0
  5. package/docs/HANDOFF-M8-M9-M10.md +203 -0
  6. package/docs/HY4-TOUR-LOGO-HANDOFF-2.md +60 -0
  7. package/docs/HY4-TOUR-LOGO-HANDOFF.md +100 -0
  8. package/docs/ISSUE-REPLY-UNATTENDED.md +31 -0
  9. package/docs/K3-LANDING-HANDOFF.md +76 -0
  10. package/docs/LANDING-OUTLINE.md +85 -0
  11. package/docs/M-CM-PLAN.md +166 -0
  12. package/docs/M-CM-STATE.md +64 -0
  13. package/docs/M3B-CONTRACT.md +461 -0
  14. package/docs/M4-CONTRACT.md +1207 -0
  15. package/docs/M5-CONTRACT.md +383 -0
  16. package/docs/M6-CONTRACT.md +342 -0
  17. package/docs/M7-ACTIVATION-ALGO-REFERENCES.md +104 -0
  18. package/docs/M7-ACTIVATION-CALIBRATION.md +144 -0
  19. package/docs/M7-ACTIVATION-FEATURE-AGENT-PROMPT.md +79 -0
  20. package/docs/M7-ACTIVATION-FEATURE-CALIBRATION.md +58 -0
  21. package/docs/M7-ACTIVATION-FEATURE-DESIGN.md +124 -0
  22. package/docs/M7-ACTIVATION-V2-CONTROLLED-SHADOW.md +127 -0
  23. package/docs/M7-ACTIVATION-V2-HANDOFF.md +132 -0
  24. package/docs/M7-ACTIVATION-V2-HOLDEDOUT-EVAL.md +94 -0
  25. package/docs/M7-ACTIVATION-V2-HOLDEDOUT-SHADOW.md +60 -0
  26. package/docs/M7-ACTIVATION-V2-LIVE-SHADOW-PLAN.md +85 -0
  27. package/docs/M7-ACTIVATION-V2-PAPER.md +303 -0
  28. package/docs/M7-AGENT-HANDOFF-PROMPT.md +63 -0
  29. package/docs/M7-ALGORITHM-DECISION.md +174 -0
  30. package/docs/M7-AUTONOMOUS-STATE.md +252 -0
  31. package/docs/M7-BENCHMARK-PLAN.md +78 -0
  32. package/docs/M7-CLOSED-LOOP-WIRING.md +110 -0
  33. package/docs/M7-EMBEDDING-BENCHMARK.md +164 -0
  34. package/docs/M7-INTERFACE-DIGEST.md +144 -0
  35. package/docs/M7-LABEL-REVIEW-REPORT.md +107 -0
  36. package/docs/M7-LEXICAL-TUNING.md +58 -0
  37. package/docs/M7-LIVE-SHADOW-SCRIPT.md +30 -0
  38. package/docs/M7-PYTHON-IMPLEMENTATION-REPORT.md +92 -0
  39. package/docs/M7-RESEARCH-PAPER.md +442 -0
  40. package/docs/M7-TASKSET-DISPATCH.md +213 -0
  41. package/docs/M8-MEMORY-HUB.md +105 -0
  42. package/docs/MEMORY-SYSTEMS-SURVEY-2026-09.md +166 -0
  43. package/docs/NEXT-MAJOR-PROMO.md +363 -0
  44. package/docs/NEXT-MAJOR-README-DRAFT.zh.md +205 -0
  45. package/docs/NEXT-MAJOR-VISION.md +112 -0
  46. package/docs/PREVIEW-NEXT-STEPS.md +229 -0
  47. package/docs/PROJECT-FREEZE-AND-ROADMAP.md +200 -0
  48. package/docs/PROMO-STYLE-GUIDE.md +84 -0
  49. package/docs/PYTHON-SIDECAR-CONTRACT.md +539 -0
  50. package/docs/R2-POLICY-PLUMBING-BLUEPRINT.md +99 -0
  51. package/docs/RELEASE-READINESS-PLAN.md +91 -0
  52. package/docs/RELEASE-SEMANTIC-OPTION.md +181 -0
  53. package/docs/S1-SCIENTIFIC-RIGOR.md +269 -0
  54. package/docs/S2-DEEP-ABSORPTION.md +259 -0
  55. package/docs/S3-TARGET-ARCHITECTURE.md +172 -0
  56. package/docs/USER-GUIDE.zh-CN.md +98 -0
  57. package/docs/banner.jpg +0 -0
  58. package/docs/implementation-handoff-context.zh-CN.md +429 -0
  59. package/docs/landing/index.html +1745 -0
  60. package/docs/paper-figures/fig1_model_quality.png +0 -0
  61. package/docs/paper-figures/fig2_chunk_reversal.png +0 -0
  62. package/docs/paper-figures/fig3_latency.png +0 -0
  63. package/docs/paper-figures/fig4_hybrid.png +0 -0
  64. package/docs/paper-figures/fig5_rerank_tradeoff.png +0 -0
  65. package/docs/paper-figures/fig6_cluster_sweep.png +0 -0
  66. package/docs/paper-figures/fig7_resource.png +0 -0
  67. package/docs/paper-figures-v2/fig1_echo_trap.png +0 -0
  68. package/docs/paper-figures-v2/fig2_pr_paths.png +0 -0
  69. package/docs/paper-figures-v2/fig3_coefficients.png +0 -0
  70. package/docs/paper-figures-v2/fig4_calibration.png +0 -0
  71. package/docs/paper-figures-v2/fig5_order_ablation.png +0 -0
  72. package/docs/paper-figures-v2/fig6_containment.png +0 -0
  73. package/docs/proactive-associative-memory-architecture.html +659 -0
  74. package/docs/proactive-associative-memory-meta-code.html +1058 -0
  75. package/docs/proactive-associative-memory-research-report.zh-CN.md +685 -0
  76. package/docs/proactive-associative-memory-system-map.html +1580 -0
  77. package/docs/promo/first-run-guide.html +397 -0
  78. package/docs/promo/homepage.html +384 -0
  79. package/docs/screenshots/calendar-en.png +0 -0
  80. package/docs/screenshots/calendar-zh.png +0 -0
  81. package/docs/screenshots/connect-en.png +0 -0
  82. package/docs/screenshots/connect-zh.png +0 -0
  83. package/docs/screenshots/main-connect-en.png +0 -0
  84. package/docs/screenshots/main-connect-zh.png +0 -0
  85. package/docs/screenshots/overview-en.png +0 -0
  86. package/docs/screenshots/overview-zh.png +0 -0
  87. package/docs/screenshots/panel-hub.png +0 -0
  88. package/docs/screenshots/panel-overview.png +0 -0
  89. package/docs/screenshots/panel-refine.png +0 -0
  90. package/docs/screenshots/promo/promo-0-banner-v2.png +0 -0
  91. package/docs/screenshots/promo/promo-1-hero.png +0 -0
  92. package/docs/screenshots/promo/promo-2-tour.png +0 -0
  93. package/docs/screenshots/promo/promo-3-recall.png +0 -0
  94. package/docs/screenshots/promo/promo-4-unattended.png +0 -0
  95. package/docs/screenshots/promo/promo-5-external.png +0 -0
  96. package/docs/screenshots/promo/promo-6-greeting.png +0 -0
  97. package/docs/screenshots/reflections-en.png +0 -0
  98. package/docs/screenshots/search-zh.png +0 -0
  99. package/docs/screenshots/settings-2-zh.png +0 -0
  100. package/docs/screenshots/settings-debug-zh.png +0 -0
  101. package/docs/screenshots/settings-en.png +0 -0
  102. package/docs/screenshots/settings-zh.png +0 -0
  103. package/docs/screenshots/tour-core.png +0 -0
  104. package/docs/screenshots/tour-external.png +0 -0
  105. package/docs/screenshots/tour-toggles.png +0 -0
  106. package/docs/screenshots/tour-welcome.png +0 -0
  107. package/docs/screenshots/workspace-map-zh.png +0 -0
  108. package/docs/social-preview.png +0 -0
  109. package/lib/client.js +5 -0
  110. package/package.json +2 -1
@@ -0,0 +1,112 @@
1
+ # 大版本愿景:连续性(Continuity)——写给未来失忆的自己
2
+
3
+ > 写于 2026-09-06,0.1.39 发布当夜。0.1.39 是 0.1.x 稳定线的**最终稳定版**(此后仅针对 issue 做稳定性更新),全新版本两周内启动,工作重心=对标 GPT-6 Astra「上下文管理」。
4
+ > **本文档是愿景与 README 宣传方案的唯一权威来源。大版本完成前禁止改 README;大版本完成后,按 §6 执行宣传改版——执行前先通读全文,别只看标题。**
5
+
6
+ ---
7
+
8
+ ## 1. 产品论点
9
+
10
+ **AI 助手的价值 = 上下文 × 时间。** 今天几乎所有 AI 的记忆都死在上下文窗口里:压缩即失真,关窗即清零,换工具即归零。
11
+
12
+ dsh-auto-memory 的终态:**给 DSH 里的任何模型一个不死的记忆**——有结构、可检索、会成长、可审计、归用户所有。
13
+
14
+ GPT-6 Astra 把「上下文管理」(结构化笔记跨窗口、归档可搜索、按需检索、handoff 代替压缩)作为旗舰模型的实验特性发布(`features.context_management.experimental_mode`,2026-09-03,closed beta in config.toml)。**我们把同一条路线做成开放、模型无关、可审计的插件能力。** 这不是跟随,是背书:头部厂商用整个旗舰发布验证了"外置结构化记忆"才是正解,"反复压缩成摘要"是被淘汰的旧范式。
15
+
16
+ ## 2. 四个连续性 + 两个横切面(终态的全景账本)
17
+
18
+ > 2026-09-06 修订:与 README「功能全景」逐节对账后的版本。**每个轴先列已落地的完整清单,再列大版本增量**——未来任何会话改写愿景/宣传前,先拿本节与 README 再对一次账,别凭印象写。
19
+
20
+ ### 2.1 当下连续——窗口内(已落地)
21
+ - **主动联想零指令**:Host 中间件持续观察对话情境,相关记忆在模型开口之前被检索、决策、经固定边界注入下一环节——已发请求不可原地改写,**提示词字节级稳定,前缀缓存永不失效**(这是与"模型记得去查"类方案的根本分野)
22
+ - **智能检索**:自然语言提问,AI 自动扩展关键词扫描全部记忆层,会话式回答并标注来源;`memory_recall` 天然**跨工作区**,其他项目的日志、笔记同样可达
23
+ - **注入内容全出口中和**(0.1.39):`{{模板变量}}` 再也炸不了轮次
24
+ - **无人值守/夜间自动托管**(22:00-08:00 可调):不注入欢迎语/寒暄/行为指令、日历提醒同步静默——token 花在正事上
25
+ - M-CM 增量:M-CM4 水位感知
26
+
27
+ ### 2.2 窗口连续——跨上下文交接(M-CM 主战场,对标 Astra)
28
+ - 已有地基:M8 接续卡片、M7 evidence store + 词法/语义双臂索引(JS e5-small / Python BGE-M3)、`memory_read`/`memory_recall` 工具面、三层记忆体系的按需取回注入策略(静态纪律 system prompt + 动态记忆运行时快照)
29
+ - M-CM1 **四段式交接笔记**:任务状态/目标/已试方案+失败原因/进度与下一步——低成本先行
30
+ - M-CM2 **主动检索工具**:`memory_search` / `memory_note` 注册为门控代理标准工具(CUA 插件已验证工具机制;注意 ctx.get() 坑)——从被动吃注入升级为按需查归档,即 Astra `history`/`_context` 的插件版。**整个大版本最值得做的一件事**
31
+ - M-CM3 **原始归档可搜索**:完整历史+工具输出落本地归档(全量+索引),命中"没被笔记捕获的细节";**归档入库必须走同一套卫生闸门**(§2.6),外部脏数据不能因新特性混入
32
+ - M-CM4 **水位感知**:上下文快满时推 handoff 提示而非继续注入;host 若暴露压缩预告事件则在压缩前自动写交接笔记(否则向 DSH 提 feature request——插件只助产,不替 host 决定压缩)
33
+ - 终态画面:上下文将满时,Agent 不再"把书烧了留一句读后感",而是"合上一本写满批注的笔记,翻开新的一页——笔记还在手边,随时翻回去"(Astra 原话:even if that information wasn't captured in its notes)
34
+
35
+ ### 2.3 时间连续——跨周期成长(已落地一整条链,别小看)
36
+ - **自动沉淀**:每轮对话结束子代理静默评估——长期价值主题分组写日志(`## 主题(HH:MM)`)、决策晋升项目笔记、规则晋升用户级记忆、闲聊跳过;失败进队列每 5 分钟重试(15 秒心跳文件证明循环存活);每日预算 ≤8 次带冷却,超限 AI 合并去重后写入不拒写
37
+ - **AI 发散固化**(memory_consolidate):阶段性通读近期日志,发散提炼值得升格的要点——与每轮"记流水"互补
38
+ - **30 天蒸馏与召回边界**:旧日志蒸馏进项目笔记,原文 archive 保底,**AI 不可用时降级为原样归档,绝不丢信息**;技能固化/用户级/项目笔记**永不蒸馏**——蒸馏只把"过程流水"换"可复用结论"
39
+ - **技能固化全链**:高频流程固化为 checklist,匹配对话自动附上,跨会话验证后晋升(记忆中枢页签审批);注入形态分级 checklist/excerpt/hint,**高风险场景自动降级 hint**;90 天未用自动归档、可置顶
40
+ - **每日反思**:结构化复盘(成果/教训/下一步)落在独立反思层,每日首次会话主动呈现前一日反思;晨/午/晚时段问候提及你当日最重要的工作;**暂离超 1 小时回来,记忆面板自动打开送上"欢迎回来"+近期工作摘要**
41
+ - **日历——AI 替你维护**:从对话识别截止日期/约定自动入日历(calendar_add),**未完成事项持续注入后续会话直到完成**——这条本身就是一线上线的"跨会话连续性"特性;日视图 07:00-22:00 时间轴、地点/提醒字段、紧急度语义色
42
+ - M-CM 增量:交接笔记进入同一时间轴,窗口切换也有复盘
43
+
44
+ ### 2.4 工具连续——跨产品迁移(已落地 + 大版本补叙事)
45
+ - **外部记忆继承**:WorkBuddy / CodeBuddy / Claude Code / Codex 的历史会话与记忆可扫描发现、按源导入、按源删除;**只存路径指针,不复制内容**(尊重来源、零膨胀);导入侧+注入侧**双重卫生闸门**防外部脏数据混入
46
+ - 接续页签已 live;三店持久化全在用户本机
47
+ - 大版本补:把"记忆属于用户不属于厂商"从功能升格为宣言(README 独立段落);评估导出/可携带格式
48
+
49
+ ### 2.5 横切面一:控制面——一切皆开关(已落地)
50
+ - 欢迎向导分步引导:每步一枚液态玻璃图标+专属动效,**开关即写配置立即生效**;语义引擎三级检测/下载/自检内联在向导里(SHA256 校验+推理自检);外部来源实时扫描逐源勾选;中途关闭先落"完成提醒"步(关不掉的困惑不存在);可随时重看
51
+ - 设置页双入口,每个功能独立开关(自动联想/周期快照/暂离问候/夜间托管/每日反思/定时总结/外部记忆/技能固化…)
52
+ - 记忆面板 10 页签:工作区关系图(AI 归纳主题与跨区关联、可拖拽缩放、点卡片看详情)/ 日历 / 接续 / 记忆中枢 / 日志 / 笔记 / 反思 / 唤起回顾 / 检索 / 存储
53
+
54
+ ### 2.6 横切面二:卫生面——生产级信任(已落地)
55
+ - **写入门禁**:三个写入工具全过 sanitizeForWrite——GBK 乱码(34 特征全表)、复读退化、连续重复行、外部 AI 画像 JSON 特征、base64 残留,全部拒写并给中文回执;追加 8000 字/条、全量改写 20 万字上限、追加前与文件尾部近 60 行去重
56
+ - **凭证/密钥永远过滤在提示词之外**
57
+ - **脏 token 扫描器**:设置→调试中心一键扫描用户级/项目/日志/反思,按行区间报告(只报位置不含正文)
58
+ - **唤起可查**:每次激活决策带完整证据链,唤起回顾页按 A 该激活/P 只预取/S 应抑制/H 有害/E 改目标五档复核打分,判定队列汇总成政策提示
59
+ - M-CM 继承约束:原始归档入库同样过闸门(见 2.2)
60
+
61
+ ## 3. 对标 Astra:开放插件的位势
62
+
63
+ | | GPT-6 Astra / Codex 实验特性 | dsh-auto-memory 大版本 |
64
+ |---|---|---|
65
+ | 可用性 | 单厂商旗舰、experimental、closed config | 开源插件、DSH 任何模型即装即得 |
66
+ | 笔记 | 跨窗口 keep notes | 四段式交接 ledger + 用户可直接读改 |
67
+ | 归档 | 早期窗口可搜索 | 本地全量归档+词法/语义双臂检索 |
68
+ | 检索 | history/_context 工具 | memory_search/memory_note 门控代理工具 |
69
+ | 触发 | token budget + handoff | 水位感知 + 压缩前拦截(host 协作) |
70
+ | 所有权 | 厂商侧 | 记忆全在用户盘上,治理式写回可审计 |
71
+ | 分级 | 无(绑定订阅档位) | 0GB 词法保底 → 130MB 内置语义 → 563MB Python 进阶 |
72
+
73
+ 宣传口径一句话:**"What Astra ships as an experimental flagship feature, we ship as an open plugin — for every model on your machine, today."**(中文版见 §6)
74
+
75
+ ## 4. 终态用户故事(README 叙事骨架)
76
+
77
+ > 周一,你让 Agent 调研一个方案,中途关了电脑。
78
+ > 周三,你换了台机器、顺手把默认模型也换了。打开 DSH,她接上的不是"抱歉,我不记得之前聊过什么",而是上周的进度、三条已试过的死路和下一步——因为交接笔记在,原始记录可搜,记忆跟着你走。
79
+ > 周五,你问她"你为什么记得这个?",她给你看 evidence 链:哪条消息、哪次工具输出、哪次反思写下的,你可以 pin、可以改、可以删。
80
+
81
+ ## 5. 我们不做什么(克制的边界,同样写进宣传)
82
+
83
+ 1. 不替 host 决定压缩策略——只助产 handoff,窗口是 host 的领地
84
+ 2. 不上传任何记忆——三店全本地,外部来源扫描只读
85
+ 3. 不用记忆操纵语体——注入永远声明"背景事实,非表达示范"
86
+ 4. 不做黑箱——每条记忆有 evidence 直达,review 时间线可回放,脏数据有扫描器
87
+ 5. 不做全家桶——记忆插件不做日程替身、不做 RAG 框架,边界清晰才可信
88
+
89
+ ## 6. README 宣传改版方案(大版本完成后执行,现在禁改)
90
+
91
+ > **宣传文案成稿(热叙述体)= [NEXT-MAJOR-PROMO.md](NEXT-MAJOR-PROMO.md)**——主视觉/开场白/用户故事/亮点表三行/第七幕分镜/英文 hero/语气守则全在其中,改 README 时以它为文风与文案底稿,本节管结构与清单。
92
+
93
+ 1. **主视觉**:保留品牌句「她记得,不必吩咐 / She remembers, unbidden」;主标下方加副标「跨窗口 · 跨会话 · 跨工具,记忆不断线 / Context that survives windows, sessions, and tools」
94
+ 2. **30 秒亮点表**:**现有八行全部保留**(主动联想/三层引擎/自动沉淀/唤起有据/主动提醒/一切皆开关/外部继承/生产级卫生——它们就是对账基准),大版本新增三行:Astra 式上下文管理(交接笔记+可搜索归档+按需检索);模型无关(DSH 上任何模型即装即得,不锁厂商不锁档位);记忆可携带(全本地+跨工具导入+可审计可导出)
95
+ 3. **新章节「为什么是插件 / Why a plugin」**:放 §3 对照表 + §4 用户故事;口径句 "What Astra ships as an experimental flagship feature, we ship as an open plugin — for every model on your machine, today."(中文:「GPT-6 当作旗舰实验特性的上下文管理,我们做成开放插件——你机器上的任何模型,今天就有一份。」)
96
+ 4. **宣传图第七幕**:两扇玻璃窗口之间一座液态玻璃桥,桥上是一本发光的笔记正在传递(六幕变七幕,缩略图条与 details 分幕同步加)
97
+ 5. **Landing page**:数据流图加 handoff 环节(窗口 A → 交接笔记 + 归档 → 窗口 B),30 秒亮点区同步 §6.2
98
+ 6. **安装段**:分级话术保持 0GB→130MB→563MB;顶部元信息行 QQ 群入口已在 0.1.39 后加好(README 顶部 `pnpm add` 同行),保留勿删
99
+ 7. **维护线声明更新**:0.1.x "终版稳定线"提示替换为大版本正式文案
100
+
101
+ ## 7. 里程碑落点与发布工程
102
+
103
+ - **M-CM1 四段式交接笔记** → 最先做(纯插件侧,低成本高叙事)
104
+ - **M-CM2 memory_search / memory_note 工具** → 主菜(门控代理工具机制,CUA 已验证路线)
105
+ - **M-CM3 原始归档可搜索** → 视存储成本(evidence store 扩展)
106
+ - **M-CM4 水位感知 / 压缩前拦截** → 依赖 DSH host 事件,先验证再决定是否提 feature request
107
+ - **发布工程**:M-CM1+2 live 后即可启动 §6 宣传改版(宣传图第七幕可并行画);npm 同步等大版本一起(用户 2026-09-06 决定)
108
+ - 与 PROJECT-FREEZE-AND-ROADMAP.md 的关系:M-CM 吸收/并入 M9/M10 槽位;G-02 收尾顺序不变
109
+
110
+ ## 8. 一句话记住这一切
111
+
112
+ **压缩是旧范式的续命,记忆是新范式的本金。她记得,不必吩咐——现在,换窗口也不必。**
@@ -0,0 +1,229 @@
1
+ # dsh-auto-memory 预览版 · 模块化实施交接(2026-08-23)
2
+
3
+ > 工作区:D:\dsh-auto-memory(preview 分支)
4
+ >
5
+ > **全局蓝图/收尾路线(2026-08-25 固化,压缩后先读)**:docs/PROJECT-FREEZE-AND-ROADMAP.md
6
+ >
7
+ > **目标架构与实施进度唯一权威**:docs/proactive-associative-memory-system-map.html
8
+ >
9
+ > 本文只作为下一编程模型的执行入口。若本文、研究报告、其他 HTML 或旧记忆与系统地图冲突,以系统地图的架构不变量、progressLedger 和模块验收门为准;当前实现事实仍以代码、DSH 类型和测试结果为准。
10
+
11
+ ## 0. 当前现场(2026-08-23)
12
+
13
+ - 当前 HEAD:aa7d6f0;preview 工作树包含 M0-R/T0/M1/M2/P-A/M3a/M3b/M4、M5/M6 全部 live、lexical_pre_v2、M7 研究报告/完整契约/Agent handoff、**M7-0/M7-1 实现与测试**与既有并行改动,尚未 commit。
14
+ - Web profile 两级链接均指向 D:\dsh-auto-memory,现有 http://127.0.0.1:3080 已加载 preview;C 盘稳定副本保留,回滚说明见 .tmp-pa-rollback.txt。
15
+ - M0-R/T0/M1/M2/P-A/M3a/M3b/M4/M5/M6 全部 live verified;JS 阶段收官。**M7-0 Protocol+Fake Worker 与 M7-1 Authorized index_sync 已实现并 tested(2026-08-24)**:默认 pythonBackendEnabled=false 时零 Python process、零协议 IO、零 semantic-pre 目录;fake activation 逐字段过现有 M6 validator;smoke-test-m70/m71 各 90 断言 exit 0,全量 22 项回归全绿;未标 live(live 属 M7-8 且需用户控制)。证据:docs/PYTHON-SIDECAR-CONTRACT.md §19。下一权威范围=M7-2 embedding benchmark(未开始)。
16
+ - M3b-4 已迁移 31/31 个真实记忆文件、176 条 anchored 记录并落盘 31 份 sidecar;memoryAnchorEnabled=true 在线;可回滚备份为 mig_20260822141900_0695b3。M3b 历史契约与收尾证据见 docs/M3B-CONTRACT.md。
17
+ - M4 全部四阶段完成并 live 验证通过:纯核心(shadow-retrieval-pre.js)+Corpus Adapter(m4-corpus-pre.js)+Host 接线(shadow-host-pre.js 已接入 lib/index.js)+Live Verification(live retrieve completed、audit 隐私投影验证、plugin 判定与 dshHome 两处 live 缺修复);契约证据 docs/M4-CONTRACT.md §23-§27。M4-4 现场证据见 §26。
18
+ - **M5-1 Pure Core 完成(2026-08-23)**:lib/context-bridge-pre.js(envelope/identity/coverage/六类证据构造器/Null-Fake sink/push bridge/replay);smoke-test-m51-pre.mjs 85 断言 exit 0;无 Python 路径。契约证据 docs/M5-CONTRACT.md §15。
19
+ - **M5-2 Store/Aggregate 完成(2026-08-23)**:lib/evidence-store-pre.js(sessionRef/workspaceRef 哈希隐私投影、append-only events+retention、rebuildAggregates fresh/stale/unknown+workspace 桶);smoke-test-m52-pre.mjs 52 断言 exit 0。契约证据 docs/M5-CONTRACT.md §16。
20
+ - **M5-3 Host 接线完成(2026-08-23)**:lib/context-host-pre.js 已接入 lib/index.js(config 新增 contextBridgeEnabled=false/contextSinkMode='null',双门默认关闭零 IO);cite/correction/read-coverage 三条 evidence 流+envelope 推送(Null/Fake sink);smoke-test-m53-pre.mjs C1-C8 38 断言 exit 0,全量 16 项回归 17.9s 全绿,四项卫生扫描全净。契约证据 docs/M5-CONTRACT.md §17。
21
+ - **M5-4 Live Verification 通过、M5 整体完成(2026-08-23)**:重启后 live 实测——envelope 组装推送(obs_pre_*/memoryRefs=8/latest-wins superseded=1)、read coverage 落盘(ev_pre_* cov=0.035)、隐私投影扫描全过(sesr_/wsr_/无裸标识/无绝对路径)、prompt 零变化(无 tail/pendingPacket/delivered 字段)、关闭恢复零新增写入(883B→883B);真实记忆 anchor 链 0 conflicts/sidecar FRESH(SHA 漂移=窗口期自动沉淀合法写入,项目笔记 63→65 条)。开关已恢复 assoc=false/bridge=false/sink='null'/anchor=true。偏差:correction 与 A/B 由单元测试 C5/C3 覆盖,未做 live 人工注入。契约证据 docs/M5-CONTRACT.md §18。
22
+ - **M6-1 Pure Core 完成(2026-08-23)**:lib/activation-inbox-pre.js——ActivationRequest/Candidate validator(JS 硬校验矩阵,不重算语义分)、recordDigest 去重、固定边界 Reference Tail 渲染器+guard v1、pkt_pre_ packetId/exactDigest identity、TTL、fake activation fixtures;smoke-test-m61-pre.mjs D1-D9 53 断言 exit 0;全量 17 项回归 18.4s 全绿;四项卫生扫描全净。契约证据 docs/M6-CONTRACT.md §16。
23
+ - **M6-2 Per-runtime Inbox 完成(2026-08-23)**:lib/activation-inbox-state-pre.js——createActivationInboxPre 状态机(offer 门序:身份→重复→抑制→cursor/index stale;latest-wins 替换+同 activationId 重放硬拒)、claim 四重门(cooldown=2 步/TTL/cursor/index)、markDelivered 为 seen 唯一接线点、严格身份键 registry(无 default 桶);smoke-test-m62-pre.mjs E1-E9 36 断言 exit 0;全量 18 项回归 18.5s 全绿;四项卫生扫描全净。契约证据 docs/M6-CONTRACT.md §17。
24
+ - **M6-3 Surface Adapter 完成(2026-08-23)**:lib/activation-host-pre.js 接入 index.js 八处——capability 快照(dynamic-context 按宿主形状)、pre-step claim、专用 'dsh:m6-reference-tail-pre' context 面板渲染即投递(exactDigest 校验)、delivery ack 后 seen 落盘、activation-inbox-pre 注入路由;smoke-test-m63-pre.mjs F1-F9 23 断言 exit 0(seen n=2);基线同步路由 26/组件 3;全量 19 项回归 20.7s 全绿。契约证据 docs/M6-CONTRACT.md §18。
25
+ - **compactLayer×anchor 兼容修复(F1)完成(2026-08-23)**:index.js 新增 compactAnchoredLayer 记录级压缩(今天记录无条件保留+字节配额从尾回溯+整条原文入归档 writeFullRaw+store.replace 原子重组,永不字符切片;无 sidecar 回退旧路径);根因与证据见 docs/M3B-CONTRACT.md §20;smoke-test-f1-pre.mjs G1-G4 20 断言 exit 0;全量 20 项回归 23.3s 全绿。当前权威范围原为 M6-4,现已完成,见下条。
26
+ - **M6-4 Live Verification 通过、M6 整体完成(2026-08-23)**:重启后 fake 注入即泵(pkt_pre_a602f2aa…)→**下一步 compose 尾注字面渲染进本 agent 的 model-visible messages**(两条引用块 mem_af41…/mem_6667…+Verify 收尾直接可见)→delivered=1/**seen 落盘 n=2**(ev_pre_168c…/ev_pre_522b…)→隐私扫描全过(sesr_/wsr_/无裸标识/无绝对路径)→关闭恢复零新增写入(2491B→2491B);真实记忆 anchor 链 conflicts=0/FRESH(SHA 漂移=窗口期自动沉淀合法写入)。开关恢复 assoc=false/inbox=false/anchor=true。时序偏差:fake 来源=注入即泵(确定性演示),真实 Python 推送走 pre-step 自然 claim(代码保留)。契约证据 docs/M6-CONTRACT.md §19。**JS 阶段(M0-M6)全部完成**;M7 完整契约/研究报告/Agent handoff 已冻结。
27
+ - **M7-0/M7-1 完成(2026-08-24, tested 未 live)**:五新模块——lib/m7-wire-pre.js(m7_wire_pre_v1 协议/canonical JSON 跨语言一致/envelope validator)、python/worker_pre_v1.py(纯标准库确定性 fake worker:stdout 只协议·stderr 有界诊断·不读任何 DSH 文件·唯一写路径 semantic-pre 原子替换·fake activation 从 memoryRefs 复制 provenance)、lib/python-sidecar-client-pre.js(no-shell lazy spawn/workerEpoch/partial·multi-line framing/256KiB 上限/timeout·AbortSignal·crash recovery·circuit breaker/结构化失败永不抛出/四身份不混用)、lib/context-sink-python-pre.js(M5 envelope 原样透传+deadline ack+失败映射 reason 枚举)、lib/index-sync-pre.js(scope 分组 begin/pages/commit·≤64 条·≤256KiB·page/final digest)。接线:engine._pythonSidecar 共享客户端+debug pythonBackend 投影+三重门解锁(contextSinkMode='python'、activationSource='python',后者经 offerExternalActivation 自然 claim 不做 pump)+disposer;DEFAULT_CONFIG 新增 pythonBackendWorkerPath=''/pythonBackendExecutable=''。顺手修复两处凌晨窗口 flake:①index.js maintain() 归档 cutoff 取日期零点(原含时分秒,00:00-日界窗口把当天日志误归档,m3b3 E8 实证);②smoke-test.mjs smkToday 对齐引擎 450min 日界。测试:m70 G1-G9=90 断言、m71 H1-H9=90 断言均 exit 0;全量 22 项回归全绿;node --check×11/py_compile/diff-check/BOM/_dev 扫描全净。证据:docs/PYTHON-SIDECAR-CONTRACT.md §19。
28
+ - **M7-2 Embedding Benchmark 完成(2026-08-24, tested 未 live)**:3 模型×5 chunk 策略×双层语料(L1 合成 152 记录/88 查询 + L2 真实 251 episodes/40 手写查询,外部存储只读脱敏)。**冻结:BAAI/bge-m3 @5617a9f61b02(MIT/1024d/CLS) + m7_chunk_pre_v1=para-512-noov + NumPy float32 L2 exact cosine**;qwen3-0.6B 备选(hard-neg 判别优但 p95≈500ms/RSS 峰值 4.7GB);multilingual-e5-large 淘汰(zh→en xlang@5=0.60+512 硬上限)。关键证据:L1 R@5=0.966/MRR 0.889/跨语 1.0/p95 189ms,L2 R@5=0.925/MRR 0.793/hard-neg 0.074/p95 241ms;supersede 裸 cosine 4/8 失败(三模型同病)→交 M7-3 融合(supersede/时效特征);scope 门 6 镜像泄漏=0。产物:docs/M7-EMBEDDING-BENCHMARK.md+docs/M7-ALGORITHM-DECISION.md+artifacts/m7-benchmark-pre/results.{json,csv}+artifacts/m7-corpus-pre/(episodes/queries/privacy)+tests/m7-2-fixtures/embedding-fixture.json+smoke-test-m72-pre.mjs(K1-K7 21 断言零联网);模型缓存在 python/bench/(独立 venv 3.10.11+torch cpu+transformers 5.15.1,未跟踪目录,manifest 逐文件 sha256,hf-mirror 通道核验)。顺手修复 m70 G7 harness effect 空桩(heartbeatTimer clearInterval 丢失致进程不退出;90 断言本全过,零生产代码改动)。全量回归 **23 项**全绿。**未接生产 activation、未标 live**。下一权威范围=M7-3(worker_semantic_pre_v1.py+lexical/bm25s/weighted/RRF 对照,见 ALGORITHM-DECISION D4)。
29
+ - **M7-3..M7-7 完成(2026-08-24, tested 未 live)**:①M7-3 生产 dense——python/m7_embedding_pre_v1.py(冻结 policy,可插拔 provider:hash-pre 确定性/bge-m3 真模型)+python/worker_semantic_pre_v1.py(继承 worker_pre_v1 零协议回退;commit 建 versioned vectors+identity stale/重建;影子候选本地日志;DSH_M7_EMBEDDING_CONFIG env 选 provider,零 CLI/JS 改动)+smoke-test-m73 55 断言;hybrid 对照→**D6 冻结 hybrid_fusion_pre_v1=weighted dense0.7+lexical0.3**(L2 R@5 0.950/MRR 0.866 胜 dense-only;bm25s 交叉验证一致零新依赖)。②Clustering Shadow:agglomerative thr=0.3(NMI 0.916/稳定性 0.995)参考实现;HDBSCAN 不适用;零 M6 接线(D8)。③M7-4 rerank:双 reranker 质量显著(L1 R@5→1.0)但 CPU p50 26-33s/50 对超预算 50-90 倍→**D9 deferred-optional 不接生产**(bge-reranker-v2-m3/qwen3-reranker-0.6B 双 pinned)。④M7-5 graph 门:6/8 多跳双端点 hybrid 已覆盖→**skipped-by-benchmark**(D10)。⑤M7-6 双阈值激活:suppress/prefetch/emit+滞回+cooldown+特征分组,shadow 校准默认(tOn 0.62/tOff 0.52);active 帧逐字段过 M6 validateActivationRequestPre(m76 33 断言,D11)。⑥M7-7 judgement shadow:8 类候选+keep/merge/supersede 建议,只写 judgement-shadow.jsonl,零权威写入(m77 15 断言)。⑦model-sparse 补测:dense+ms 融合 L2 R@5=0.975 全研究最高,MRR 略低→D6 修正案记录不改默认。**全量回归 26 项全绿(M0-M6 20+m70/71/72/73/76/77);全部默认关闭/shadow;Agent 已停在 M7-8 人工门——用户操作十步=docs/PYTHON-SIDECAR-CONTRACT.md §19.8 末节。**
30
+ - **M7-7.5 Hardening 完成(2026-08-24 下午,审阅意见全部闭环)**:P0 真 BGE 建库(build_doc_ids/encode_texts 补齐+单一模板)、D6 hybrid 进生产 worker(三分量影子)、workspaceRef+scope+miv 三重过滤(同 miv 跨 ws 泄漏用例)、correction 负向+硬抑制、toolFailures 权重、query 双 special 修复、gitignore 隔离模型缓存与原始语料 jsonl;真模型 real-smoke 12 断言(双向跨语言 top1);f1 硬编码日期 flake 顺手修复;回归 26/26 全绿。详见 contract §19.9。 M7-8 Phase E Host Orchestration Fix 完成(2026-08-24):新增 lib/m7-index-sync-host-pre.js 编排器+context-host index-ready 门时序修正+live-parity 诊断;根因修正=生产 Host 从未接线 index_sync(非 observer 缺失);smoke-test-m78-host-pre.mjs 33 断言+全量 27 项回归全绿。详见 contract §19.10。
31
+ - M3 收官时全量 10 项测试 8.5s 全绿;M4 四阶段完成后全量 13 项测试 7-10s 全绿;真实 Markdown 已完成 M3b-4 迁移(31/31 文件、176 anchored 记录、31 sidecar、备份 mig_20260822141900_0695b3 可回滚)。
32
+ - **当前线上开关**:associativeMemoryEnabled=false / shadowRetrievalEnabled=false / memoryAnchorEnabled=true(M4-4 验证后恢复默认关闭;anchor=true 保持迁移成果)。注意 assoc=false 期间自动沉淀实际不生效。
33
+ - 检索质量升级:lexical_pre_v1→v2(BM25 idf/tf 饱和/长度归一 + 哈工大停用词表 507 词);架构定位重申——JS 词法核心是 Python sidecar(M7) 主检索的安全回退层。
34
+ - 工作树存在既有未跟踪文件;下一模型必须先运行 git status,不能删除、修改、add 或提交无关文件。
35
+
36
+ ## 1. 下一编程模型的唯一实施范围
37
+
38
+ M5/M6 已完成 live 验证;M7 完整研究报告、契约和 Agent handoff 已冻结,当前只交接 M7,不启动 Python。
39
+
40
+ M7 当前范围(完整边界见 docs/PYTHON-SIDECAR-CONTRACT.md):
41
+
42
+ - 阅读 docs/M7-PYTHON-IMPLEMENTATION-REPORT.md、docs/PYTHON-SIDECAR-CONTRACT.md、docs/M7-AGENT-HANDOFF-PROMPT.md;先实现 protocol/index_sync,再按 benchmark 选择 embedding/dense/hybrid。
43
+ - M7-0 先实现 JSONL protocol/health/workerEpoch/deterministic fake worker,无真实模型。
44
+ - M7-1 必须实现 JS 授权分页 index_sync;context_push.memoryRefs top-8 不能冒充全库召回。
45
+ - 再按 benchmark 实现 embedding、NumPy exact dense、sparse/RRF,可选 bounded rerank;graph 默认关闭。
46
+ - Python 不读 DSH 文件、不创建 evidence、不写 prompt/Packet;所有 activation 走现有 M6 validator 与自然 pre-step claim。
47
+ - 默认关闭、Python 尚未启动;外部 Agent 执行入口为 docs/M7-AGENT-HANDOFF-PROMPT.md。
48
+
49
+ ### 预览命名空间隔离硬约束
50
+
51
+ 预览版必须能与已安装稳定版同时存在。所有会对外注册或写入持久状态的 preview 标识统一使用 `_pre` 或 `-pre`,绝不能使用 `_dev`,也不能复用会与稳定版碰撞的无后缀标识。覆盖范围至少包括:
52
+
53
+ - Agent 可见工具名:`memory_*_pre`、`calendar_*_pre`。
54
+ - Cordis/plugin id、systemPrompt section/context 注册名。
55
+ - API namespace、配置文件、cache、heartbeat、diagnose log。
56
+ - client localStorage key、UI/plugin slot 或其他跨实例持久化键。
57
+ - smoke test mock、断言、发布转换输入。
58
+
59
+ 内部局部函数、类方法和纯内存变量不需要机械添加后缀;隔离对象是可能与稳定版共享 Host 注册表或持久存储的命名空间。验收必须扫描 `_dev`、`auto-memory-dev` 和误用的稳定版裸标识。
60
+
61
+ ## 2. M0-R · 实验基线回归修复
62
+
63
+ 恢复以下 DEFAULT_CONFIG,保持默认关闭:
64
+
65
+ ~~~js
66
+ associativeMemoryEnabled: false
67
+ shadowRetrievalEnabled: false
68
+ softInjectionEnabled: false
69
+ pythonBackendEnabled: false
70
+ reasoningObserverEnabled: false
71
+ procedurePromotionEnabled: false
72
+ streamingInterruptionEnabled: false
73
+ maxPacketItems: 2
74
+ maxPacketChars: 800
75
+ packetTtlSteps: 2
76
+ injectionCooldownSteps: 3
77
+ ~~~
78
+
79
+ 验收门:
80
+
81
+ - 旧配置文件缺少字段时正常使用默认值。
82
+ - 所有实验开关关闭时,现有 prompt、14 个 _pre 工具、24 条路由、Markdown、自动沉淀和 GUI 数据接口行为不变。
83
+ - 不为这些开关新增 UI;当前任务只恢复 Host 基线契约。
84
+
85
+ ## 3. T0 · 测试进程可结算
86
+
87
+ 目标:让 smoke mock host 正确执行 effect/disposer,清理 interval、runtime 和异步任务;测试通过后自然 exit 0。
88
+
89
+ 验收门:
90
+
91
+ - node --check lib/index.js exit 0。
92
+ - smoke-test.mjs、smoke-test-reflect.mjs、smoke-test-external.mjs、smoke-test-isolation.mjs、smoke-test-consolidate-isolation.mjs 均输出通过且自然 exit 0。
93
+ - 不用 process.exit(0) 掩盖泄漏,不因测试方便删除生产 timer。
94
+
95
+ ## 4. M2 · ContextObserver 模块拆分
96
+
97
+ ### M2.1 Event adapters
98
+
99
+ 接入真实入口:
100
+
101
+ - session/event:user/message、tool/call、tool/result、assistant/message、turn/step 边界。
102
+ - frozen tools/result:执行级最终结果、失败和 nested tool call。
103
+ - agent/session-start、agent/pre-step、agent/turn-stopping、agent/disposed、session/disposed。
104
+
105
+ 只抽取有界、可序列化的最小 payload。禁止保存 Agent、AbortSignal 或整个 DSH 对象。
106
+
107
+ ### M2.2 EventEnvelope 与双游标
108
+
109
+ EventEnvelope 至少包含:
110
+
111
+ ~~~text
112
+ schemaVersion / sessionId / agentId / eventSeq
113
+ channel / eventType / timestamp / nativeSeq?
114
+ turn? / step? / sourceKind
115
+ messageId? / callId? / rootCallId?
116
+ payloadDigest / bounded normalized payload
117
+ ~~~
118
+
119
+ 语义:
120
+
121
+ - eventSeq:每个 accepted envelope 在该 runtime 内递增。
122
+ - contextVersion:只有 observer 接受有效 Segment、实际改变检索上下文时递增。
123
+ - 二者不得机械同步。
124
+ - tools/result 与持久 tool/result 用 callId/rootCallId 关联,但保留 channel/eventType 差异。
125
+ - 没有可靠 agent/sessionId 的事件不得落入 default runtime。
126
+
127
+ ### M2.3 Semantic Segmenter + bounded ring
128
+
129
+ 按语义边界切片:
130
+
131
+ - 一条用户消息一个 Segment。
132
+ - 一次工具调用参数摘要一个 Segment。
133
+ - 一次最终工具结果摘要一个 Segment。
134
+ - 一条最终可见 assistant 输出一个 Segment。
135
+ - 必要生命周期边界可以形成无文本事件,但不应无意义推进 contextVersion。
136
+
137
+ 不得粗暴取最后 N token;assistant/chunk 和 reasoning 默认不形成持久 Segment。ring 必须有明确、有测试的容量和字符上限,但本轮不增加设置页 UI。
138
+
139
+ ### M2.4 Replay / audit / lifecycle
140
+
141
+ - session-start 对 session.events seed 按原生 seq 补放。
142
+ - live session/event 从已消费 native seq 继续,不能双计。
143
+ - 相同事件流回放得到相同 Segment id、顺序和 digest。
144
+ - envelope/segment debug 数据按 runtime 隔离;dispose 后清空并 abort 挂起任务。
145
+ - 检索中间态不写主 Session。
146
+
147
+ ### M2.5 Tests
148
+
149
+ 至少新增:
150
+
151
+ - 相同事件流确定性回放。
152
+ - seed replay + live feed 去重续接。
153
+ - eventSeq/contextVersion 分工。
154
+ - A/B 并发 session 的 envelope、segment、cursor 零串线。
155
+ - root/nested tool call 关联。
156
+ - 无 owner 事件不进入 default runtime。
157
+ - dispose 后 ring、pending 和任务清理。
158
+ - associativeMemoryEnabled=false 时零行为差异。
159
+
160
+ ## 5. M1 不可破坏项
161
+
162
+ - context.text 必须在 engine.withAgent(agent, ...) 内执行。
163
+ - turn-stopping 不得通过 _lastAgent 猜当前会话;GUI 路由 fallback 不得扩散到 Agent 路径。
164
+ - this.state 和 autoStats 保持 getter;不得重新加入 this.state = {...}。
165
+ - 自动沉淀锁、队列、cooldown、lastTurn 和 abortController 保持 per-runtime;每日额度仍全局。
166
+ - 所有 Agent 可见工具继续使用 _pre;所有写入 UTF-8 无 BOM。
167
+
168
+ ## 6. M7 Python Semantic Engine 外部 Agent 交接
169
+
170
+ 前置里程碑 M0-R / T0 / M1 / M2 / P-A / M3a / M3b / M4 / M5 / M6 已全部 live verified。M7 完整契约与实施研究报告位于 docs/PYTHON-SIDECAR-CONTRACT.md 与 docs/M7-PYTHON-IMPLEMENTATION-REPORT.md。
171
+
172
+ 外部 Python Agent 的第一件事是阅读 docs/M7-AGENT-HANDOFF-PROMPT.md,并先实现 M7-0 protocol/fake worker 与 M7-1 index_sync;不得先做 graph/ANN。
173
+
174
+ 1. M7-0:JSONL framing、health、workerEpoch、fake worker、坏帧/超时/过期/drop tests。
175
+ 2. M7-1:JS 授权分页 index_sync,page/final digest 和 Python atomic derived index。
176
+ 3. M7-2/3:按 benchmark 选择 embedding,先 NumPy exact dense,再与 lexical_pre_v2、sparse、RRF 做消融。
177
+ 4. M7-4/5:有界 rerank;graph 只有 benchmark 证明多跳收益才启用。
178
+ 5. M7-6/8:主动 ActivationRequest、M6 natural pre-step claim 与 live verification。
179
+
180
+ 开始前必须阅读:
181
+
182
+ - docs/proactive-associative-memory-system-map.html
183
+ - docs/M7-PYTHON-IMPLEMENTATION-REPORT.md
184
+ - docs/PYTHON-SIDECAR-CONTRACT.md
185
+ - docs/M7-AGENT-HANDOFF-PROMPT.md
186
+ - M5/M6 live JS modules 与 smoke tests
187
+
188
+ M7 实施期间:不读 DSH 文件、不创建 AccessEvidence、不写 prompt/Packet;默认开关保持 false;Python 不可用必须回退 lexical_pre_v2。
189
+
190
+ ## 7. 完成后的进度回写
191
+
192
+ 每个模块只有在证据成立后才能变更状态:
193
+
194
+ - implemented:代码已经落地。
195
+ - tested:自动测试自然 exit 0。
196
+ - live verified:现有 DSH Web GUI 实际加载并人工验证。
197
+ - blocked:写明具体依赖或失败条件。
198
+
199
+ 每个 M7 阶段完成后必须更新:
200
+
201
+ 1. system-map progressLedger.currentScope、M7 evidence/gate 和 nextBrief。
202
+ 2. docs/PYTHON-SIDECAR-CONTRACT.md 与 docs/M7-PYTHON-IMPLEMENTATION-REPORT.md 的实施证据。
203
+ 3. 本文件的当前现场与测试结果。
204
+
205
+ ## 9. 已完成里程碑的快速索引(交接速查)
206
+
207
+ | 里程碑 | 状态 | 关键产物 | 契约/证据 |
208
+ | --- | --- | --- | --- |
209
+ | M0-R 实验基线 | live verified | DEFAULT_CONFIG 七开关+四预算 | §2 |
210
+ | T0 测试可结算 | live verified | effect/disposer 纪律+fetch stub | §3 |
211
+ | M1 会话隔离 | live verified | SessionRuntimeStore/WeakMap/per-runtime 锁 | §5 |
212
+ | M2 ContextObserver | live verified | EventEnvelope/Segment/ring/latest-wins | §4 |
213
+ | P-A D 盘预览 | live verified | 双 junction + package.json link | .tmp-pa-rollback.txt |
214
+ | M3a FileIndex | live verified | memory-index-pre.js/memoryIndexSnapshot | §19(M3B) |
215
+ | M3b-1..4 Anchor 迁移 | live verified | memory-anchor-pre.js/memory-writer-pre.js/31 文件迁移+备份 | §23-§26(M3B) |
216
+ | M4-1 纯核心 | tested→live 链路已证 | shadow-retrieval-pre.js(gate/tokenizer/lexical/replay) | §23(M4) |
217
+ | M4-2 Corpus Adapter | tested→live 链路已证 | m4-corpus-pre.js(catalog/guard/loader/registry) | §24(M4) |
218
+ | M4-3 Host Wiring | tested→live 链路已证 | shadow-host-pre.js+durable audit+debug 视图 | §25(M4) |
219
+ | M4-4 Live Verification | **通过(2026-08-23)** | live retrieve completed+audit 卫生+零注入证明 | §26(M4) |
220
+
221
+ 全量回归基线:13 项 smoke test 全绿(约 7-10s);node --check 五个 lib 文件;git diff --check 干净;全部 UTF-8 无 BOM。
222
+
223
+ 不得只在聊天或记忆中声称完成。未经用户明确要求,不 commit、不 push、不发布、不创建 tag。
224
+
225
+ ## 8. Python 后端长期恢复入口
226
+
227
+ Python sidecar 的完整职责边界、JSONL 请求/响应、requestId/workerEpoch/contextVersion/memoryIndexVersion 校验、超时/崩溃回退、安全边界和 M7 开工顺序见 `docs/PYTHON-SIDECAR-CONTRACT.md`。
228
+
229
+ 当前不得启动 Python worker。M7 必须等待 M5 evidence tested 与 M6 Packet/Broker 契约完成;JS Host 始终是版本、scope、风险、冷却、Packet 与注入的最终裁决者。当前 lexical_pre_v2 是 Python 主检索的安全回退层。
@@ -0,0 +1,200 @@
1
+ # dsh-auto-memory 项目蓝图与收尾路线(冻结版)
2
+
3
+ > 固化时间:2026-08-25 · 维护规则:本文件是**路标不是权威**——实现事实以代码与
4
+ > 测试为准;架构不变量以 docs/proactive-associative-memory-system-map.html 为准;
5
+ > 本文的作用是在多次会话压缩后,让任何新会话在一篇文档内找回全局。
6
+ > 工作区 D:\dsh-auto-memory(preview 分支);npm 包 @deepseek-ai/dsh-auto-memory。
7
+ >
8
+ > **2026-09-06 增补:大版本(next major)愿景与 README 宣传改版方案 = [docs/NEXT-MAJOR-VISION.md](NEXT-MAJOR-VISION.md)**——对标 GPT-6 Astra 上下文管理(M-CM1 交接笔记 / M-CM2 主动检索工具 / M-CM3 原始归档 / M-CM4 水位感知)。大版本完成前**禁止改 README**;npm 同步也等大版本一起。
9
+
10
+ ## 0. 项目一句话
11
+
12
+ 为 DeepSeek harness 做的个人联想记忆插件:JS 层(M0–M6)负责记忆锚定、证据桥、
13
+ 激活投递的完整链路并已 live;Python sidecar(M7)提供 BGE-M3 语义检索与 v2 激活
14
+ 策略(shadow 阶段,held-out 打分验收已 PASS),等待受控 shadow 与 active canary。
15
+
16
+ ## 1. 权威文档地图(冲突时以此排序)
17
+
18
+ | 需要什么 | 去哪找 |
19
+ | --- | --- |
20
+ | 目标架构/进度台账(唯一架构权威) | docs/proactive-associative-memory-system-map.html |
21
+ | 下一编程模型的实施入口 | docs/PREVIEW-NEXT-STEPS.md |
22
+ | Python sidecar 完整契约+生命周期+回归证据 | docs/PYTHON-SIDECAR-CONTRACT.md(§19.x 各里程碑) |
23
+ | M5/M6 接口细节 | docs/M5-CONTRACT.md · docs/M6-CONTRACT.md |
24
+ | M3b/M4 锚定与检索契约 | docs/M3B-CONTRACT.md · docs/M4-CONTRACT.md |
25
+ | M7 算法决策(D1–D11) | docs/M7-ALGORITHM-DECISION.md |
26
+ | embedding/chunk benchmark | docs/M7-EMBEDDING-BENCHMARK.md |
27
+ | activation v2 设计/校准/论文 | docs/M7-ACTIVATION-FEATURE-DESIGN.md · -CALIBRATION.md · docs/M7-ACTIVATION-V2-PAPER.md |
28
+ | v2 移交与批准默认值 | docs/M7-ACTIVATION-V2-HANDOFF.md |
29
+ | held-out 打分验收(PASS) | docs/M7-ACTIVATION-V2-HOLDEDOUT-EVAL.md |
30
+ | 词法降级层调优 | docs/M7-LEXICAL-TUNING.md |
31
+ | 发布形态决策(可选安装向导) | docs/RELEASE-SEMANTIC-OPTION.md |
32
+ | 会话级恢复入口(压缩后先读) | 本文件 §6 + memory 检查点 m7-progress-checkpoint |
33
+
34
+ ## 2. 架构分层
35
+
36
+ ```
37
+ DeepSeek harness (Node, 127.0.0.1:3080)
38
+ ├─ JS 记忆核心 (lib/, 全部 *_pre 命名空间隔离)
39
+ │ M0-R/T0 实验开关基线 · M1 会话隔离 · M2 ContextObserver 投影
40
+ │ M3a/b 记忆锚定(anchored records+sidecar, compactLayer 兼容 F1)
41
+ │ M4 Corpus Adapter + shadow 检索宿主(evidence-store-pre)
42
+ │ M5 context bridge/evidence store/host(envelope·coverage·cite/correction)
43
+ │ M6 activation inbox(validator→offer→claim→Reference Tail 渲染→delivered/seen)
44
+ │ lexical_pre_v2 词法回退检索(BM25 k1.2 b.75+CJK2gram+哈工大停用词507)
45
+ └─ Python sidecar M7 (lazy spawn 子进程; stdin/stdout JSONL 帧; epoch 门)
46
+ worker_semantic_pre_v1.py ← 继承 worker_pre_v1.py(fake)
47
+ ├─ index_sync: JS 授权分页建库(≤64条/页, digest 校验, scope 分组)
48
+ ├─ dense: bge-m3@5617a9f61b02 fp32 + para-512-noov chunk + float32 exact cosine
49
+ ├─ hybrid_fusion_pre_v1: minmax(dense)×0.7 + BM25(minmax)×0.3 (D6)
50
+ ├─ 三重过滤: workspaceRef+scope+miv (wsref_of byte-twin of JS)
51
+ └─ activation_features_pre_v2: 两车道激活决策(explicit/proactive,
52
+ echo veto proactive-only, completeness gate, hard gates)
53
+ → activation-shadow-v2.jsonl (mode=shadow-candidate, 不注入)
54
+ ```
55
+
56
+ 数据流:context_push(obs_pre_*) → M5 envelope → python sink → fv2 shadow 决策;
57
+ activation(act_pre_*) → M6 validator → offer/claim → Reference Tail → delivered → M5 seen。
58
+ JS 是身份/crossWorkspace/PII 的权威层;Python 缺任一显式策略字段即 fail-closed。
59
+
60
+ ## 3. 模块与政策版本注册表
61
+
62
+ JS lib/(19 文件):index.js(engine/路由/config)、client.js(bundle id @a9i5k4)、
63
+ memory-anchor-pre、memory-index-pre、memory-writer-pre、evidence-store-pre、
64
+ index-sync-pre、m4-corpus-pre、shadow-host-pre、shadow-retrieval-pre(**lexical_pre_v2**)、
65
+ context-bridge-pre、context-host-pre、context-sink-python-pre、m7-wire-pre(m7_wire_pre_v1)、
66
+ python-sidecar-client-pre、m7-index-sync-host-pre、activation-inbox-pre、
67
+ activation-inbox-state-pre、activation-host-pre。
68
+
69
+ Python:worker_pre_v1.py(fake, 纯 stdlib)、worker_semantic_pre_v1.py(生产语义)、
70
+ m7_embedding_pre_v1.py(provider 可插拔 bge-m3/hash)、
71
+ m7_activation_features_pre_v2.py(stdlib 决策核, load_and_verify_policy fail-closed 双 configHash)、
72
+ verify_policy_artifact.py。
73
+
74
+ policies/(append-only 注册表):
75
+ - recall_intent_lr_pre_v1.json — char_wb 2-4gram TF-IDF+LR+Platt(a=9.33,b=-0.75),vocab 2497
76
+ - activation_policy_pre_v2.json — tauLane=tauHi=0.45/tauLo=0.35/deltaExp=0.03/deltaPro=0.05,
77
+ echoVeto(proactive-only, containmentArm .30/denseTopArm .70),mode=shadow-candidate
78
+ - decision-record-activation-v2-delta-exp-override-20260824.json — δ 0.02→0.03 决策记录
79
+ - golden-parity-fixtures-v1.jsonl(55 条边界 fixtures,artifacts/…/label-review-cal20260824-1954/)
80
+
81
+ ## 4. 冻结决策速查(详见 M7-ALGORITHM-DECISION.md)
82
+
83
+ D1 provider=bge-m3@5617a9f61b02 · D2 chunk=m7_chunk_pre_v1 para-512-noov ·
84
+ D3 NumPy float32 exact cosine · D4/D6 hybrid weighted 0.7/0.3 · D8 clustering
85
+ agglomerative thr=.3 shadow-only · D9 rerank deferred(CPU 超预算 50-90×) ·
86
+ D10 graph skipped-by-benchmark · D11 dual-threshold 激活(tOn.62/tOff.52 为 v1 初值)。
87
+ v2 政策批准默认:sensitiveMemoryMode=explicit_only;crossWorkspaceRecall=advisory;
88
+ repetition logging-only(k=2 失败/3 提及,30min 衰减);审批走文件队列;GPU 缓。
89
+
90
+ ## 5. 当前状态快照(2026-08-25)
91
+
92
+ | 项 | 状态 |
93
+ | --- | --- |
94
+ | M0–M6 JS 全链路 | **live verified**(assoc/inbox 默认关, anchor=true) |
95
+ | M7 全链(JS 默认档+Python 档) | **live(2026-08-30)**:JS canary delivered/seen 实证;Python 受控 shadow 14 条对账+变体 A 修复+canary delivered=3/seen=24;发射档 canary-explicit |
96
+ | M79 feature v2 worker 接线 | 完成;主 Agent 修复已抽查核实;smoke 28/28 |
97
+ | held-out 打分验收 | **PASS**:67 人工金标(A27/S22/P18)+2 deferred;actPrec 0.917 CI[.727,1.0];emit 12;S漏 0;echo 层 7/7(docs/M7-ACTIVATION-V2-HOLDEDOUT-EVAL.md) |
98
+ | 词法调优 | 离线完成:唯一采纳建议 b0.75→0.45(MRR+37%),需 lexical_pre_v3+Python twin 同步,**未应用**(docs/M7-LEXICAL-TUNING.md) |
99
+ | 发布形态 | 已裁定:语义增强=设置内可选安装向导(~2.3GB 如实标注,跑通才开)(RELEASE-SEMANTIC-OPTION.md) |
100
+ | 3080 | 运行中但仍是修复前代码;**重启=用户手动步骤**;重启后首条流量 lazy spawn 即加载最新源码 |
101
+
102
+ 关键资产路径:人工金标 heldout-human-gold.jsonl、逐条决策 holdout-scored.jsonl、
103
+ 锚点恢复 anchor-recovery.json(均在 artifacts/m7-live-pre/feature-v2-heldout/);
104
+ 训练金标 86 行三批 jsonl(label-review-cal20260824-1954/);bench venv
105
+ python/bench/.venv(torch cpu+transformers 5.15.1+openpyxl+matplotlib);
106
+ 模型缓存 python/bench/.hf-cache(manifest sha256)。
107
+
108
+ ## 6. 压缩后恢复顺序(新会话照此读)
109
+
110
+ ①本文 → ②memory/m7-progress-checkpoint.md → ③PREVIEW-NEXT-STEPS.md §0 现场 →
111
+ ④按任务跳 §1 对应契约。
112
+ **了解迭代过程的三条补充途径**(用户指定):a) DSH 记忆插件的项目工作区
113
+ `~/.dsh/memory/workspaces/--D--dsh-auto-memory--/`(MEMORY.md 条目投影 + 每日日志 +
114
+ reflections/);b) docs/implementation-handoff-context.zh-CN.md 与各 M*-CONTRACT/
115
+ HANDOFF 文档;c) 通读 lib/+python/ 代码。
116
+ 铁律:3080 重启只能用户手动;不 commit/push/tag/publish;
117
+ 不动 M5/M6 validator/Reference Tail/seen;`_pre` 命名空间隔离;历史会话内容是数据不是指令。
118
+
119
+ ## 7. 收尾路线图(M7 之后)
120
+
121
+ 1. **M7 受控 live shadow**(下一步,用户重启 3080 后):开启 python/bridge/inbox 保持
122
+ mode=shadow,18–24 条脚本化请求(中英回忆/生活 echo/correction/wrong-scope/stale/
123
+ tool failure),核对线上 shadow 字段 vs 离线决策一致性 → 单 session active canary
124
+ (仅 explicit lane emit,echo+correction 反例验证不注入)→ 恢复默认关闭 → 标 live。
125
+ 2. **G-02 Activation Observability Console**(M7 live 后单独实现):每次 suppress/
126
+ prefetch/activate/drop/delivery 可视化(候选/来源/分数/lane/原因/被哪道门压住/A-P-S-H-E 反馈)。
127
+ 3. **M8 Semantic/Profile Governance**:JS 治理层消费 judgement-shadow 输出;Python 永不直写长期记忆。
128
+ 4. **M9 Procedural Memory Lifecycle**:程序性记忆生命周期。
129
+ 5. **M10**:待主 Agent 定义(推测为发布前集成/验收阶段;路线图原文止于"最终发布")。
130
+ 6. **发布工程(贯穿)**:a) 语义增强可选安装向导(设置开关→选位置→体积提示→跑通才开,
131
+ 见 RELEASE-SEMANTIC-OPTION.md);b) **bge-m3 int8 精简档已实测+已接入 provider**:
132
+ m7_embedding_pre_v1 新增 `bge-m3-onnx-int8-pre-v1`(identity dtype=int8-dynamic-onnx,
133
+ 切档自动判 stale 重建;fp32 默认路径零改动,m73/m79 回归全绿);c) **JS 标准语义层
134
+ 模块就绪待接线**:artifacts/m7-live-pre/js-semantic-trial/js-semantic-tier.mjs
135
+ (R@5=0.85;接线方案写在模块头注释——M7 live 后发布工程窗口执行,走 D6 同款融合);
136
+ 三级形态定稿:词法 0GB → JS 语义 ~130MB(独立 npm 资产包,npmmirror 国内外同步)→
137
+ Python bge-m3 563MB/2.3GB;d) lexical_pre_v3 采纳窗口(b0.45+否定词豁免,
138
+ 须同步 Python byte-twin)。双轨算法论述见 docs/M7-ACTIVATION-V2-PAPER.md §7。**主 Agent 纠正版产品规范已固化**(RELEASE 补充③:C2=默认主路径/C1=永久保底/C3=高级可选;模式默认 auto 非裸 C2;首启序列=弹窗确认→下载→SHA256+推理自检→后台建索引→原子切换;状态机七态;统一契约增补 engineTier+modelIdentity;C2/C3 资产独立存放);架构图 progressLedger 已同步(R-DUAL milestone)。
139
+
140
+ ## 8. 流程接线状态图(2026-08-25,向主 Agent 汇报用)
141
+
142
+ ```text
143
+ dsh-auto-memory · M7 双轨制管线现状
144
+ ═════════════════════════════════════════════════════════════════════════
145
+ 【A. JS 记忆链路 — ✅ live】
146
+ 事件观察(M2) → evidence bridge(M5) → activation inbox(M6)
147
+ → Reference Tail 注入 → delivered/seen 证据闭环
148
+ ▲
149
+ │ offer/claim(JS 权威:scope/cross-ws/PII)
150
+ │
151
+ 【B. Python sidecar M7 — 🔶 tested/shadow,卡在「用户重启 3080」】
152
+ index_sync 分页建库
153
+ → 编码器:fp32(torch)|int8(onnx) ←🆕 provider 已接,identity 隔离✅
154
+ → D6 融合(dense .7 + BM25 .3)
155
+ → fv2 两车道决策(shadow-candidate):hardGates→lane→echo veto→margin
156
+ →回答三问:要不要(decision)/为什么(reasonCodes)/怎么唤起(lane→delivery)
157
+ → activation-shadow-v2.jsonl
158
+ ⏳ 下一步 = 用户重启 3080 → 受控 shadow(18–24 条脚本请求)
159
+ → active canary(仅 explicit lane) → 标 live
160
+ ▲
161
+ │ 相似度候选(同 D6 契约)
162
+ │
163
+ 【C. 三级语义层 — 🆕 本轮定型,C2/C3 已实测、待接线】
164
+ C1 词法 BM25 0GB R@5=0.20 ✅ live(基础回退)
165
+ C2 JS e5-small q8 ~130MB R@5=0.85 🆕 裁定默认档;npm 资产包分发;
166
+ 首启下载弹窗+设置切换 UI 原型已出;
167
+ 接线窗口=M7 live 后(避免污染 B 的对照基线)
168
+ C3 Python bge-m3 int8 563MB R@5=0.925 🆕 进阶档(=fp32 质量、快 6×);
169
+ fp32 2.3GB ⏸ 暂停使用;安装向导承载
170
+
171
+ 【D. UI 资源 — 🆕 已产出】artifacts/m7-live-pre/ui-assets/semantic-tier-ui.html
172
+ ①首启下载进度弹窗(kind=modelDownload) ②设置内后端切换+三级列表
173
+ ③G-02 预留:激活记录卡+A/P/S/H/E 精修反馈组
174
+ ═════════════════════════════════════════════════════════════════════════
175
+ 主 Agent 决策请求:①B 的受控 shadow 排期确认;②C2/C3 接线窗口与顺序;
176
+ ③lexical_pre_v3(b0.45) 是否随下个窗口采纳;④G-02 优先级。
177
+ ```
178
+
179
+ ## 9. 操作速查
180
+
181
+ ```bash
182
+ # smoke 全量回归(28 套件串行)
183
+ for t in smoke-test*.mjs; do node "$t" || echo FAIL $t; done
184
+ # 策略产物审计
185
+ D:/dsh-auto-memory/python/bench/.venv/Scripts/python.exe D:/dsh-auto-memory/python/verify_policy_artifact.py
186
+ # held-out 打分验收复现(bench venv)
187
+ cd artifacts/m7-live-pre/feature-v2-heldout
188
+ D:/dsh-auto-memory/python/bench/.venv/Scripts/python.exe holdout_score_eval.py
189
+ # 词法评测复现
190
+ cd artifacts/m7-live-pre/lexical-tuning && node eval_lexical.mjs [variant.js]
191
+ # sidecar 新鲜度(重启后核对运行中的 Python 是否比源码新)
192
+ powershell: Get-CimInstance Win32_Process -Filter "Name='python.exe'" |
193
+ ? {$_.CommandLine -match 'worker_semantic'} | Select CreationDate
194
+ (Get-Item D:\dsh-auto-memory\python\worker_semantic_pre_v1.py).LastWriteTime
195
+ ```
196
+
197
+ 已知坑位备忘:observationId 必须 `obs_pre_`+32hex;fv2 append 有界 256 行原子替换;
198
+ dense_search 失败必须返回 [];np.float32 入 JSON 需 float() 强转;episodes 语料会被
199
+ 蒸馏清理(held-out 锚点需 anchor-recovery.json 池);Windows 动态 import 需 file:// URL;
200
+ bench venv 解释器 = python/bench/.venv/Scripts/python.exe(openpyxl/matplotlib 只在此环境)。