新版目录与数据迁移
TRNovel 统一发布 trnovel、trn,默认提供听书界面。Talechime 独立安装;basic、捆绑 worker 和加速包停止更新。0.18.2 起 Intel Mac 与 x86_64 / ARM64 musl Linux 纳入统一阅读器发行。TRNovel 0.18.3 起迁移改为首次运行询问 + 显式命令:检测到旧阅读数据时应用内弹窗展示规模并询问,同意后在进度界面内完成;也可随时运行 trn migrate。--help、--version 与其他非 TUI 子命令不执行迁移。
| 应用 | 路径 | 内容 |
|---|---|---|
| TRNovel | ~/.trnovel/config.toml | 外观、阅读偏好、浏览器许可、worker 路径 |
| TRNovel | ~/.trnovel/keybindings.toml、toc_rules.json | 快捷键和目录规则 |
| TRNovel | ~/.trnovel/data/ | 书源、历史、登录态、浏览器 profile、local/network 阅读记录 |
| TRNovel | ~/.trnovel/cache/ | 可重建字体等资源 |
| Talechime | ~/.talechime/config.json | 听书配置 |
| Talechime | ~/.talechime/checkpoints/ | 听书恢复点 |
| Talechime | ~/.talechime/resources/ | 模型、音色、编码缓存、校准资源 |
trnovel clear 仅删除 data/history.json、data/local/、data/network/ 和 cache/,保留其他文件,也不触碰 Talechime 数据。clear 不触发迁移。
阅读数据迁移
Section titled “阅读数据迁移”迁移入口有两个:
- 首次运行询问:正常启动检测到
~/.novel且未完成迁移时,应用在启动界面上弹出询问,展示条目数、文件数与总大小。可用左右键切换选项,按Enter执行高亮项,也可按Y开始、N或Esc跳过;鼠标可直接点击按钮。选择「开始迁移」后同一界面显示进度(总进度条、当前条目、已拷贝/保留/跳过计数),期间可按Esc取消;完成后按Enter进入应用,历史与书源此时才加载。选择「跳过」后写入拒绝标记,后续启动不再询问。 - 显式命令
trn migrate:独立迁移界面,展示同样内容并要求确认;该命令无视拒绝标记,随时可运行。trn migrate --yes跳过界面直接迁移并在终端打印摘要(脚本或无终端环境),退出码反映是否成功完成。
迁移持有文件锁,各文件在目标目录暂存后原子发布;只导入普通文件,不跟随符号链接。
新目录已有同名文件时保留新文件并计入「保留已有」计数。已有 config.toml 整体优先,不合并旧偏好。
旧 ~/.novel/ 文件 | 新 ~/.trnovel/ 路径 |
|---|---|
book_sources.json、history.json | data/ |
source-state/、browser-profile/、local/、network/ | data/ 下同名目录 |
keybindings.toml、toc_rules.json | 根目录 |
gen-fontmap/ | cache/gen-fontmap/ |
appearance.json、reader-display.json、browser_assist.on | 转换为 config.toml 对应分节 |
旧 themeSlug、showHeader、followTts、showTitle、pageOverlap、paragraphSpacing
转换为 snake_case 字段,page_overlap 限制为 0–10。普通 browser_assist.on 标记转换为
browser.always_allow = true。缺少的偏好使用默认值,不把旧 JSON 直接改扩展名。
成功后根目录保存 .legacy-migration-v1,后续启动不再重复导入。
取消或中断不发布完成标记:已拷贝文件保留并视为「已有新文件」,下次迁移(启动询问或 trn migrate)自动续迁。
条目级失败(损坏 JSON、不可读取等)在迁移汇总中列出且不发布完成标记,保留源文件,之后可重试;任何迁移结果都不阻止应用进入可用状态。
clear 另保存 .legacy-reading-cleared-v1:即使迁移只部分成功,已清除的旧历史、
local/network 和字体缓存也不会在之后的迁移中重新导入;失败的偏好、书源和登录数据仍可重试。
.legacy-migration-v1、.legacy-reading-cleared-v1、.legacy-migration-declined-v1 三个标记都不会被 clear 删除。
旧文件手工检查
Section titled “旧文件手工检查”遇到冲突或迁移错误时,先退出两边程序并备份旧目录。下面的映射也可用于手工检查;已有新数据时先人工合并,避免覆盖。
- 把
~/.novel/内的book_sources.json、history.json、source-state/、browser-profile/、local/、network/复制到~/.trnovel/data/。 - 把旧
keybindings.toml、toc_rules.json复制到~/.trnovel/。字体gen-fontmap/可复制到~/.trnovel/cache/,也可重新生成。 - 旧外观与阅读 JSON 需手工转换为下方 TOML;将
themeSlug、followTts、showTitle、pageOverlap、paragraphSpacing分别改为对应 snake_case 字段。旧browser_assist.on若存在且仍希望总是允许,设置always_allow = true。不要把旧 JSON 直接改扩展名。 - Talechime 0.4.1 使用默认路径启动时,自动转换
~/.novel/tts_config.json到~/.talechime/config.json;已有新配置整体保留。可用旧模型设置经校验保留;退休或缺失后端改为当前构建选择的默认模型、音色和设备,保留音量、语速、自动续章及未知字段并提示。检查点从~/.novel/tts/checkpoints/导入,保持原文摘要与字节坐标;损坏内容保留源文件并提示。 - 把旧
~/.novel-tts/内容整体复制到~/.talechime/resources/,保留moss/、qwen/、voxcpm/、alignment/等所有相对结构,避免产生resources/.novel-tts/这一额外层。已完整下载的资源会校验复用。
Talechime 的检查点和模型资源在实际准备或音色操作时迁移,协议 Hello 不搬运大模型。
自动迁移同样保留源、持锁、无覆盖发布并记录标记。显式指定 --config、--model-dir
或 --checkpoint-dir 时跳过整套自动迁移,便于隔离运行和自行管理目录。
[appearance]
theme_slug = "tokyo-night"
background = "terminal"
show_header = true
[reader]
follow_tts = true
show_title = true
page_overlap = 2
paragraph_spacing = false
[browser]
always_allow = false
[tts]
# 不填则从 PATH 查找 talechime;Windows 建议使用单引号避免反斜杠转义。
# program = 'D:\tools\talechime.exe'缺少分节或字段使用默认值。保存一个分节会保留其余分节,使用文件锁与原子替换;损坏的 TOML 会报错,不被静默覆盖。page_overlap 限制为 0–10。
两个应用通过 JSON Lines v7 握手,各自应用版本无需相同;TRNovel 0.18.0 听书需 Talechime 0.4.0 或兼容的 v7 worker,旧 v5 worker 不兼容。缺少 Talechime 仅影响听书,普通阅读仍可使用。旧文件确认无用后由用户自行删除。