备份、升级与卸载
升级到 8.2.0#
8.2.0 新增直接编辑和行内 Agent 建议,新增确定性字数统计和契约篇幅约定,并修复旧书的世界书模块登记。继续配套 DSH 0.2.0-rc.2。从 8.0.x 或 8.1.x 升级时,不需要更换 DSH。
- 更新已经在用的插件。
- 重启 DSH。
- 把参考库和书房一起备份。 新界面见 编辑器教程。
旧项目需要更新作品契约#
升级之后,请为旧项目补充并确认“章节篇幅”约定,才能启用新的篇幅范围核对。升级插件不会替你决定每章写多少字,也不会重写原契约。未补充的项目仍可继续使用。脚本会显示“未配置”。不能据此宣布篇幅达标。
- 按下文备份完整书仓和 profile。
- 回到该书的主会话。
- 让主控读取现有
作品契约/契约.md,并与你确认目标和宽松区间。 - 保留“阅读体验与情绪承诺”的原有内容。
- 追加下面的三级子节。通过原来的
novel_update_contract更新该分部,并确认。 不要只用新子节覆盖整个分部。
### 章节篇幅
- 目标汉字数: 2000
- 下限汉字数: 1600
- 上限汉字数: 2400
上面只是两千字章节的示例。数值可以改。三项都是正整数,并且下限 ≤ 目标 ≤ 上限。其他说明放在相邻子节。正文汉字数含章标题,排除 frontmatter、候选事实、标点、空白和英文字母。使用脚本做实际统计。不要用模型估数。
可以直接对主控说:
请读取本书现有作品契约,保留全部已有约定,在“阅读体验与情绪承诺”里补充章节篇幅:目标 2000 汉字,范围 1600~2400。我确认这组数值,请通过契约更新工具保存;只更新契约,不改写现有章节。
- 对当前唯一的待审稿运行原来的确定性审读脚本。
成功时,
篇幅核对.约定.状态为“已配置”,数字与契约一致。 没有待审稿时,在下一次正常审读中核对即可。不要为了测试创建假稿。 - 契约变更之后,当前未定稿章的旧审读证据可能过期。沿原来的审读流程重新检查。 偏长或偏短进入“文本规范检查”的普通发现项。可以修改,也可以由作者保留。没有新的审核步骤,也不会自动裁稿。历史定稿不因此重写。
如果旧书曾因世界书模块声明缺失而停在世界构建,升级后重新读取并成功确认已有条目,就会自动补齐模块登记。不需要用通用文件工具修改声明。
检索和桌宠要一起更新吗#
本次四包采用统一发行号 8.2.0。推荐使用经过同批验证的版本组合。检索增强和桌宠这次没有新增功能,属于兼容版本同步。
桌宠在 npm 上的处理,不再阻塞主包、检索和完整版发布。如果暂时查不到新版桌宠,可以稍后再更新,或使用 Release 里已校验的独立桌宠安装包。不必为了等待桌宠而暂停写作组件的升级。
- 只用主包:更新主包即可。不必新增检索或桌宠。
- 使用 full:更新 full。它的主包和检索依赖一起更新。不要再重复安装单包入口。
- 单独安装了检索或桌宠:更新实际使用的组件。桌宠独立于 full。
- 混版本组合只有经过对应的兼容验证,才能承诺可用。不要从“这次没有功能变化”推断以后的版本都兼容。
旧包名迁移(8.0.0 起)#
8.0.0 起,旧的 webnovel-embedding-provider 更名为 @linfengqaqtat/dsh-scriptor-retrieval。旧的 @linfengqaqtat/dsh-whale-companion 更名为 @linfengqaqtat/dsh-scriptor-companion。所有新版安装包都是 8.2.0,使用 DSH 0.2.0-rc.2。
警告
不要同时启用旧包和新包。
- 先备份作品、profile 配置和凭据引用。
- 停止会话。
- 在 DSH 侧栏“插件”中卸载旧入口。
- 按提示重启。
- 再安装新入口。 成功时,只启用新入口。
自定义模块的 name 覆盖,要按 维护者迁移说明 更新。稳定的条目 id 和 config 保留。完整版与写作/检索单装二选一。
备份两类资产#
先停止相关实例,再分别备份。
- 工作区:书仓的全部文件、书仓
.git、草稿区,以及工作范围内的书房素材。书仓 Git 不能代替包含草稿和书房内容的完整备份。 - DSH home:profile 配置、设置,以及需要保留的会话。它可能包含凭据。备份应私下加密保管,不能提交到公共仓库。
记录主包、可选包、DSH 和 Node 的版本。
更新#
- 阅读目标版本的 Compatibility、已知问题和迁移说明。按 版本对应表 同时对齐 DSH 和插件。 安装插件不会自动更新全局 DSH。版本不符时,按 修复步骤 处理。
- 完成备份。停止指定 profile 的运行实例。
- 向同一个 profile 安装 npm 上的新精确版本,或下载并校验对应
.tgz后再安装。 - 重启。
- 检查书房入口和技能是否各有一份。核对实际书仓状态。先用合成副本试写。 成功时,书房可以打开,并且书仓状态与备份前的预期一致。
dsh plugin --profile scriptor add @linfengqaqtat/dsh-scriptor@8.2.0
dsh --profile scriptor --dump-config
上面展示的是命令写法。更新时换成实际的目标版本。
完整版安装使用 @linfengqaqtat/dsh-scriptor-full@8.2.0。不要在保留完整版时另外安装主包。从单装转到 full,按 切换步骤 操作。切回单装时,先停机并移除 full,再安装所需的单包。
回退#
代码回退和数据回退不是同一件事。如果目标版本改变了书仓格式,安装旧包不能自动还原已经迁移的数据。
警告
未提供迁移或回退证据时,不要在唯一原稿上尝试回退。
- 停止实例。
- 保存故障现场。
- 按发行说明,使用兼容的旧包和对应的完整备份来恢复。
从完整备份恢复时:
- 先停止实例。
- 把损坏的书仓目录整个移走或删除。
- 再把备份目录整体复制回原位置。
注意
Windows 上,书仓 .git/objects 里的文件带只读属性。普通删除会中途失败。
用资源管理器、robocopy /MIR,或先清除只读属性再删除。
- 恢复后运行
git -C <书仓> status和git -C <书仓> fsck。 成功时,两个命令的结果都是干净的。
本版不支持自动迁移 v6/v7 书仓。
卸载与重装#
- 先停止该 profile 的实例。
- 运行
dsh plugin --profile scriptor list --depth 0,查看直接安装项。remove只移除指定的直接安装项。full 不能替单装包办理卸载。
| 实际安装组合 | dsh plugin --profile scriptor remove 后的参数 |
|---|---|
| 仅 full,或已切换完成 | @linfengqaqtat/dsh-scriptor-full |
| 仅主包 | @linfengqaqtat/dsh-scriptor |
| 仅提供方 | @linfengqaqtat/dsh-scriptor-retrieval |
| 主包与提供方分别安装 | @linfengqaqtat/dsh-scriptor @linfengqaqtat/dsh-scriptor-retrieval |
| full 与单装包混装 | full 加上列表中实际存在的单装包名 |
例如两个单包都装过,并且希望整套卸载:
dsh plugin --profile scriptor remove @linfengqaqtat/dsh-scriptor @linfengqaqtat/dsh-scriptor-retrieval
dsh --profile scriptor --dump-config
注意
不要把未安装的包名一起传入。否则 pnpm 会拒绝这次卸载。 只删除 full 之后,独立安装的主包或提供方仍会保留。完全没有安装 full 时,删除 full 的命令会报错,并且不会移除单装包。
- 整套卸载后,核对配置里已经没有
webnovel、webnovel-embeddings、webnovel-scenes、webnovel-reranking。 - 核对直接安装列表里也没有上述三个包。
- 再按安装教程重装。 卸载不会删除作者的书仓、书房、设置或模型凭据,也不会清空 pnpm 的共享缓存。保留下来的作者资料不属于重复安装。