无。
| # | 问题 | 位置 | 探针证据 | 源报告 |
|---|---|---|---|---|
| R1 | goto 回退×进行中批次 → 孤儿批次 + 定稿章号静默断档:定稿 1-3、stage 4、goto 2 后 finalizeBatch 照跑,定稿变 [1,2,4] 缺 3;条目履历跨缺口 | flows/goto-chapter.js(零批次感知)+ staging/index.js finalizeBatch(无连续性校验) | P-1:定稿=[1,2,4] |
E1/D2 |
| R2 | 手动 finalize 已暂存章 → 叠加双计 + finalize-batch 卡死:手动定稿 staged 章成功,overlay 总章数双计;finalizeBatch 撞 createThread「已存在」整批卡住 | commands/finalize.js(无批次守卫) | P-2:finalizeBatch.ok=false 条目 伏笔-201 已存在 |
E2 |
| R3 | persistRepair 一刀切 front matter 校验 → book.yaml/名册/时间线坏了锁死在序 0:合法修复内容被「缺少 front matter 分隔符」拒绝,工具内无法自愈 | state-machine/persist.js:123 | P-3:合法 book.yaml 修复被拒 | D1 |
| R4 | finalize 清工作区遇目录 → 已 commit 却报失败,文案谎称「已回滚、工作区原样保留」(commit 在 git log 里),且英文机器味泄漏;宿主重试会二次定稿 | finalize/index.js:142-144(fs.rm 无 recursive 无 try) | P-7b:ok=false 但 ch(1) commit 在 |
C1(探针后升 P1) |
| R5 | 迁移书角色全不可见:migrate 名册写中文「角色」,全链按英文 'character' 过滤(list-characters/审稿名册/近况/report) |
migrate/transform.js vs rebuilder/各查询 | P-5:entities.type=[角色,地点],list-characters 不含江遥 |
G2 |
| R6 | 别名分隔三源分裂:名册用全角逗号/顿号分隔的别名 resolveAlias 全 MISS(EntityReader/rebuilder 只切 ASCII ,,staging 切 [,,、]) |
EntityReader.js:87、rebuilder.js:262、staging/index.js:220 | P-6:三别名全 MISS | A5 |
| R7 | 防呆序列化器漏引:空串→null、前后空格被裁、0x1F/1e3/+5/~ 变数字/null;[ * & " -空格 起首值整份 front matter 解析炸 → 该章/卡静默不入缓存 |
serializers/yaml-dialect.js:79-121 | A/F 双区独立复现(DRIFT/PARSEFAIL 表) | A1+F-2 |
| R8 | 双引号分支不转义反斜杠:值含 \+触发引号(Windows 路径)→ 解析失败整文件读不回 |
serializers/yaml-dialect.js:65-71 | A 区复现 PARSEFAIL | A2 |
| R9 | book.yaml 手写拼接绕开序列化器:书名 [快穿]反派/*追读/纯数字 → 解析失败/类型漂移 → 书内设置回落默认、books.jsonl 扫描重建时该书从书单消失 |
migrate/transform.js:41-48 | F 区 A 组探针表 | F-1 |
| R10 | v6 一对多别名 → 迁移整体硬回滚无绕过:含歧义别名的合法 v6 项目迁不进来(名册重复别名 → rebuild 判冲突 → ROLLBACK → throw) | migrate/read-v6.js + transform.js | F 区 B 组探针 | F-3 |
| R11 | 表格序列化不转义 \|:别名「刀疤|老王」读回只剩「刀疤」,静默丢数据 |
serializers/markdown-table.js:10 | A 区复现 | A4 |
| # | 问题 | 位置 | 说明 |
|---|---|---|---|
| R12 | atomic 出错回滚删掉未备份原文:writeFile(tmp)/rename(full→backup) 先失败时 existed=false,restorePlan 误删从未动过的原文(Windows 长路径/文件占用触发) |
storage/atomic.js:27-66 | 覆盖写场景(细纲/大纲)丢原文;建议修复时附故障注入回归测试 |
| 表格整表解析失败静默变空(A7);GFM \| 不识别、多余列静默截断(A8);upsert 整行替换丢作者额外列(A11)。伏笔-1 命中 伏笔-10-*.md。..(C2/G-4,与 stage-chapter 守卫不一致)。内层 catch 架空重建事务意图(B-S,结构性);批次.json 持久形态与 §8.1 声明字段漂移(E7);弱钩谓词四处双写(E8);停止判据 front matter vs payload 可分叉(E9,契约提示);extractUnknownFields 死代码(A14);readRange 死代码+契约错位(A15);book-config 死校验(A16);appendUnderSection 子串匹配偏脆(A17);migration-guide 不发布不 vendored 用户不可达(G-5);--help「41 个」硬编码计数(G-8);名册「类型」列取值无约定(G-3,R5 的规范面)。
vol(NN) commit(persist.js:104)、六处改源自刷缓存(finalize/goto/retcon/卷复盘/修复回写/relink,主会话独立 grep 与 D 区双验证)、relink 执行通道——在位 ✓(覆盖面缺口见 P2「文风/book.yaml 不在 relink 范围」→ 记 D 区候选 3)薄壳契约全合规、bin cache.close 全分支、SQL 全参数化、六改源全刷缓存、体检只吃定稿、无批次零行为变化、finalize-batch 入口硬校验/升序原子/中途保留、export/migrate 接力面表头逐一对得上、drift 确定性、migration-guide 与实现一致。
rm(recursive:true) + 包 try 只记 warning(commit 后的清理失败不得改写 ok);yaml-dialect needsQuoting 补指示符/空串/空格/数字变体 + 转义反斜杠;atomic existed 时序修正。