Skip to content

Releases: rozx/Tsukuyomi

Release v0.12.1

26 Apr 21:46
75a797a

Choose a tag to compare

发布说明 - v0.12.1

版本信息

  • 版本号: 0.12.1
  • 发布日期: 2026年4月26日
  • 基于版本: v0.11.1

本版本是 Tsukuyomi 桌面端的一次全面重设计 — 把"窗口里塞着一个网页"的旧桌面外观,重塑为统一在 tsukuyomi-sky 主题语言下的工作台(Workbench)形态:sysbar chip 化的顶/底栏、左/右图标轨道(icon rails)、聊天与进度独立面板、批量嵌入抽屉、可折叠的设置菜单,以及全新的主页"继续阅读"hero。配套地,云同步 / 修订恢复 / 嵌入队列做了一轮稳定性加固,AI Todo 工作流也加了状态校验闸门。配合彻底的主题统一与多处 PR 复审复杂度削减,桌面端在视觉一致性、信息密度与多设备协同上都有显著提升。


🖥️ 桌面端工作台重设计 (Desktop Workbench Redesign)

桌面端从"页面"语言整体迁移到"工作台"语言:所有桌面页面现在共享 DesktopWorkbenchHeader / DesktopWorkbenchSurface / DesktopWorkbenchMetrics 三件套,统一标题区、内容容器、指标条的视觉与间距规范,便于后续追加新工作页时保持一致。

顶/底栏 chip 化(与平板 sysbar 对齐)

  • refactor(desktop): align header/footer with tablet sysbar language via shared useSystemBarAppHeaderAppFooter 改用 chip 风格 sysbar,与 TabletSysBar / MobileSysBar 共用 useSystemBar() 的状态聚合,避免在三套变体里各写一份"同步状态 / 任务进度 / AI 处理中"指示器。
  • refactor: refresh desktop shell chrome to match tablet/mobile design language:删除大量硬编码 rgba,改走设计令牌(--white-opacity-* / --moon-opacity-* / --accent-silver 等);菜单项、状态点、capsule composer 在三个变体之间像素级一致。
  • fix(main-layout): align desktop canvas overlay with mobile/tablet:桌面 canvas overlay 不再与移动 / 平板存在透明度与边距漂移,跨设备截图终于能"看上去就是同一款应用"。

左右栏改为图标轨道 + 面板拆分

  • feat(desktop-rails): collapse side/right bars into icon rails and split chat/progress panels
    • 左侧 AppSideMenu 折叠为图标轨道(icon rail),鼠标悬停展开成完整菜单,工作区在常态下能多吃一截宽度。
    • 右侧 AppRightPanelDesktop 不再把"聊天 + 进度 + 批量嵌入"塞进同一个 793 行的巨型组件,按职责拆成 AppChatPanelDesktop(646 行)+ AppProgressPanelDesktop(147 行),各自维护自己的状态与 watcher,外壳只负责固定宽度、拖拽 resize 手柄与 active 面板切换。
    • 切换右栏 tab 时,未激活的面板不再继续注册 watcher 与 toast 监听,整体内存占用与不可见态副作用都明显减少。
  • feat(desktop-rails): move batch embeddings to right rail and convert to drawer:批量嵌入面板从 Header 操作下移到右栏轨道入口,并改造成抽屉形式 — 进入书籍详情页时随路由参数自动出现,未进入则不渲染。
  • fix(desktop): prevent horizontal scroll in batch embeddings drawer + fix(desktop): deliver copy-to-assistant when chat tab is hidden:抽屉里因长文件名导致的水平溢出消除;切到进度 tab 时调用「复制到助手」也能正确投递到聊天面板(此前事件被未激活组件吞掉)。

主页:连续阅读 Hero + 工作台语言

  • refactor(index-desktop): rebuild home in workbench language with continue-reading heroIndexPageDesktop 整页重写(+1098 行 / -285 行),首屏改为「继续阅读」hero 卡 — 直接显示最近正在翻译的书籍封面、章节进度、上次活动时间,并支持一键回到上次阅读位置。
  • 下方按"今日 / 本周 / 全部"分组展示工作台指标(章节、字数、翻译比例、待同步),配合统一的 DesktopWorkbenchMetrics 组件,与 BooksPageDesktop / AIPageDesktop / SettingsPageDesktop 视觉对齐。

书籍列表 / AI 模型卡片瘦身

  • feat(books-page): shrink desktop book cards and align bottom action rows:桌面书籍卡缩小一档,封面比例固定,底部操作行(继续翻译 / 打开 / 收藏 / 更多)现在严格对齐基线,密集库(数十本以上)一屏可见数量明显增加。
  • feat(ai-page): shrink desktop AI model cards and switch list to responsive grid:AI 模型卡片改为响应式 grid,宽屏放更多列、窄屏自动回退到 2 列;并补齐了任务路由与模型选择的工作台头部。

书籍详情页:可折叠 SETTINGS 菜单 + 侧栏调整

  • feat(book-details): add collapsible SETTINGS menu with expand/collapse animation:书籍详情侧栏的「术语 / 角色 / 记忆」三个设置入口收纳进可折叠的 SETTINGS 分组,默认收起;动画用统一的 expand/collapse easing,不打扰阅读节奏。
  • refactor(book-details-desktop): tighten sidebar width/tone, drop redundant back button and catalog title:侧栏宽度收窄、色调与正文 surface 区分度提高,移除冗余的「返回」按钮与「目录」副标题(Header 已有 breadcrumb)。
  • fix(book-details-desktop): stop clipping paragraph highlight and sidebar chapter edges:段落高亮与侧栏章节项不再被 surface 边缘裁掉。
  • refactor(book-details-desktop): section 4 — sidebar/reading/settings workbench language + fix(book-details-desktop): tint sidebar/reading/settings surfaces with tsukuyomi to match sky shell:详情页内部三个工作面(侧栏 / 阅读区 / 设置)颜色 token 化,与 sky 外壳的天空蓝灰色调统一。

帮助页与设置页

  • refactor(help-desktop): branded landing + workbench nav/TOC/article hierarchy:帮助页桌面端重做着陆区,保留品牌 banner、左侧导航、右侧目录(TOC)+ 主体文章三栏布局,长文档阅读体验对齐主流 docs 站。
  • refactor(settings-desktop): lift back chip into its own breadcrumb row:设置页"返回"chip 提到独立 breadcrumb 行,避免与设置项标题挤压。

主题统一

  • refactor(theme): unify variants through tsukuyomi-preset, delete duplicate theme.ts:删除 src/constants/theme.ts(154 行重复定义),所有变体改为从 tsukuyomi-preset 单一来源消费令牌。
  • fix(desktop-theme): align desktop shell with tsukuyomi-sky and tokenize workbench surface:桌面外壳颜色与 tsukuyomi-sky 对齐,工作台 surface 改用 tokenize 后的 CSS 变量,浅 / 深色切换时不再出现"几个面板各自变色但节奏不同步"。
  • refactor(quality): dedupe settings panel dispatcher and unexport internal theme constants + fix(quality): drop unused theme re-exports flagged by fallow:删掉残留的 theme 重新导出与 dispatcher 重复代码。

🔄 同步与修订恢复加固 (Sync & Revision Reliability)

ETag 漂移不再误报"其他设备频繁写入"

  • fix(sync): treat ETag drift with unchanged manifest as 'unchanged' in pseudo-CAS:单设备使用时,GitHub Gist 偶尔会返回新 ETag 但 manifest 内容并未真的变化(描述字段被改、Web UI 编辑了非 manifest 文件、或后端 ETag 漂移)。此前 runPseudoCasCheck 见到 ETag 不一致就抛出"其他设备正在频繁写入"提示,让单设备用户莫名其妙看到冲突警告。
  • 修复后:从 verify.files 解析 manifest.json,若哈希仍与 latestConfig.knownRemoteHashes 完全一致,直接判定为 'unchanged' 走快速路径;解析失败或哈希真的发生分叉才回落到原有重试与冲突分支。新增 97 行测试覆盖 ETag 漂移、manifest 解析失败、真分叉等路径。

修订恢复期间彻底冻结 embedding 写入

  • fix(sync): harden revision restore and pause embedding during sync
    • 引入专用 sync gate:isSyncingisRestoringSyncSnapshot 为真时暂停 EmbeddingQueue恢复闸门自己挂起的任务,用户在 UI 主动暂停的状态被完整保留。
    • 修订恢复不再"静默丢弃"反序列化失败的 entry — 任何条目失败立即中止恢复(在 overwriteFromSnapshot 抹除本地数据之前),错误消息列出问题条目与原因(缺少 chunks / 文件被截断 / 布局不匹配)。
    • 修订读取容忍历史 chunk 分隔符(_ / # / -)与 manifest / 布局漂移:标记为 chunks=0 但实际是 chunks 存储的条目会被扫描重组;标记为 chunked 但只剩单文件 body 的条目回退到单文件读取。
  • 新增 64 行 EmbeddingQueue 闸门测试 + 169 行 Gist 修订测试覆盖:合法分隔符、错误消息内容、嵌入闸门优先级。

📱 平板 / 移动端体验

  • fix(layout): 平板布局根容器改用 100dvh 以适配 Edge 移动端动态 URL 栏MainLayoutTablet 把根容器从 h-screen (100vh) 改成 h-[100dvh]。Edge 移动端 / 部分 iOS 浏览器会随用户滚动动态收缩 URL 工具栏,100vh 在这些浏览器里超过实际可见区域,把内部本应滚动的面板推出屏幕;改为动态视口高度后,内部 main 区域承担滚动,与 MainLayoutMobile 行为一致。

🤖 AI 工作流 (AI Workflow Hardening)

Todo 必须先进入「working」才能标记完成

  • feat(todo): enforce working state requirement before marking todos as done
    • todo-list-service 加入校验:尝试将一个非 working 状态的 todo 直接置为 done 会立刻抛错。
    • todo-list-toolstodo-helpertodo-workflow 与对应的系统 prompt 同步更新,明确「pending → working → done」工作顺序,让 AI 在长链路任务中更难"跳过执行直接打勾"。
    • 新增 21 行测试覆盖非法跃迁。

角色工具的章节作用域 + 别名匹配

  • fix: add chapter scope tests for character tools and alias handlingcharacter-tool-helperstext-matcher 接受了一轮章节作用域回归(198 行)+ 别名提取/匹配回归(20 行)。文本匹配在含全角空格、连字符、或标点不一致的别名上,定位准确度更高。

Cover service / Embedding queue 健壮性

  • cover-serviceembedding-queue 跟随 sync gate 调整后做了一轮加固,详见上文同步章节。

🎨 视觉细节与样式

  • style: update text wrapping and overflow behavior for consistent text renderingStreamToolCall / TaskStream 的长文本换行 / 溢出策略统一,AI 思考流不再出现某些工具调用单独溢出滚动条。

🛡️ PR 复审与 CRAP 削减

桌面重设计期间陆续接受了多轮 PR review,对应的复杂度热点同步削减:

  • refactor(quality): address PR review feedback and reduce CRAP hotspots + refactor(quality): address second-pass PR feedback on sync split, prune watcher and tokens:拆分 sync 流程中的复合函数、移除残留 watcher、修剪重复 token。
  • fix(desktop): address PR review feedback + split refreshStats to lower CRAPBatchEmbeddingsPanel.refreshStats 拆出 stats 收集、文件读取、UI 投影三段。
  • chore(vscode): remove duplicate Quality Check task from tasks.json:清理 VSCode 任务定义里重复的 Quality Check 入口。

📸 文档与截图

  • docs(screenshots): refresh desktop redesign captures and switch to variant-first naming + docs(screenshots): refresh desktop reader and book-details captures + chore: update desktop library screenshot + docs: update desktop application screenshots:桌面端截图全量刷新到 sky / workbench 主题;命名改为 <variant>-<surface> 风格,便于在帮助文档里按设备变体引用。

📝 问题修复总览

  • 修复:单设备用户在 ETag 漂移时被错误提示"其他设备正在频繁写入"。
  • 修复:修订恢复在 entry 反序列化失败时静默丢弃数据,可能造成本地不可逆覆盖。
  • 修复:修订读取无法兼容旧分隔符 / 旧 chunk 布局。
  • 修复:同步过程中嵌入队列继续写入,可能与 overwriteFromSnapshot 竞态。
  • 修复:平板布局在 Edge 移动端因 100vh 导致内部面板被推出屏幕。
  • 修复:右栏切到进度 tab 时「复制到助手」事件被未激活面板吞掉。
  • 修复:批量嵌入抽屉因长文件名出现水平滚动条。
  • 修复:书籍详情页段落高亮与侧栏章节项被 surface 边缘裁掉。
  • 修复:AI Todo 工具可绕过 working 状态直接标记完成,规避审计的执行步骤。
  • 修复:桌面 canvas overlay 与移动 / 平板透明度不一致。
  • 修复:桌面 shell 颜色与 tsukuyomi-sky 偏色,不同 surface 切换时主题节奏不同步。

⚠️ 升级提示

  • 桌面端布局已重排:习惯从 Header 进入「批量嵌入」的用户,请改从右栏图标轨道入口;详情页的「术语 / 角色 / 记忆」入口已折叠在侧栏 SETTINGS 分组下,点开即可。
  • 本版本不引入新的 IndexedDB schema:从 v0.11.1 升级直接生效;同步配置完全兼容(修订恢复路径增强后只对 v0.10.1 之前的旧布局更宽容)。
  • 多设备用户:建议升级前在每台设备上完成一次手动同步,让所有 manifest 哈希进入相同基线,新引入的 ETag 漂移快速路径就能在第一时间生效。

📚 相关文档

  • 主页介绍: help/library-guide.md
  • 书籍列表页: help/books-page-guide.md
  • 顶部工具栏: help/toolbar-guide.md(桌面端 sysbar chip 化后概念仍然适用)
  • 书籍详情页概览: help/book-details-overview.md
  • 设置说明: help/settings-guide.md

本文档基于 git changes v0.11.1..v0.12.1

Release v0.11.1

22 Apr 17:16
b5ffdae

Choose a tag to compare

发布说明 - v0.11.1

版本信息

  • 版本号: 0.11.1
  • 发布日期: 2026年4月22日
  • 基于版本: v0.11.0

本版本是 v0.11.0 工程化升级之后的小修订版,聚焦同步体验的可见性与可恢复性:修复 Header 待同步徽标漏算记忆条目、补齐 Gist 修订历史在新 manifest 布局下的恢复能力,并对翻译批量工具做了一处小修正。配合继续的 CRAP 复杂度削减与同步回归测试加固,整体稳定性进一步提升。


🔄 同步稳定性 (Sync Reliability)

待同步提示覆盖记忆变更

  • 修复fix(sync): show memory changes in pending sync status。此前 Header 右上角的"待同步变更"徽标与下拉详情只统计书籍 / AI 模型 / 封面 / 设置以及墓碑删除记录,记忆条目的新增和编辑不会出现——用户在记忆管理页修改后徽标仍显示 0,容易误以为数据已同步。
  • 修复后:useSyncPendingChanges 在加载时按书籍 ID 拉取全部记忆,过滤 lastAccessedAt > lastSyncTime 的条目,并订阅 MemoryService.addMemoryChangeListener 做增量刷新(过滤掉 embedding-updated 等异步事件,避免嵌入回写引发误报)。新增与编辑在下拉列表中分别以 added / edited 呈现,标签优先取摘要、否则截取内容前 24 字。
  • 新增 src/__tests__/use-sync-pending-changes.test.ts(157 行)覆盖基线空、记忆 CRUD、嵌入事件过滤等回归分支。

Gist 修订历史恢复支持新布局

  • 修复fix(sync): support manifest-based gist revision restorev0.10.1 起同步采用 manifest 驱动的分文件布局(独立的 settings.json / ai-models.json / cover-history.json / memories/*.json / novel-<id>.json),但 "从历史修订恢复" 的代码仍假设所有内容聚合在单个 settings 文件中,导致从新布局的历史快照恢复时 AI 模型、封面、记忆等条目全部丢失。
  • 修复后:GistSyncService.downloadRevisionFromManifestFiles 直接读取 manifest.json,按 entries 顺序反序列化每个条目(settings / ai-models / cover-history / novel / memories),命中 manifest 时走新路径,否则回退旧布局兼容逻辑。assignRevisionEntry 将各类条目归位到 GistSyncData 结构中,小说逐条追加、记忆合并列表。
  • 新增 src/__tests__/gist-sync-service.revision.test.ts(898 行)与 src/__tests__/sync-data-service.test.ts 扩展(+536 行)覆盖修订恢复、删除传播、合并回归等关键路径。

翻译批量动作上报取真实 ID

  • 修复translation-tools.handleAddTranslationBatch 在发射批量动作汇总时原本取 normalizedIds[0](规范化请求入参的第一个 ID),当该段落被其他规则跳过时会上报一个实际未被处理的段落 ID。改为取 acceptedParagraphs[0]?.paragraph_id,确保 UI 跳转时定位到真正写入翻译的段落。

🛡️ 代码质量持续优化 (Ongoing CRAP Reduction)

延续 v0.11.0 的复杂度削减工作,再覆盖 17 处高 CRAP 热点函数

  • AI 任务 / 工具assistant-service(+256/-? 行)、task-runnertranslation-tools(697 行级重构,拆解批量翻译的校验 / 定位 / 写入 / 上报四段)、book-toolschapter-service 抽出内部 helper,降低单函数 CRAP 与嵌套层数。
  • 同步层gist-sync-service / gist-sync-incremental / sync-data-service 将参数签名格式化为多行,抽出批处理、清单拉取、修订解析等子步骤。
  • 书籍详情合成useActionInfoToast / useChapterTranslation / useKeyboardShortcuts 按阶段切分,便于单独调试。
  • 评分与抓取memory-scoring 拆分三信号组合,kakuyomu-scraper 收归章节解析片段到 BaseScraper 共享 helper。

影响面:纯结构性重构,行为不变;总计 13 个文件,+1607 / -977 行。


🧪 测试加固 (Regression Coverage)

  • gist-sync-service.revision.test.ts 新增 898 行场景:manifest 修订快照解析、旧布局回退、只读 novel 条目、记忆合并去重、entries 缺失 / 字段格式异常的错误路径。
  • sync-data-service.test.ts 扩展 538 行:双向合并保留新增实体、墓碑删除正确传播、基于 lastEdited 选远端优先等。
  • use-sync-pending-changes.test.ts 新增 157 行:记忆 CRUD、embedding-updated 过滤、baseline 为 0 时跳过读取、书籍列表变化触发刷新。

🧰 工程细节 (Dev Experience)

  • pre-commit 钩子位置调整chore: move pre-commit hook into .git/hooks。此前放在 .githooks/pre-commit 需要额外配置 git config core.hooksPath .githooks 才能生效,新 checkout 的开发者容易漏配。现改为直接放在 .git/hooks/pre-commit(通过 bun run setup:git-hooks 安装),与 git 默认路径一致,无需额外配置。

📝 问题修复总览

  • 修复:Header 待同步徽标未统计记忆条目,编辑后数量始终显示为 0。
  • 修复:Gist 修订历史恢复在 manifest 新布局下只还原了书籍内容,AI 模型 / 封面 / 记忆丢失。
  • 修复:批量添加翻译的动作汇总可能上报一个实际被跳过的段落 ID。

📚 相关文档

  • 设置说明: help/settings-guide.md(已同步更新待同步徽标与修订历史章节)
  • 记忆管理: help/book-details-memory.md

本文档基于 git changes v0.11.0..v0.11.1

Release v0.11.0

21 Apr 19:35
42611ad

Choose a tag to compare

发布说明 - v0.11.0

版本信息

  • 版本号: 0.11.0
  • 发布日期: 2026年4月21日
  • 基于版本: v0.10.1

本版本是 Tsukuyomi 的一次大规模工程内化升级:引入 Fallow 代码健康度扫描、完成数百处函数拆分与公共逻辑提取、迁移测试框架至 Vitest + Istanbul 覆盖率、修复多项云同步边界问题并加固撤销恢复语义。面向用户的使用方式不变,但在稳定性、响应速度、长期可维护性上有显著收益。建议升级前先在"设置 → 数据同步"完成一次同步。


🛡️ 代码质量工程体系 (Code Health Pipeline)

本次版本将代码质量检查内化为项目工程链的一部分,并完成一轮全仓复杂度削减。

Fallow 接入

  • 新增 bun run quality-check 命令,基于 Fallow 扫描未使用代码、循环依赖、架构边界违规、复杂度热点与重复片段,并以基线文件(.fallow-baseline.json)冻结历史遗留项,只针对新增/变更代码强制门控。
  • CI 工作流新增 fallow 质量作业:安装依赖 → 跑 Vitest 生成 Istanbul 覆盖率 → 基于 origin/main 差分执行 --changed-since;与本地 bun run quality-check 行为一致,避免本地通过 CI 红灯。
  • 质量门 CRAP 上限降为 100,迫使新代码采用更细粒度的函数拆分。
  • 提供完整的 Fallow Skill 文档集(SKILL.md、CLI 参考、常见陷阱、模式库),指导在遇到误报时优先删真死代码、其次用行内注释抑制(// fallow-ignore-next-line),污染 .fallowrc.json

全仓复杂度削减

  • 超过 120 次 refactor 提交,范围覆盖 services / composables / stores / utils / AI tools / scraper:
    • 服务层:book-service / chapter-service / chapter-content-service / memory-service / terminology-service / character-setting-service / sync-data-service / gist-sync-service / full-text-index-service 多处函数拆分与 helper 提取。
    • AI 工具层:paragraph-tools / book-tools / character-tools / memory-tools / translation-tools / task-status-tools / todo-list-tools 抽离 resolveBookForTool / resolveBookAndParagraphLocation / resolveCharacterForTool / requireMemoryById / locateTranslationById 等通用定位 helper,统一错误语义与返回结构。
    • 抓取器:BaseScraper 收归 fetchNovel 模板、fetchChapterContentparseChapterDatebuildNovelFromParsedInfoselectContentElementvisitCheerioContents 等共享逻辑;三个 Syosetu / Kakuyomu 子类减少大量重复。
    • 同步:useSyncExecutorgist-sync-incrementalsync-data-service 抽出 makeDownloadProgressHandler / buildKnownAsManifest / prepareGistSession / rollbackThenRethrow / mergeDeletionsByKey / mergeVolumesWithoutCounterpart / shouldUseRemoteByLastEdited 等流程片段。
    • 共用工具:新增 serialize-datesdispatch-custom-eventis-cancelled-errorchapter-book-lookupmemory-embedding-lookupsettings-lookupsync-revision-guardsnovel-form 等工具模块,替代散落的内联复制。
  • 多处 Pinia store 解耦:embedding-queue / embedding-service 不再反向 import MemoryServicestores/books,改由 memory-cache 叶子模块承担缓存与事件总线,打破 memory-service ↔ embedding-queue 循环。
  • chapter-content-service 拆分出 chapter-content-loader 叶子模块,require bookId 参数以消除反向查找。
  • AI 服务层新增 ai-service-factory / tool-registry / tool-call-invoker,替换 services/ai 内的 barrel 自引用循环。
  • 删除真死代码:移除未使用的 src/theme/luna-preset.ts(与 tsukuyomi preset 重复)、TestResult.vuetoken-counter-servicemodel-selectorid-generatorvite-plugin-node-polyfills 依赖(用 atob/btoa 替代 Buffer fallback)、多处 SyncDataService 僵尸方法。

架构规则文档化

  • CLAUDE.md / AGENTS.md 新增"Fallow 误报抑制"章节,强制抑制注释走行内、不进 .fallowrc.json、规则名使用单数。
  • 新增 .agents/skills/fallow/.claude/skills/fallow 骨架,提供跨代理统一的调用说明。

🔄 云同步稳定性 (Sync Reliability)

针对 v0.10.1 Manifest 化同步在复杂多设备场景下暴露的若干问题,本版本做了一轮加固。

  • 修复:两端合并时丢失 novel 实体fix(sync): preserve novel entities across two-way merge and propagate deletions correctly。保留对方端新增的小说,同时正确传播删除,不再出现"其中一端的书在合并后消失"。
  • 撤销/恢复语义修复(PR #85
    • fix: lock revision restores during sync — 恢复期间上锁,避免同步流程写入覆盖待恢复的数据。
    • fix: lock sync settings during revision restore — 恢复期间同步设置保持冻结,防止异步刷新把旧 ETag 写回。
    • fix: block auto sync during revision restore — 自动同步在恢复窗口内暂停。
    • fix: harden snapshot settings restore — 快照设置恢复不再丢字段。
    • fix: fully apply sync revision restores — 恢复步骤完整落库,避免半应用。
  • 导入语义修正fix(import): treat field-present as replace, clear memories before upsert。导入 JSON 时若字段显式存在则视为"替换"而非"合并";记忆在 upsert 前清空,避免历史残留。
  • 安全加固fix(security): use URL hostname (not substring) for scraper dispatch; coerce axios content-type header。抓取器分派改用 URL 对象 hostname 比对,防止恶意域名通过子串匹配绕过白名单。
  • 其他
    • fix(cover-dialog): await addCover before reading allCovers — 修复封面上传后立即选择出现竞态。
    • fix(memory-embedding): propagate IDB errors — 嵌入写入失败时不再静默吞错,缓存与 embedding-updated 事件只在真正成功后触发。
    • fix(types): 修复 ChatSession 类型查询与 CharacterSetting / loopResult 等类型收窄问题。

🧪 测试框架迁移 (Vitest + Istanbul)

  • 测试运行器从 bun test 迁移到 Vitest (jsdom) + Istanbul 覆盖率:
    • bun run test / bun run test:watch / bun run test:coverage 使用 Vitest。
    • bun:test 风格的 import 通过 src/__tests__/bun-test-shim.ts 继续兼容,便于渐进迁移。
    • 全局 Pinia 与 PrimeVue useToastsrc/__tests__/vitest-setup.ts 预先 mock,测试文件无需重复设置。
  • bun run test:bun 保留给少数依赖 Bun 专属 API 的抓取器测试(Bun.file(...))。
  • 模块级 mock 采用 vi.mock + vi.hoisted,运行时动态 mock 采用 vi.doMock + vi.resetModules,替代不被 Vite transform 提升的 await mock.module(...)
  • 新增测试套件覆盖之前薄弱的区域:
    • action-field-builders.test.ts / read-details.test.ts / simple-details.test.ts / named-entity-details.test.ts / navigate-and-translation-details.test.ts / get-action-details.test.ts 覆盖聊天 action 详情渲染。
    • books-store.test.ts / novel-form.test.ts / settings-parsers.test.ts / sync-revision-guards.test.ts / use-auto-sync.test.ts 覆盖 store、解析器与自动同步分支。
    • 章节嵌入混合打分增加 identifier-boostproper-noun-boostbacklog-title 等回归用例。
  • CI 先跑 quasar prepare + 覆盖率再执行 Fallow,确保 CRAP 数据与源码对齐。

✨ 细节增强 (Minor Enhancements)

  • 翻译进度面板feat(translation-progress): auto-switch panel to newly started batch task — 开始一项新批量任务时面板自动切到该任务,无需手动下拉切换。
  • AI Todo 工作流模板feat(ai): enhance todo workflow templates with comprehensive steps — 内置模板包含更完整的步骤,长任务过程中 AI 更少遗漏关键节点。
  • 性能perf(books): use Map lookup and parallelize chapter cleanup in bulkAddBooks — 批量导入书籍时用 Map 查找并并行清理章节,大库导入明显更快。
  • 响应式布局feat: implement responsive layout components, AI task instrumentation, and comprehensive OpenSpec documentation updates — 补齐了一批响应式布局组件与 AI 任务埋点。

📝 问题修复 (Bug Fixes)

  • 修复:两端双向合并时部分 novel 实体丢失、删除未正确传播。
  • 修复:撤销恢复过程中被同步流程打断导致的半应用状态。
  • 修复:导入 memory 时字段残留与重复 upsert。
  • 修复:抓取器 URL 白名单基于子串匹配可能被子域名绕过的安全问题。
  • 修复:封面上传后立即选择的竞态。
  • 修复:Memory 嵌入写入 IDB 失败时被静默吞掉,缓存与事件仍然更新造成状态错位。
  • 修复:聊天会话/角色设定等类型在 store $state 查询下推断失败的类型错误。
  • 修复:TextTaskProcessor 缺少显式重试上限与 pickTextTaskOptions 未穷举字段的问题。
  • 修复:多处 fallow 报告的"表面死代码但实际通过 Vue template 消费"的误报,统一用行内注释处理。
  • 修复:tsconfig.tsbuildinfo 被误 track,影响跨机器增量构建。

⚠️ 破坏性变更与升级提示

  • 质量门:外部贡献者本地需先运行 bun run test:coverage 生成 coverage/coverage-final.json 才能得到 CRAP 数据;bun run quality-check 默认使用基线 + 覆盖率 + --changed-since origin/main,与 CI 保持一致。
  • 测试写法:依赖 await mock.module(...) 的旧测试需要改写为 vi.mock(..., factory) + vi.hoisted(...);动态 mock 改用 vi.doMock + vi.resetModules + 动态 import()。参考 src/__tests__/local-embedding.test.ts
  • 依赖瘦身:移除了 vite-plugin-node-polyfills。若外部脚本依赖 Node Buffer,请改用 atob / btoa 或显式 polyfill。
  • 主题 preset:删除 src/theme/luna-preset.ts,请改用 tsukuyomi preset。
  • 数据迁移:本版本不引入新的 IndexedDB schema;从 v0.10.1 升级直接生效。如恢复流程曾在旧版本被打断,建议升级后重新执行一次撤销恢复,确保数据一致。

📚 相关文档

  • 设置说明: help/settings-guide.md
  • 主页介绍: help/library-guide.md
  • 书籍详情页概览: help/book-details-overview.md
  • AI 翻译功能: help/book-details-translation.md
  • 记忆管理: help/book-details-memory.md

本文档基于 git changes v0.10.1..v0.11.0

Release v0.10.1

19 Apr 18:06
f81fb08

Choose a tag to compare

发布说明 - v0.10.1

版本信息

  • 版本号: 0.10.1
  • 发布日期: 2026年4月19日
  • 基于版本: v0.9.4

这是 Tsukuyomi 自 v0.9 系列以来最大规模的一次版本更新,涵盖记忆系统重构、章节嵌入检索、同步引擎 Manifest 化、移动端与平板端全新设计、以及跨设备变体架构。建议升级前先在 "设置 → 数据同步" 进行一次完整同步,以确保数据安全。


🧠 记忆系统重构 (Memory System Overhaul)

本版本将记忆库从简单的列表存储升级为具备语义检索与自动打分能力的智能上下文系统。

三信号评分引擎

  • 新增 memory-scoring 打分流水线,综合三项信号计算注入优先级:
    • 语义相似度(权重 0.6):基于本地嵌入的余弦相似度。
    • 关键词匹配(权重 0.3):标题、内容与别名的字面命中。
    • 时间衰减(权重 0.1):指数衰减偏好近期记忆。
  • 总分统一归一到 0–1.0 区间,并提供可视化的分数分解(ScoreBreakdown)便于调试和透明化展示。
  • 引入人口感知(population-aware)打分:按候选池大小自动调整分数分布,解决嵌入分数通胀问题。
  • 新增相对排名过滤器(relative ranking filter),在嵌入分数整体偏高时仍能挑出真正相关的记忆。
  • 统一严格过滤器接口,区分硬性最低分阈值与相对相关性裁剪。

字符预算注入

  • 注入上下文时按字符预算贪心选择,按分数降序填充,超出预算自动截断。
  • 新增记忆注入设置面板MemoryInjectionSettings),可调节最低分数阈值、字符预算、权重组合。
  • 记忆摘要权重提升,并对复合查询自动拆分后分别检索、合并结果。

本地嵌入服务

  • 引入 EmbeddingService + EmbeddingQueue
    • 浏览器内运行的 Transformers.js 本地嵌入管线,动态加载以避免污染主 bundle。
    • 异步队列对书籍进行串行化批量处理,避免并发写冲突与显存抖动。
    • WebGPU + q4f16 量化优先,失败自动回退到 WASM + q8。
    • 引擎默认模型切换为 gte-multilingual-base(300M 多语种编码器),并针对查询/文档应用不同任务前缀(EmbeddingGemma 风格)。
  • 新增全局开关 enableLocalEmbedding(默认关闭),确保未启用嵌入的用户不承担模型下载与加载成本;开关关闭时自动停止队列、隐藏相关 UI 与 AI 工具,开启时自动预热。
  • 移动端(Quasar Platform 检测)强制禁用本地嵌入,规避浏览器 WASM 内存限制。
  • 新增浏览器 Cache Storage 检测,仅在曾经缓存过模型时启动自动预热,避免首次访问即触发下载。
  • 新增嵌入重试机制与退化评分权重,在嵌入不可用时仍可依赖关键词检索提供降级服务。

记忆管理 UI

  • 新增 MemoryPanel 组件:书籍级记忆搜索、预览、CRUD,并共享 AI 注入时的打分逻辑以便复现选择结果。
  • 记忆 CRUD 与 EmbeddingQueue 联动:新增/编辑记忆后自动入队重新计算向量。
  • 测试查询对话框:在嵌入设置页可直接测试本地向量检索结果与分数。

AI 工具变化

  • 新增工具 search_memories:接受自然语言 query,内部混合关键词 + 语义检索,取代旧版 get_recent_memories
  • 记忆上下文构建器改由 context-builder 驱动,AI 翻译/润色/校对任务的上下文注入走统一路径。

📚 章节嵌入与混合检索 (Chapter Embedding & Hybrid Retrieval)

取代旧的"章节摘要"机制,本版本为每本书的章节建立多向量嵌入索引,并为 AI 提供全文级检索工具。

多向量章节索引

  • 章节内容按段落分块嵌入,每章额外写入一条 kind: 'title' chunk(章节标题 + 首段),使得"系列名 / 主题型"查询也能命中。
  • 新增 chapter-embedding-servicechapter-embedding-debouncerchapter-status 工具,支持批量重算、去抖、状态展示。
  • 本地向量索引弹窗显示实际 DB 记录数,提供批量清理、单书重建、操作按钮等。

query_chapter 混合打分工具

  • AI 工具 query_chapter 使用 z-score 归一化的混合分数:
    • 语义分:max(title_norm, α·content_max + (1-α)·content_top3_mean),α = 0.6
    • 字面关键词分:标题加权 1.0、正文 0.6
    • 总分:0.65 × semantic + 0.35 × keyword
  • 翻译、润色、校对、聊天助手四类任务的系统提示词均已学习如何调用 query_chapter 查找上下文与参考段落。
  • 启用 enableLocalEmbedding 后工具与提示词引导自动出现;关闭时自动隐藏。

🔄 同步引擎 Manifest 化 (Manifest-driven Sync)

GitHub Gist 同步从"整包上传"改为基于 manifest.json 的增量式流程,在多设备场景下更快、更安全、更节省流量。

Manifest 架构

  • 新增 sync-manifest-buildercontent-hashcanonical-json 等工具。
  • manifest.json 为每个条目(settings / ai-models / cover-history / novel:<id> / memories:<id> 等)记录 SHA-256 哈希。
  • 上传时只推哈希发生变化的文件;下载时只解析变化条目。
  • Memory / AI 模型 / 封面历史各自独立成文件,避免单一大文件写放大。

并发安全:条件 GET + 伪 CAS

  • useSyncExecutor 使用 If-None-Match 条件 GET 拉取远端 manifest;若 ETag 未变直接跳过解析。
  • 上传前采用伪 CAS:PATCH 前再次校验远端 ETag,避免多设备静默覆盖。
  • SyncConfig 新增 lastRemoteETag / knownRemoteHashes 字段,持久化同步状态。
  • 统一处理 304 Not Modified,使用直接 fetch 避免 Octokit 噪声日志。

删除语义与墓碑

  • Manifest 引入**墓碑(tombstones)**机制,使跨设备删除语义正确:A 删除的条目不会被 B 重新推回。
  • 上传阶段按远端快照过滤删除目标,修复 "422 Unprocessable" 的空批次错误。
  • 恢复页面("已删除项恢复")支持 Memory 在内的全部可恢复条目。

哈希稳定性

  • 哈希输入剥离 embeddingsscoreBreakdowns,向量重算不再触发虚假上传。
  • AppSettings 哈希剥离 syncs、设备本地字段(如 lastRemoteETag),避免同步元信息自身造成循环上传。
  • 段落合并采用 paragraph union + canonical JSON,解决跨端不同 ID 引发的重复上传。

强制推送与可见性

  • 新增强制推送模式(Force Push),可用本地数据一键覆盖远端,适用于迁移或远端损坏的场景。
  • 同步 Header 显示待同步变更数量,Popover 展示每一项的详细修改列表(覆盖桌面 / 平板 / 移动端)。
  • 撤销/恢复面板识别 Manifest 新增的文件类型。

📱 移动端全面改版 (Tsukuyomi Mobile Redesign)

结合全新 Tsukuyomi 设计系统,移动端获得一套原生化、跨页一致的专属体验。

应用壳层

  • 新增底部 Tab Bar(阅读 / AI / 帮助 / 书库 / AI 模型等,按上下文自适应)与顶部系统工具栏(SysBar)
  • 所有弹窗/Popover/Drawer 统一收敛到 MobileBottomSheetAdaptiveDialog,桌面保持 Dialog、移动自动转底部薄片。
  • Toast 下移至 SysBar 下方,全宽紧凑样式不再遮挡头部。

页面重做

  • 首页 / 书库 / 书籍详情 / AI 模型 / 帮助 全部提供手机专属模板。
  • 书籍详情:实时翻译进度 + 设计一致的章节树 + 卷/章节操作薄片(编辑 / 删除 / 排序)。
  • 阅读:原生堆叠段落布局 + 悬浮操作条 + 批量菜单(翻译 / 续译 / 润色 / 校对 / 重译);顶部应用栏显示"书名 · 进度%"。
  • 翻译进度:Hero Meter + 分段 Tabs(实时 / 日志 / 待办)+ 待办计数徽章 + 真实的停止/清空/章节过滤操作。
  • 聊天:专属 AppBar + 胶囊输入(pill composer),默认隐藏 tabs / todo / stats。
  • 设置:由弹窗改为独立路由页,桌面和平板新增返回按钮。

交互细节

  • 首次启动 UX 打磨,整合平台检测逻辑;首次启动引导统一通过 Markdown 渲染。
  • Tab 栏保留 阅读,移除多余项并按"内容 → AI → 元数据"重排。
  • 聊天/翻译进度切换不再错误关闭面板,翻译任务角标只统计翻译类任务。

💻 平板端专属布局 (Tablet Layouts)

  • 新增独立的平板变体(非简单拉伸桌面布局),通过 Quasar 断点驱动。
  • 阅读器双面板、AI 页分屏、聊天三面板。
  • 书籍详情:可停靠的聊天 / 翻译进度面板、可折叠侧边栏、移动风格章节树 + 工具栏。
  • 书库 / 首页 / 设置 / 导航栏全面打磨,移除水平溢出;帮助移到侧边栏。
  • 帮助与 AI 页在竖屏下重做为 overlay drawer(导航/目录/路由)+ 堆叠头部 + 2 列参数。
  • 提取共享侧栏 + 方向辅助函数 + 右面板状态,去重 books / book-details 代码。

🧩 设备变体架构 (Dispatcher + Desktop/Tablet/Mobile)

为根治桌面/平板/移动端差异带来的重复 v-if="isPhone" 分支,本版本引入强制性的设备变体规则:

  • 新增 useDeviceVariant composable:Electron 永远强制 'desktop';Web 按响应式断点分派 'mobile' | 'tablet' | 'desktop'
  • 所有 layouts/*.vuepages/*.vue 拆分为 dispatcher + 三变体 结构,业务逻辑统一进 composable(use<Name>.ts)并通过 provide / inject 共享。
  • 一次性副作用(auto-sync、AI 任务 watcher、embedding warmup、toast 初始化等)只在 composable 或 dispatcher 注册一次,避免断点切换时重复触发。
  • 跨变体共享的弹窗 / Toast 挂载在 dispatcher 层,避免三个变体各自渲染造成状态分叉。
  • 已完成迁移:MainLayout / AppRightPanel / BookDetailsPage / IndexPage / BooksPage / AIPage / HelpPage / NotFoundPage / SettingsPage / TranslationProgress

完整规则参见 CLAUDE.md 的"设备变体规则"章节。


🎨 Tsukuyomi 设计系统 (Design System)

  • 全应用(App Shell / Pages / Reader / 侧栏 / AI 助手)采用统一 Tsukuyomi 设计 token 与色彩。
  • 预连接字体 CDN,作用域化 tracking token,去除重复侧栏规则。
  • 翻译正文色调调整为 tsukuyomi-200,长阅读更柔和清晰。
  • 面板消息、BatchSummaryPanel 统计、KeyboardShortcutsPopover、ChapterContentPanel 聚焦态、帮助页、AppSideMenu 等组件采用统一排版 tokens。

⚙️ AI 任务与性能 (AI & Performance)

  • TodoWorkflow 自动化:根据任务状态自动生成待办、带状态转换门控与清晰的错误消息;chunk index 传递使任务粒度更细。
  • 思考流解析增量化:思考面板支持虚拟渲染,长时间推理不再卡顿;新增思考详情对话框。
  • 节流持久化:AI 处理中对 IDB 写入节流(flush on clear),防止写风暴导致工具结果丢失。
  • 翻译进度面板重构为单任务视图 + 下拉切换;TaskStream 自动滚动更可靠;内联样式迁移到 Tailwind。
  • getBookById 使用 Map 索引,修复并发删除导致的查找异常。
  • 上下文溢出保护:工具调用循环在达到上下文上限前自动截断,避免会话崩溃。
  • 导出书籍 JSON 时包含记忆(Memory),支持数据完整迁移。

📝 问题修复 (Bug Fixes)

  • 修复:移动端首次启动的 UX 细节与平台检测逻辑不一致问题。
  • 修复:ForceSyncToggle DOM id 不唯一导致的焦点异常,以及 useForceSync Promise 不一致。
  • 修复:工具调用循环中上下文溢出导致的聊天失败。
  • 修复:书籍页面刷新后活动聊天会话丢失。
  • 修复:批量嵌入 Popover 在重建时样式抖动与水平溢出。
  • 修复:enableLocalEmbedding 开关刷新后未持久化。
  • 修复:AI 工具入参空值未校验与未 trim 导致的异常。
  • 修复:同步状态 Popover 中长标题溢出、长章节标题溢出、测试查询对话框溢出。
  • 修复:单段落翻译因内容全为符号触发完整性警告。
  • 修复:Reader 桌面端段落选中高亮丢失(content-visibility 导致的 paint-containment 裁剪)。
  • 修复:多章节并发嵌入批次时的池化对齐与陈旧向量写入。
  • 修复:IndexedDB v9 升级时阻塞场景的提示。
  • 修复:Copilot 代码评审反馈中列出的多项 UI、事件与类型安全问题(PR #80 / #81 / #78)。

🔧 破坏性变更与迁移 (Breaking Changes)

  • 记忆系统:旧的 get_recent_memories 工具已移除,迁移至 search_memories(支持自然语言检索)。章节摘要相关 UI 与提示词已下线,使用 query_chapter 替代。
  • 本地嵌入:默认关闭;需在"设置 → 本地嵌入"中手动启用。移动端始终禁用。
  • 设置弹窗:改为独立路由页 /settings,原弹窗调用入口保留但内部跳转到路由。
  • 同步数据格式:远端 Gist 新增 manifest.json 与按条目拆分的多个文件。首次升级会触发一次 Legacy 迁移(自动),如遇跨设备冲突请先在主设备强制推送一次。
  • 设备变体:页面/布局开发必须采用 dispatcher + 三变体模式,不得直接在页面内使用 v-if="isPhone"。详见 CLAUDE.md

📚 相关文档

  • 设置说明: help/settings-guide.md
  • 书籍详情页概览: help/book-details-overview.md
  • 记忆管理: help/book-details-memory.md
  • AI 翻译功能: help/book-details-translation.md
  • 聊天助手: help/chat-assistant-guide.md

本文档基于 git changes v0.9.4..v0.10.1

Release v0.9.4

07 Apr 23:26
2c0bd68

Choose a tag to compare

发布说明 - v0.9.4

版本信息

  • 版本号: 0.9.4
  • 发布日期: 2026年4月8日
  • 基于版本: v0.9.3

🤖 AI 功能增强 (AI Enhancements)

  • AI 助手与翻译面板整合:重构了布局组件 AppRightPanel.vue,将原本独立的 AI 助手与翻译进度合并为右侧统一的选项卡 (Tab) 视图,优化了阅读界面的空间利用率。
  • 单段落处理极致简化:新增了 single-paragraph-processor.ts。在用户仅对单段落执行润色和校对时,系统将直接调用封装好的直连执行器,而不再经过复杂的 AI 状态机,大幅缩短了处理开销与状态流转时间。
  • 多模型推理内容 (Reasoning Content) 兼容:重构了 OpenAIService 的流式数据解析。除了标准的 reasoning_content 外,新增对 reasoning_detailsreasoning 字段的提权支持,无缝兼容类似 Kimi (K2.5) 等模型返回的思考过程。
  • 空响应异常捕获:在 OpenAIService 结构里新增抛出 AIEmptyResponseError 异常捕捉,防止 AI 网络或抽风返回空数据时抛出无业务语义的通用错误。
  • 原文校验精准下发:调整了 common.ts 等提示词模块。在用户设置中关闭原文校验时,底层生成上下文中会自动剥离 original_text_prefix 及相关校验指令,降低 Prompt Token 消耗及模型误判开销。
  • 纯符号过滤:优化了 AI 翻译组件判定,修复由于内容纯符号导致翻译结果意外触发系统完整性警告的逻辑分支漏洞。

🔄 数据同步与存储 (Data Sync & Storage)

  • Memory (记忆库) 同步深度去重:重构了 SyncDataService 的 Memory 合并算法。引入基于语义内容 (content) 的哈希冲突处理策略,即使因跨端重抓等原因导致 Memory ID 丢失差异,也能实现正确的内容级合并。
  • 记忆库误删恢复支持:补全软删除机制支持库,将 memory 列入全局 RestorableItem 范畴并写入了同步差异化对比层,在 RestoreDeletedItemsDialog 误删除面板提供支持。
  • 段落级合并容错增强:同步应用更新时,新增了 remoteParagraphByTextMap 基于文本匹配回退逻辑。解决因跨端获取源数据导致的源段落 ID 不同,从而丢失历史段落本地翻译缓存的问题。

📖 原型获取与界面交互 (Scrapers & UI/UX)

  • Kakuyomu 抓取器升级
    • 引入了 tableOfContentsV2 GraphQL API 的支持解析,保持对旧版结构的联合兼容。
    • 新增自定义 extractTextFromElement 渲染函数。抓取正文时完美防范 <br> 的丢失,并且增加了对 <ruby> 注音文本的平铺翻译化处理(将原本嵌套结构提取为 漢字(かんじ))。
    • 在基本请求失败时,增强了从内部 Apollo 状态池里提取 author 属性等元数据的容灾处理。
  • 移动端与操作体验
    • 新置基于屏幕边界的移动端底部固定导航栏 (mobile-bottom-nav)。
    • 收纳移动版折叠式设置工具栏,移除了多余的标题占位符,并将章节编辑弹窗等元素支持了键盘直接通过聚焦滚动的内容浏览操作。
    • 新增 QuickStartGuideDialog 组件,初次使用时直接拉取托管的 Markdown 并使用 Markdown 解析器实时渲染到内置页面中展示指南。

⚙️ 系统与基础架构

  • 性能调优:将分批翻译机制的默认文本处理尺寸 (Chunk Size) 提升至 2000,改善模型高并发通信造成的接口限速问题与数据量截断平衡。
  • 系统交互徽章强化:修订 ChatActionBadge.vue 的 CSS 层与异常捕捉处理,确保不规则结果抛出时的 UI 解析样式安全对齐。
  • 边缘文本工具引入:实装 text-matcher.ts 及边缘匹配工具层函数,强化了内部代码对于章节比对边缘字符对齐测试 (text-matcher-edge.test.ts) 的健壮性。

本文档基于代码层面对比构建 (git diff v0.9.3..HEAD)

Release v0.9.3

11 Mar 22:31
33422e2

Choose a tag to compare

发布说明 - v0.9.3

版本信息

  • 版本号: 0.9.3
  • 发布日期: 2026年3月11日
  • 基于版本: v0.9.2

📖 书籍详情页全面升级 (Book Details Page)

v0.9.3 对书籍详情页进行了全面重构和功能增强,打造更完整的章节翻译与编辑工作流。

章节翻译与 AI 任务处理

  • 书籍详情页现已支持直接在页面内发起章节翻译、润色和校对任务。
  • 新增 AI 任务执行器,负责工具调用循环和状态管理,为页面内 AI 任务提供完整的执行环境。
  • 新增翻译进度 UI 组件,实时展示当前任务的分块进度、工具调用状态和执行结果。

章节管理增强

  • 增强章节更新检测机制,支持从在线源检测章节是否有新内容可更新。
  • 修复章节编辑对话框中的界面交互问题,提升编辑体验。
  • 新增 AI 工具用于获取书籍与章节信息(get_book_infoget_chapter_info),让 AI 在任务执行中获取更丰富的上下文。

并发翻译稳定性

  • 增强 useChapterTranslation,确保切换章节或并发翻译时段落翻译能正确写回目标章节。
  • 修复多书并行任务时切换书籍导致进度数据关联到错误任务的 bug。

🔄 Gist 数据同步优化 (Data Sync Enhancement)

对已有的 Gist 数据同步功能进行了架构重构和性能优化。

同步执行器重构

  • 新增 useSyncExecutor composable,统一手动同步和自动同步的核心执行流程,消除原有 useAutoSyncuseGistSync 之间的代码重复。
  • 实现智能跳过机制:通过时间戳检测远程是否有变更,无变更时跳过下载解析,减少网络开销。
  • 同步进度精细映射:下载(0-50%)、应用(50-60%)、上传(60-100%),提供细粒度的进度反馈。

变更检测增强

  • 增强 SyncDataService,支持本地 vs 远程的精确差异比较。
  • 优化双向差异检测逻辑:下载跳过时基于 lastSyncTime 检测本地变更,首次同步时与空数据比较。

🤖 AI 翻译引擎架构重构 (AI Engine Refactor)

对 AI 任务运行器进行了大规模架构重构,将原本庞大的单体模块拆分为多个职责单一的组件。

模块化拆分

  • 状态机引擎 (StateMachineEngine):纯状态管理,负责合法状态迁移校验。
  • 提示词策略 (PromptPolicy):集中管理所有任务阶段的提示词生成逻辑,支持接口注入。
  • LLM 流适配器 (LLMStreamAdapter):封装 LLM 流式请求的统一 abort 控制和文本收集。
  • 性能度量 (Instrumentation):纯函数式的任务各阶段耗时统计和工具调用计数。
  • 工具分发系统 (ToolDispatcher):Handler 链模式处理工具调用,包含授权检查、状态受限检查和调用次数限制。

AI 翻译批处理工具增强

  • 新增 AI 翻译批处理工具(add_translation_batch),支持批量提交段落翻译结果。
  • 引入前缀校验机制,确保翻译结果中段落 ID 格式正确,并支持错别字自动更正。
  • 支持部分成功处理:当批次中部分段落校验失败时,有效段落仍可成功写入。
  • 新增通用 AI 提示词定义模块(common.ts),统一翻译、润色、校对任务的基础指令。

AI 工具搜索能力增强

  • 增强 get_characterget_term 工具的搜索能力:精确匹配失败时自动回退到基于名称、别名和翻译的模糊搜索。
  • 为 AI 翻译工具添加全面的单元测试覆盖。

AI 待办事项提醒

  • 新增 AI 任务内待办事项辅助提醒功能。
  • 翻译批次提交后自动触发待办提醒,任务进入 review 状态时提醒未完成事项。

🌐 AI 模型配置增强 (AI Model Configuration)

单模型 CORS 代理开关

  • 新增模型级别的 CORS 代理开关(useCorsProxy),可为每个 AI 模型独立控制是否经过 CORS 代理服务器。
  • 关闭后 API 请求将直连模型服务,适用于本地部署或已配置好跨域的场景。
  • 仅在浏览器模式下生效,Electron 桌面版自动直连。

自定义 HTTP 请求头

  • 新增模型级别的自定义 HTTP 请求头配置(customHeaders)。
  • 支持为每个模型添加任意数量的自定义 Header 键值对。
  • 适用于需要额外认证、路由标记或特殊网关配置的 AI 服务。

代理服务智能化

  • 代理服务新增自动切换重试功能:请求失败时自动按优先级轮询备选代理。
  • 新增网站特定代理映射:系统自动学习哪个代理对哪个网站最有效。
  • 支持指数退避重试策略,最大重试 3 次。

📝 问题修复

  • 修复:多书并行任务时切换书籍导致进度数据关联到错误任务。
  • 修复:切换章节或并发翻译时段落翻译未正确写回目标章节。
  • 修复:章节编辑对话框中的界面交互问题。
  • 修复:多章节并发翻译保存时的竞态条件。

📚 相关文档

  • AI 模型配置: help/ai-models-guide.md
  • 书籍详情页概览: help/book-details-overview.md
  • AI 翻译功能: help/book-details-translation.md
  • 设置说明: help/settings-guide.md

本文档基于 git changes v0.9.2..v0.9.3

Release v0.9.2

18 Feb 02:46
33ea3b7

Choose a tag to compare

发布说明 - v0.9.2

版本信息

  • 版本号: 0.9.2
  • 发布日期: 2026年2月17日
  • 基于版本: v0.9.1

🤖 AI 翻译引擎重构 (AI Translation Engine Refactor)

v0.9.2 对 AI 翻译、润色、校对的核心执行逻辑进行了大规模重构,显著提升了稳定性、可维护性和翻译质量。

通用文本任务处理器 (Text Task Processor)

  • 新增 text-task-processor.ts 核心模块,将翻译、润色、校对三类服务的公共逻辑抽象统一:
    • 段落过滤与有效性校验
    • 分块 (chunk) 构建与重建
    • AI 降级检测与自动重试(最多 2 次)
    • 已处理段落 ID 跟踪,防止重复提交
    • 章节摘要自动触发(翻译完成后后台生成)
    • 前一章节摘要注入翻译提示词
  • 翻译、润色、校对服务代码量大幅缩减,统一走 processTextTask 入口。

AI 任务状态机优化 (Task State Machine)

  • 新增 preparing 状态:AI 在提交翻译前先进行规划确认,减少无效工具调用。
  • 优化任务执行循环,支持多阶段状态转换(preparing → processing → end)。
  • 翻译工具现在要求携带 aiModelId,提升工具调用可追溯性。

批量翻译工具增强 (Translation Tools)

  • add_translation_batch 工具响应增强:优先使用 accepted_paragraphs 字段进行结果规范化,提升重试逻辑的准确性。
  • 翻译提交前校验:相同文本内容检测、引号平衡校验,减少低质量提交。
  • 支持 2 倍 maxBatchSize 弹性处理短分块,提升短章节翻译效率。

AI 待办事项提醒 (Todo Reminder)

  • 新增 AI 任务内的待办事项辅助工具(todo_reminder):
    • 翻译批次提交后自动触发待办提醒。
    • 任务进入 review 状态时提醒待办事项。
    • 仅在有未完成待办时返回,减少 token 消耗。

📊 翻译进度面板升级 (Translation Progress Panel)

工具调用可视化增强

  • 工具调用 ([调用工具: ...]) 现在带有状态色彩标记:
    • 运行中:旋转齿轮图标
    • 成功:绿色勾选图标
    • 警告:黄色警告图标
    • 失败:红色错误图标
    • 已取消:禁止图标
  • 工具结果 ([工具结果: ...]) 提供智能预览:
    • 自动检测成功/警告/失败状态
    • 支持弹出层 (Popover) 查看完整 JSON 结果
    • JSON 内容自动格式化展示

章节过滤功能

  • 新增仅显示当前章节切换按钮,可将任务历史筛选为当前选中章节的任务。
  • 过滤状态持久化保存。

进度显示优化

  • 进度条与任务卡片绑定,直接在任务卡片内显示当前分块进度。
  • 移除了独立的"正在翻译章节"顶部区域,改为在任务列表中统一展示。
  • 清除按钮和过滤按钮移至顶部操作栏,布局更清晰。

🕷️ 小说抓取增强 (Novel Scraper)

  • 抓取对话框 (NovelScraperDialog) 重构,支持预览、选择章节后一键导入/更新。
  • 改进了抓取进度展示与错误提示。
  • 加载状态优化:卷列表 (VolumesList) 和书籍详情页支持章节内容懒加载 loading 状态。

🔧 系统与工具优化

章节标题规范化

  • 扩展章节标题规范化逻辑,支持纯数字格式(如 123)和符号 + 数字格式(如 ○123)。

AI 模型配置

  • 新增 maxOutputTokens 字段(原 maxTokens 重命名为 maxInputTokens),UI 中显示为"上下文窗口"。
  • Gemini 和 OpenAI 服务支持自定义 temperature 配置。

数据同步服务

  • 新增 SyncDataService,支持跨设备数据同步(Gist 等)的基础架构。

路由与导航

  • 新增 Quasar LoadingBar 插件,路由切换时显示顶部加载进度条。
  • 章节工具栏水平对齐样式优化。

JSON 修复

  • 引入 jsonrepair 库,自动修复 AI 返回的格式错误 JSON,减少工具调用失败率。

📝 问题修复

  • 修复:翻译批次验证失败时防止部分段落被意外写入。
  • 修复:校对/润色任务不再影响未翻译段落。
  • 修复:ask_user 工具调用在跳过模式下的正确行为。
  • 修复:AI 任务类型徽章 (badge) 在部分主题下绝对定位异常。
  • 修复:进度追踪改为基于分块数量而非段落数量,避免进度条跳跃。
  • 修复:翻译提交时保留重复翻译选择的语义。
  • 修复:待办提醒在没有未完成项时不再返回空内容。

📚 相关文档

  • AI 翻译功能: help/book-details-translation.md
  • 聊天助手指南: help/chat-assistant-guide.md
  • AI 模型配置: help/ai-models-guide.md

本文档基于 git changes v0.9.1..v0.9.2

Release v0.9.1

09 Feb 01:18

Choose a tag to compare

发布说明 - v0.9.1

版本信息

  • 版本号: 0.9.1
  • 发布日期: 2026年2月8日
  • 基于版本: v0.9.0

🚀 快速入门与引导 (Quick Start & Onboarding)

v0.9.1 致力于优化新用户的首次体验。我们新增了全新的快速入门向导,帮助您在几分钟内掌握 Tsukuyomi 的核心功能。

  • 首次启动弹窗 (First Launch Popup): 简洁直观的欢迎界面,引导您快速导入第一本书或了解核心概念。
  • 快速入门指南 (Quick Start Guide): 全新的文档 help/front-page.md,图文并茂地介绍了如何开始您的第一次 AI 翻译之旅。

🤖 AI 智能助手增强 (AI Assistant Enhancements)

  • AI 帮助查询 (AI Help Query): 遇到不懂的功能?直接在聊天框询问 AI!通过新增的 search_help_docsread_help_doc 工具,AI 现在能够检索内部文档库,为您提供准确的操作指导。
  • 任务状态循环优化: 改进了 AI 任务执行的状态机循环,提升了长任务(如全书翻译)的稳定性和错误恢复能力。

🧹 系统优化 (System Optimization)

  • 服务端代码清理: 移除了旧版的 proxy-server 及相关服务端组件,显著精简了项目结构,专注于纯客户端体验。
  • 依赖升级: 更新了核心依赖库,提升安全性和性能。

📱 移动端体验升级 (Mobile & Responsive Design)

  • 全新移动端视图 (New Mobile View): 针对手机和平板设备进行了全面的界面适配。
  • 响应式布局: 书籍列表、阅读界面和工具栏现在能够根据屏幕尺寸自动调整,提供更流畅的移动阅读和管理体验。

📝 问题修复

  • 修复了帮助文档索引结构的问题。
  • 优化了移动端和窄屏设备下的显示效果。

📚 相关文档

  • 快速入门: help/front-page.md
  • AI 助手指南: help/chat-assistant-guide.md

本文档由自动化工具生成,基于 git changes v0.9.0..v0.9.1

Release v0.9.0

07 Feb 09:25

Choose a tag to compare

发布说明 - v0.9.0

版本信息

  • 版本号: 0.9.0
  • 发布日期: 2026年2月6日
  • 基于版本: v0.8.4

🌟 核心更新:Agentic AI 智能体架构

v0.9.0 是 Tsukuyomi 进化史上最重要的里程碑。我们引入了全新的 Agentic AI 架构,从根本上改变了与 AI 的交互方式。AI 不再只是一个被动的回答者,而是一个能够主动思考、规划并执行复杂任务的智能助手。

  • 思考过程 (Thinking Process): AI 现在会展示其思考、分析和决策的完整过程,让您了解它为何做出某些决定。
  • 工具调用循环 (Tool Use Loop): AI 具备了自主调用工具的能力。它可以在回答您的问题前,主动搜索帮助文档、读取书籍内容、查询记忆库,甚至连续执行多步操作以完成复杂任务。
  • 状态机驱动的任务运行器: 引入了基于状态机的任务执行系统,大幅提升了 AI 任务(如翻译、润色)的稳定性和可观测性。

🎉 新功能

1. 全新书籍管理系统 (New Books Management)

  • 书籍列表页 (BooksPage): 完全重构的书籍管理界面,支持卡片式展示和网格布局。
  • 多维搜索与排序: 支持按标题、作者、标签等字段搜索,并提供 12 种排序方式(如按更新时间、章节数、字数等)。
  • Web 抓取器 (Web Scraper): 新增 NovelScraperDialog,支持从 Syosetu, Kakuyomu 等源站一键抓取小说。
    • 智能章节筛选: 在导入前预览章节列表,支持勾选、全选或按索引范围灵活导入。
  • 批量操作: 支持批量章节摘要生成,自动跳过已处理章节。

2. 专业级翻译工作流 (Advanced Translation Workflow)

  • 润色与校对服务: 新增独立的 润色 (Polishing)校对 (Proofreading) 任务类型,配合专用 Prompt,提供出版级的内容优化。
  • 翻译进度面板: 全新的 TranslationProgress 组件,提供毫秒级的任务进度反馈、实时日志流和中断控制。
  • 智能上下文构建: 翻译任务现在会自动检索并注入相关的 术语表角色设定记忆片段,显著解决长篇小说翻译中的"遗忘"和"不一致"问题。

3. 记忆系统 2.0 (Memory System 2.0)

  • 记忆附件 (Attachments): 记忆条目现在支持附件,AI 可以读取更丰富的背景资料。
  • 引用可视化: 阅读界面新增 记忆引用计数悬浮预览,直观展示当前章节与哪些记忆点强相关。
  • 全面管理: 新增记忆管理面板,支持增删改查、搜索和列表视图,方便维护庞大的世界观设定。

4. 智能助手与帮助系统

  • AppRightPanel: 全新的右侧面板,集成了 AI 聊天、工具调用和上下文管理。
  • 应用内帮助系统: 内置完整的 Markdown 帮助文档库。
  • AI 文档导航: 遇到问题直接问 AI,它会自动搜索内部文档并给出精准解答。

🔧 改进与优化

核心算法与性能

  • 动态规划引号配对: 引入 DP 算法重写了翻译规范化器,精准解决翻译中常见的引号不匹配、嵌套错误问题。
  • Schema 优化 (-20% Token): 重构了 AI 输出的数据结构,通过短键名映射和整数索引优化,减少了约 20% 的 Token 消耗,同时提升了生成速度。
  • 空白内容过滤: 自动检测并跳过空白或仅含标点的段落,避免无效的 AI 调用。
  • 并发控制: 优化了批量翻译的并发限制(调整为 30),在速度和稳定性之间取得更好平衡。

构建与开发体验

  • macOS 完善支持: 完整的 Electron 构建流程,包含代码签名 (Code Signing)、公证 (Notarization) 和权限配置。
  • 类型安全: 全面增强了代码库的 TypeScript 类型定义,特别是针对 Electron 菜单和 AI 工具调用。
  • 图标管理: 集成 Quasar Icon Genie,统一管理多平台图标资源。

🐛 问题修复

  • 修复了 quote pairing 算法在处理复杂嵌套引号时的逻辑错误。
  • 修复了 AI 任务在网络波动下的状态同步异常。
  • 修复了书籍列表页在移动端和超宽屏下的布局错位问题。
  • 修复了批量翻译时偶发的任务卡死问题。
  • 解决了一些组件的内存泄漏隐患。

📝 技术细节

代码统计

  • 变更文件: 406 个文件
  • 代码增减: +50,486 行 / -12,953 行
  • 主要新增模块:
    • src/services/ai/agent/: Agentic AI 核心架构
    • src/services/ai/tasks/: 专用任务服务(翻译/润色/校对)
    • src/components/books/: 新版书籍管理 UI
    • src/utils/text-matcher.ts: 高级文本匹配算法

架构变更

  • 引入 TaskRunner 类管理长运行任务。
  • 拆分 AIProcessingStore 为更细粒度的状态管理。
  • 实现 ToolRegistry pattern 用于 AI 工具扩展。

🎯 用户体验改进

  1. 可视化思考: 看着 AI "思考"是一种全新的体验,让你对结果更具信心。
  2. 无缝导入: 从"复制链接"到"开始阅读"的流程被缩短到极致,章节筛选功能让导入更加随心所欲。
  3. 掌控感: 详细的进度条和日志,让你不再对着加载动画发呆,清楚知道 AI 正在翻译哪一段。
  4. 上下文感知: 在阅读时随时查看关联的记忆和设定,不再为"这个人物是谁"困扰。

🔄 升级建议

强烈建议所有用户升级到 v0.9.0

这个版本不仅仅是功能的增加,更是底层架构的质变。Agentic AI 的引入为未来更强大的自动化功能奠定了基础。新的翻译和记忆系统将显著提升您的阅读和创作体验。


📚 相关文档

  • 新手入门: help/front-page.md
  • 书籍列表指南: help/books-page-guide.md
  • AI 翻译详解: help/book-details-translation.md
  • 记忆系统指南: help/book-details-memory.md

🙏 致谢

感谢所有测试人员和反馈贡献者。特别感谢社区对新 AI 架构的建议。


本文档由自动化工具生成,基于 git diff v0.8.4..v0.9.0

Release v0.8.4

19 Jan 06:07
079c491

Choose a tag to compare

发布说明 - v0.8.4

版本信息

  • 版本号: 0.8.4
  • 发布日期: 2026年1月19日
  • 基于版本: v0.8.3

🎉 新功能

1. 批量章节摘要 (Batch Chapter Summary)

  • 批量处理面板: 新增 BatchSummaryPanel 组件,支持一键为全书或选定章节生成缺失的摘要。
  • 实时进度反馈: 支持显示当前正在处理的章节标题及整体进度。
  • 任务控制: 集成 AbortController,支持用户随时安全终止批量生成任务。
  • 智能过滤: 自动识别并仅处理缺失摘要的章节,避免重复消耗 AI 额度。
  • 章节摘要服务: 新增 chapter-summary-service.ts,提供专门的章节摘要生成功能。

2. AI 用户交互工具 (Ask User Tools)

  • 用户提问对话框: 新增 AskUserDialog 组件,支持 AI 向用户提出结构化问题。
  • 批量提问工具: 实现批量用户提问功能,支持一次性向用户询问多个相关问题。
  • 跳过设置: 新增"跳过 AI 询问用户"设置选项,允许用户在不需要时禁用此功能。
  • 异步处理: 完整的异步处理机制,支持 Promise 风格的交互流程。

3. 记忆管理增强

  • 记忆列表工具: 新增 list_memories 工具,支持分页和排序查看 Memory 记录。
  • 记忆同步增强: 改进记忆数据的同步逻辑和 UI 刷新机制。
  • 记忆导入: 在 Electron 设置中实现记忆数据导入功能。
  • 记忆服务: 新增 memory-service.ts,提供统一的记忆管理服务。

4. 全局配置缓存

  • 配置缓存服务: 新增 global-config-cache.ts,提供全局配置的缓存机制。
  • 性能优化: 减少重复的配置读取操作,提升应用性能。

5. AI 任务上下文管理增强

  • 关联信息注入: 在翻译、润色、校对和摘要任务中,自动注入相关的术语表和角色设定信息,显著提升 AI 生成内容的准确性和一致性。
  • 通用助手工具: 引入 ai-task-helper 模块,统一管理 AI 任务的上下文构建、模型选择和错误处理逻辑。
  • 提示词优化: 针对章节摘要任务优化了 Prompt,使其更能捕捉章节的核心剧情。

6. 润色和校对服务增强

  • 润色服务: 新增专门的润色服务,提供文本润色功能。
  • 校对服务: 重构校对服务,增强校对背景信息和上下文支持。
  • 术语翻译服务: 新增术语翻译服务,支持术语的自动翻译。

7. 段落位置工具

  • 段落位置获取: 新增 get_paragraph_position 工具,支持获取段落在文档中的位置。
  • CJK 工具重构: 优化中日韩字符处理工具。

8. OpenSpec 工作流

  • 提案工作流: 新增 OpenSpec 提案创建工作流。
  • 应用工作流: 新增 OpenSpec 应用工作流。
  • 归档工作流: 新增 OpenSpec 归档工作流。
  • 项目文档: 新增 openspec/project.md,详细说明项目结构和规范。

9. 代码审查工作流

  • 代码审查流程: 新增代码审查工作流,支持全面的代码审查。
  • 版本发布准备: 新增版本发布准备工作流。

10. 上下文菜单管理

  • 上下文菜单: 新增 useContextMenuManager composable,提供统一的上下文菜单管理。
  • 右键菜单: 在 ParagraphCard 组件中集成上下文菜单功能。

🔧 改进与优化

UI/UX 体验

  • 思考过程面板: 优化 ThinkingProcessPanel 组件的消息处理和滚动性能。
  • 同步状态防抖: 为顶部状态栏的同步倒计时添加了防抖逻辑,避免高频更新导致的界面微颤和性能开销。
  • 摘要生成交互: 优化了单个章节摘要生成后的 UI 自动刷新机制,无需手动刷新即可看到新生成的摘要。
  • 书籍详情页: 在批量摘要入口处直观显示当前书籍标题及待处理章节数。
  • 右侧面板: 扩展 AppRightPanel 组件,支持更多面板类型。
  • 翻译进度: 改进 TranslationProgress 组件的进度显示和交互。
  • 章节设置: 重构 ChapterSettingsPopover 组件,改进用户界面。
  • 章节内容面板: 增强 ChapterContentPanel 组件的功能。

AI 服务优化

  • 提示词增强: 为翻译、润色、校对任务添加严格的输出规则。
  • 消息总结: 增强消息总结功能。
  • 搜索替换: 改进搜索替换功能。
  • 思考过程优化: 优化思考过程的处理和缓存机制。
  • OpenAI 服务: 更新 OpenAI max tokens 限制和验证逻辑。

数据同步优化

  • 同步数据服务: 扩展 sync-data-service.ts,支持更多数据类型的同步。
  • Gist 同步: 改进 GitHub Gist 同步服务。
  • 自动同步: 增强自动同步触发机制。

代码质量与性能

  • 异步控制优化: 核心 AI 服务全面采用异步流式处理及可中断机制,提升应用响应速度。
  • Vue 模板优化: 清理了部分组件中的冗余事件监听和计算属性。
  • 滚动节流: 为滚动更新实现节流机制,提升 UI 性能。
  • 工具结果截断: 移除 TOOL_RESULT_MAX_LENGTHStruncateToolResult 函数,简化代码。

任务流程优化

  • 状态机更新: 将任务状态从 'completed' 更新为 'review'。
  • 润色校对跳过: 更新润色和校对服务,跳过已完成阶段。

开发体验

  • 开发指南: 新增 CLAUDE.md 文档,提供开发指南。
  • 代理规则: 添加规则强制使用中文进行思考和输出。
  • Git 忽略: 更新 .gitignore 文件,清理调试日志。
  • VSCode 任务: 新增 VSCode 任务配置。

🐛 问题修复

核心功能修复

  • 章节排序修复: 修复了章节列表中拖拽排序可能导致的位置偏移问题。
  • 摘要显示修复: 修复了某些情况下生成摘要后面板标题显示空白的 Bug。
  • 内存泄漏预防: 增强了 AI 任务销毁时的资源清理。
  • ESLint 问题: 修复 AI processing store 中的 no-this-alias 问题。
  • 测试修复: 更新 ask_user 工具测试以正确处理 Promise 解析。

📝 技术细节

主要新增文件

  • src/components/novel/BatchSummaryPanel.vue: 批量摘要管理面板 (326 行)
  • src/components/dialogs/AskUserDialog.vue: 用户提问对话框 (354 行)
  • src/services/ai/tasks/chapter-summary-service.ts: 章节摘要服务 (262 行)
  • src/services/ai/tools/ask-user-tools.ts: 用户提问工具 (312 行)
  • src/services/global-config-cache.ts: 全局配置缓存 (174 行)
  • src/services/memory-service.ts: 记忆服务 (177 行)
  • src/stores/ask-user.ts: 用户提问状态管理 (340 行)
  • src/composables/useContextMenuManager.ts: 上下文菜单管理 (171 行)
  • openspec/: OpenSpec 工作流文档和规范
  • docs/ReleaseNotes/RELEASE_NOTES_v0.8.4.md: 发布说明

主要修改文件

  • src/services/ai/tasks/utils/ai-task-helper.ts: AI 任务辅助工具重构 (740 行优化)
  • src/services/ai/tasks/term-translation-service.ts: 术语翻译服务重构 (394 行删除)
  • src/components/layout/AppRightPanel.vue: 右侧面板扩展 (369 行改进)
  • src/components/novel/ChapterSettingsPopover.vue: 章节设置重构 (282 行改进)
  • src/components/novel/TranslationProgress.vue: 翻译进度改进 (116 行改进)
  • src/services/ai/tasks/proofreading-service.ts: 校对服务重构 (216 行改进)
  • src/services/ai/tasks/polish-service.ts: 润色服务增强 (52 行改进)
  • src/services/ai/tasks/translation-service.ts: 翻译服务增强 (37 行改进)
  • src/services/ai/tasks/prompts/index.ts: 提示词增强 (150 行改进)
  • src/services/ai/tools/memory-tools.ts: 记忆工具增强 (140 行改进)
  • src/services/ai/tools/paragraph-tools.ts: 段落工具增强 (209 行改进)
  • src/services/sync-data-service.ts: 同步数据服务扩展 (184 行改进)
  • src/stores/ai-processing.ts: AI 处理状态管理增强 (228 行改进)
  • src/components/ai/ThinkingProcessPanel.vue: 思考过程面板优化 (130 行改进)

新增测试文件

  • src/__tests__/ask-user-store.test.ts: 用户提问状态管理测试 (93 行)
  • src/__tests__/ask-user-tools.no-ui.test.ts: 用户提问工具测试 (166 行)
  • src/__tests__/memory-tools.list-memories.test.ts: 记忆列表工具测试 (111 行)
  • src/__tests__/sync-data-service.test.ts: 同步数据服务测试 (327 行)
  • src/__tests__/ai-task-helper.executeToolCallLoop.test.ts: AI 任务助手测试扩展 (237 行改进)
  • src/__tests__/ai-task-helper.truncateToolResult.test.ts: 删除 (574 行删除)

OpenSpec 变更提案

  • openspec/changes/batch-chapter-summary/: 批量章节摘要功能
  • openspec/changes/archive/2026-01-19-add-ai-ask-user-tool/: AI 用户提问工具
  • openspec/changes/archive/2026-01-19-add-ask-user-batch-tool/: 批量用户提问工具
  • openspec/changes/archive/2026-01-19-add-chapter-summary/: 章节摘要功能
  • openspec/changes/archive/2026-01-19-add-global-config-cache/: 全局配置缓存
  • openspec/changes/archive/2026-01-19-add-list-memories-tool/: 记忆列表工具
  • openspec/changes/archive/2026-01-19-add-skip-ai-ask-user-setting/: 跳过 AI 询问用户设置
  • openspec/changes/archive/2026-01-19-update-completed-state-to-review/: 更新任务状态
  • openspec/changes/archive/2026-01-19-update-polish-proofreading-skip-completed-stage/: 更新润色校对跳过逻辑

代码统计

  • 新增功能: 10 大项
  • 改进优化: 5 类
  • 问题修复: 5 类
  • 代码变更: 9,424 行新增,2,026 行删除
  • 修改文件: 138 个文件
  • 新增测试: 约 697 行测试代码
  • OpenSpec 提案: 9 个变更提案

🎯 用户体验改进

  1. 更强大的批量能力: 告别逐章点击,一键完成整本书的摘要提取,极大提升创作效率。
  2. 更聪明的 AI: 现在的 AI 能够"记住"你的术语和角色设定,无论是翻译还是写摘要都更具专业性。
  3. 更顺畅的界面: 修复了烦人的拖拽偏移问题,同步倒计时也变得更加静默优雅。
  4. 更好的交互: 新增 AI 用户交互工具,AI 可以主动向用户提问,获取更准确的信息。
  5. 更完善的记忆管理: 支持记忆的查看、同步和导入,AI 的记忆更加可控。
  6. 更高的性能: 全局配置缓存和滚动节流优化,提升应用响应速度。
  7. 更规范的流程: OpenSpec 工作流和代码审查工作流,提升开发质量。

🔄 升级建议

本次更新重点提升了 AI 创作效率内容一致性用户体验

建议所有深度使用 AI 功能的用户升级,尤其是:

  • 拥有大量章节需要整理摘要的用户。
  • 对翻译一致性(词汇、角色)有较高要求的用户。
  • 需要 AI 主动提问获取信息的用户。
  • 关注应用性能和响应速度的用户。

📚 相关文档

  • 项目架构文档:CLAUDE.md
  • 翻译指南:docs/TRANSLATION_GUIDE.md
  • 主题指南:docs/THEME_GUIDE.md
  • 批量替换示例:docs/batch-replace-examples.md
  • AI 任务流程文档:docs/TRANSLATION_AI_TASK_FLOW.md
  • 流程改进建议:docs/TRANSLATION_AI_TASK_FLOW_IMPROVEMENTS.md
  • OpenSpec 项目文档:openspec/project.md
  • OpenSpec 代理指南:openspec/AGENTS.md
  • v0.8.3 发布说明:docs/ReleaseNotes/RELEASE_NOTES_v0.8.3.md

🙏 致谢

感谢所有在本次版本开发中提供反馈和建议的伙伴们。


本文档由自动化工具生成,基于 git diff v0.8.3..v0.8.4-chapter-summary