# 改进项状态板（2026-09-09 23:30 · 供发版决策）

> 每一项都按**代码/提交**核实，不采信汇报。图例：✅ 已交付并验证 · ⏸ 待观察 · ❌ 未做 · ⊘ 明确不采纳

## 0. 总账

| 状态 | 数量 | 是否阻塞发版 |
|---|---|---|
| ✅ 已交付并验证 | **19** | 否 |
| ⏸ 待观察（需真实数据） | 2 | 否 |
| ❌ 未做（增强 / 独立项目） | 8 | 否 |
| ⊘ 明确不采纳 | 1 | — |
| **唯一阻塞项** | **工作区 2 个未提交文件** | **是** |

---

## 1. 分层语义唤回（OpenViking 模式落地）

| 项 | 状态 | 提交 | 实证 |
|---|---|---|---|
| L0 抽取（T1） | ✅ | `e736dfe` | 153 条真实数据，L0 平均 93 字符，压缩 6.78:1，0 条空 |
| L0 向量索引（P1） | ✅ | `1674fb6` | 增量更新，失效可移除，fail-soft |
| 语义臂接入 recall（P2） | ✅ | `e50bd9b` | C2 打 L0，词法臂零改动 |
| rank-space 融合（P3） | ✅ | `c917bbe` | `rrf_fusion_pre_v1`，与 `fuseD6Pre` 并存 |
| **RRF 接线进 recall（P8）** | ✅ | `ff36484` | 替换字典序排序；默认 `rrf`，`legacy` 回退 |
| 返回 L0 + 按需展开（P4） | ✅ | `1947cae` | 默认 L0 列表，expand 复用字节区间定位，实测压缩 1:10.8 |
| 词法臂保留打全文 | ✅ | 既有 | 错误码/变量名在 L0 里没有，必须保留 |

**这条线已全通。** 唯一未做的是「时间检索臂」与「倒排索引」（见 §5）。

## 2. 接续优化（跨窗口交接）

| 项 | 状态 | 提交 | 实证 |
|---|---|---|---|
| 接续指令改为"按需取用"（G1/G3） | ✅ | `2a61c3b` | 去掉"接续前必须先 read"，改两段文案 |
| 接续锚点表（P5） | ✅ | `2a61c3b` | carryText 携带条目地图供下钻，字节稳定 |
| 账本权重化截断（P6） | ✅ | `7285675` | 四段赋权（失败原因 .35 ＞ 下一步 .30 ＞ 目标 .20 ＞ 状态 .15），从最低权重段起截 |
| 写入侧修复（P7） | ✅ | `6d66f1d` | 账本双标题 + 白板老化 |
| 水位 pre-step + 宿主兜底 | ✅ | `c4912f4` / `0107d73` | 抢在官方 80% 压缩前；不依赖浏览器页面 |

## 3. M8 三层记忆系统

| 项 | 状态 | 提交 | 实证 |
|---|---|---|---|
| Fact 元数据（时间三价 + 认识论 + 趋势） | ✅ | `9c75f3f` | 向后兼容，旧 `facts.json` 可读 |
| importance 纯核心 | ✅ | `311e2e8` | correction 负向、缺省中性 |
| evidence → importance 管道（M8-2b） | ✅ | `344af80` | 1268 事件 → 148 memoryId，importance∈[0.30,0.65] |
| P0 静默失效修复 | ✅ | `4d54664` | `readdirSync` 未导入 → 补导入 + diag |
| M8 默认启用 + live 验证 | ✅ | `007edf9` / `da2193f` | 端点 200、三层落盘、restore 正常 |

## 4. 证据链（P9 系列）

| 项 | 状态 | 提交 | 实证 |
|---|---|---|---|
| 覆盖率排查（P9） | ✅ | 报告 | 实测 5787 事件，六类分布 + 理想触发场景清单 |
| correction 归因修复（P9a） | ✅ | `cc9a7a7` | 26 断言，真实 host 实例 + 磁盘投影 JSONL |
| success 时间戳修复（P9d） | ✅ | `48fa943` | 13 断言，含"修复前同夹具返回 0"的回归证明 |
| success 分布观察（P9b） | ⏸ | — | 需跑一周；**属标定，非正确性** |
| reuse 生产者（P9c） | ❌ 延后 | — | 确认无生产者；与 success 同属一个饱和项 |

## 5. 未做（全部为增强，零阻塞）

| 项 | 状态 | 说明 |
|---|---|---|
| P10 效应定标 | ⏸ | 待 success/reuse/correction 有真实数据后标定 `IMPORTANCE_WEIGHTS` + `w` |
| P11 静默 catch 统一可观测 | ❌ | **实测仍有 14 处空 catch**（eRrf/eL0Sem/eAnchor/eArm/eFs/eL/eLedW/eMeter/eReg/eS/eSem/eWL/eWin/err）；prompt 已写好未投喂 |
| 无人值守核待 | ❌ | 配置键存在（`unattendedMode` / `unattendedAuto` / `unattendedAutoHours` / `awayMinutes`），**设置页 UI 未核实** |
| 鸿蒙适配 | ❌ | 独立项目，未启动 |
| 召回提醒强度 A/B | ❌ | 未做 |
| 科学性 S1（基准/消融） | ❌ | 未做 |
| token 账本 | ❌ | 未做 |
| 时间检索臂 / 倒排索引 | ❌ | 未做 |
| **QueryPlan 字典序截断（P12）** | ❌ | **规划侧先前误判为"影子评估通路"——已更正：它是生产路径**。见 §5.1 |
| OpenViking α=0.5 父分数传播 | ⊘ | 本地无深目录树，明确不采纳 |

---

### 5.1 QueryPlan 字典序截断（P12）— 更正与评估

**规划侧更正**：先前称其"属 M4 影子评估通路、不影响生产"是**错的**。实测 `lib\context-host-pre.js:27` 导入 `buildQueryPlan` / `lexicalSearch`，并在 `:321-323` 以 `mode:'prefetch'` 调用 ⇒ **这是主动联想（预取）的生产路径**。

**缺陷**：`buildQueryPlan` 内排序仅为确定性（按 term 字典序），随后截断取前 `queryTerms=32`（`:246-250`）。而每个词都带 `weight`（`:223`：trigger 1.0 ＞ recent-user 0.8 ＞ tool-result 0.6 ＞ reasoning 0.5 ＞ tool-call 0.4 ＞ assistant 0.2）⇒ **保留的是字母靠前的词，与重要性无关**；权重 1.0 的 trigger 词可能被丢，权重 0.2 的 assistant 词反而留下。

**严重度：中**。非崩溃、非数据错误；但影响核心卖点（主动联想召回集）。触发不罕见（窗口 8 段 / 4096 字符，易超 32 词）。

**是否阻塞发版：否**。理由：① 这是**既有状态**，非本次引入的回归；② 只影响质量不影响正确性；③ 修复会改变 `queryDigest` ⇒ `smoke-test-m4-pre.mjs` 有 2 处断言需更新（fixture 变更），发版前动核心召回路径风险收益比不划算。

**一轮可修**：见 `docs/prompts/FIX-AGENT-P12.md`（改为 weight 降序 + 字典序 tiebreak，约 5-10 行 + 断言）。建议**下一版第一项**；若你选择发版前修，投喂该段即可（约 30-60 分钟含全套回归）。

---

---

## 8. 待办项近期优先级建议（规划侧意见）

### 立刻做（本版或紧随）

| 序 | 项 | 理由 | 成本 |
|---|---|---|---|
| 1 | **P12 QueryPlan 截断** | 已决定现在修；影响主动联想（核心卖点） | 低 |
| 2 | **P11 静默 catch（14 处）** | **它不修一个现存 bug，而是决定"下次出 P0 能不能被发现"** —— M8-2b 的 P0 正是因为静默 catch 藏了一整天。风险极低（只加日志不改控制流）。建议**只改记忆/检索/接续链路那一批**（eRrf / eSem / eAnchor / eArm / eL / eFs 等），不必全仓 14 处都动 | 极低 |
| 3 | **无人值守 UI 核对** | 不是功能价值，是**对外 GitHub issue 承诺还挂着**。十分钟可完成 | 极低 |

### 下一版（2.2.8）值得做

| 序 | 项 | 理由 |
|---|---|---|
| 4 | **token 账本** | 观测性改动，是"对外可引用数字"的**唯一来源**。要写 README 数据或发论文必须有它 |
| 5 | **时间检索臂** | **用户已定为本版优先**。prompt 已备 `FIX-AGENT-TEMPORAL-ARM.md`（Phase 1：时间表达解析 + 软性第三臂，不接 facts） |

### 看规模再定

| 序 | 项 | 理由 |
|---|---|---|
| 6 | 倒排索引 | 纯性能。当前几百条记忆、每查全量 tokenize 512 条，感知不强；记忆上千条后才有感 |

### 排后面 / 需外部条件

| 序 | 项 | 理由 |
|---|---|---|
| 7 | 科学性 S1（基准 + 消融） | 成本高，服务于论文与对外可信度。**除非近期要发文，否则不必做** |
| 8 | 召回 A/B 实验 | 需要真实使用样本才有效，当前无数据，做了也是空跑 |
| 9 | 鸿蒙适配 | 独立项目，与主线无关，除非近期要用 |

---

## 6. 评判依据：为什么未做项都不阻塞

1. **新能力全是渐进增强**，最坏情况回到"没有 importance / 纯词法 recall"的旧状态，**不会比现状更差**。
2. **正确性已被离线实证**：P9a 用真实 host 实例 + 磁盘投影 JSONL，P9d 有"修复前返回 0"的回归证明——不需要等自然数据。
3. **一周观察是标定用的**（P10 权重），不是验证正确性用的。
4. 字典序截断位于**影子评估通路**，不影响生产路径。

## 7. 结论与建议

**建议：发版。** 只需两步：

1. 处理工作区两个未提交文件（`lib/index.js` +11/-5、`lib/python-setup-pre.js` +16/-4，均为真实 bug 修复，建议带上先 commit）
2. 跑 live 冒烟，**时间紧就只做 B3**：用 `memory_recall_pre` 查一个**词法不重合但语义相关**的查询，能召回即证明 P8 融合生效

**No-Go 条件**：B3 失败但切回 `legacy` 正常 → P8 排序回归，暂缓。

**发版后**：跑一周真实分布 → 决定是否放宽 success 窗口 → P10 定标 → 下一版。

**changelog 措辞**：可写「分层语义召回」「记忆重要性权重（跨会话重现度）」「修正 evidence 时间戳与 correction 归因缺陷」；**不要写**「按有用性排序」——success/reuse 尚无真实数据。

> 详细清单见 `docs/RELEASE-GO-NOGO.md`。
