Files
zhoutianyi 9d4d49ff3b wip(recovery): 候选版本择优 + 重建损伤归一化
两处让重建质量明显变好的修正:

1. **按 worktree 根区分事件**。`ds/NN-*` 的功能分支各有独立 worktree,同一个
   相对路径在不同 worktree 里是不同阶段的版本;混成一条时间线会让早期分支的
   读取盖掉正式版(`bin/distilly.mjs` 一度只剩 71 行的脚手架)。现在时间线以
   集成分支 `/tmp/dst` 为准,功能分支只在它没有记录时兜底。

2. **候选版本择优**。时间线依赖 write/edit 事件的完整性,而很多文件是靠未记录的
   bash 改动推进的,时间线会倒退。改成收集每个路径的**全部候选**(所有 worktree),
   归一化后取「语法有效且最完整」的那一个 —— 源码在开发中只会变长。

「归一化」把两类重建损伤在校验前修掉,否则最好但受了伤的版本会因语法无效落选:
- 块注释续行里的 `*\/` 少了反斜杠(会提前结束注释)
- Python 风格的命名捕获组 `(?P<name>…)`

人工修复脚本 `manual-repairs.mjs` 保留:`anchors.mjs` 的 `buildSubAnchors` 从会话
2026-09-12T18:07 的 write 记录里逐字取回。

现状:184 个 distilly 文件全部语法通过;`node --test` 220 个测试,105 pass / 115 fail
(此前 99/121)。剩余失败集中在少数仍是早期版本的模块,需要按测试重写。
2026-09-15 13:46:10 +08:00
..