v4.0.0
dsh-novel-writer v4.0.0
一次面向正确性与可用性的完整整修版本。 基于对 v3.9.5 的逐行审计(11 份报告、约 216 项问题),
累计修复 170 余处缺陷,并新增「系统提示词三档注入控制」。
四套自带测试由"假绿"升级为真实断言并全部通过;16 个工具在真实书库上端到端实测可用。
✨ 功能更新
1. 系统提示词三档开关(关闭 / 精简 / 完整)—— 新增
侧边栏「写作助手功能」首页新增三档分段开关,由用户主动决定插件向系统提示词注入多少内容:
| 档位 | 注入内容 | 实测长度 |
|---|---|---|
| 关闭 | 完全不注入(DSH 自动丢弃空段落) | 0 字符 |
| 精简(默认) | 一句话工具指引,细节交给 novel-writing 技能 | 134 字符 |
| 完整 | 完整写作工作流说明(原 v3.9.5 行为) | 2437 字符 |
- 采用 DSH 官方「动态 section」机制(text 为函数、返回空串即整段丢弃),改动下一轮对话即生效,无需重启;
- 档位随插件状态持久化,非法值自动回退「精简」,无状态文件时默认「精简」;
- 与「总开关」互不干扰:总开关管工具与句式分析,本开关只管提示词注入量。
2. 语义结果写回缓存
风格画像首次计算后,将语义隐性情感与歧义裁决结果连同全书内容指纹写入分析缓存,
二次调用由 4834ms 降至 6ms(约 805×)。
3. 风格锚包全书等距抽样
原著代表性段落与句式骨架改为全书均匀取样(旧版仅取开头),条数契约不变,中后段文风样本不再缺失。
4. 段落结构新增「叙述」桶
新增 paragraphs.narrationOnly,使 对话 / 心理 / 混合 / 叙述 四类合计恒等于总段数,结构统计不再有缺口。
🐞 缺陷修复(按严重度由高到低)
致命缺陷(会直接产出错误结果)
- 情感否定误判:否定词表把「别」当否定词,导致「特别高兴 / 特别害怕」等被整词丢弃(joy 0 → 1.5)。
- 祈使句判定误伤:裸 /吧/ 与硬词表缺少边界,酒吧、别人、马上、快乐、滚烫等被误判为祈使,污染全部句式分布与六维基线。
- 情感曲线伪造全零段:25 段文本切 20 段时尾部出现 7 个 intensity=0 的假"平缓段"。
- novel_settings 列表永远显示人物卡:渲染未按 category 取表。
- brief 报告输出「推荐容差 undefined%」并谎报六维 μ=0。
- findChapter 子串回退读错章:findChapter("1") 不再命中第 10/11/12 章。
- 章节号解析不一致:书名-01 / 书名 07 / 第一千零一章 均可正确解析(1 / 7 / 1001)。
- 嵌入降采样维度与落盘声明脱钩:非 512 维输入导致缓存被判损坏、每次全量重建。
- 组合情感标签 3/7 永不命中:「又爱又恨 / 哀怒交加 / 惊喜交加」恢复可达。
- String.replace 替换串未转义:设定与钩子文本含 $& 时不再破坏文件。
- baseline: null 违反输出 schema:避免宿主拒绝整次调用。
- 数字口径两两配对:候选由 N(N-1)/2 条垃圾降为「同值不同写法」分组,并限 20 条。
- -0 触发宿主 lossless JSON 拒绝:工具不再出现「首次失败、重试成功」的随机故障。
- 浏览器端 rev 竞态:已关闭的开关不再被显示为「全部开启」。
- rawWriting 默认值三方不一致:工具不再谎报「非净化模式已开启」。
严重缺陷(统计口径与逻辑不自洽)
效价词表嵌套双计、隐性载体跨表重叠双计、implicit 单位混用、topWords 未做否定过滤、
chapterDrift 改按章计算、句长双口径对齐、截断采样口径统一、「不太高兴」极性修正、
烛火 fragile 标记生效、「震惊」原型补映射、题材联动门控改为内容证据驱动、单字词条参与计分、
容差 0/null 语义区分、留白指数量纲校准、DUTIR 兜底改为 2–4 字最长优先(3–4 字词命中 9/40 → 39/40)。
中等缺陷(死代码、性能与提示)
- 删除零调用函数、死分支、未使用导入/变量与恒真恒假条件;多余导出精简;
- 词表扫描 4 万字 32.7ms → 4.3ms;六维测量缓存章序无关;plot scan 预计算;
GET /state 改异步遍历;原型向量缓存 544ms → 1ms;嵌入张量改 subarray 8.24ms → 0.03ms; - 浏览器端 33 处(挂载守卫、宿主错误透传、观察器生命周期、createRoot 泄漏等);
- 测试由「假绿」升级为真实断言(unit 14 → 20 条并落退出码等);
- 发布流程修正:打包排除 node_modules(发布包体积 47MB → 约 17MB),并为分支推送与 PR 增加测试门禁。
🧪 验证
- 四套自带测试全部通过:unit 20/0、pattern、client、e2e;
- AST 全量静态扫描:0 语法错误、0 未定义引用;
- 16 个工具在真实书库端到端实测通过(自建短篇《雨夜灯》5 章 + 导入《孤舟》3 章);
- 三档开关实测:off = 0 字符 / brief = 134 字符 / full = 2437 字符(与旧版逐字节一致)。
📦 安装与升级
npm install dsh-novel-writer@4.0.0
# 或
dsh plugin --profile web add dsh-novel-writer升级注意:统计口径变更会导致旧缓存失效(analysis / 风格画像 / 语义索引在升级后首次调用时重建);
系统提示词默认档位为「精简」,需要完整工作流说明请在侧边栏首页切换到「完整」。