| 编号 | 类型 | 问题描述 | 状态 |
|---|---|---|---|
| FIX-01 | Bug | "跟随 AI 会话模型"复选框丢失且功能失效 | 已修复 |
| FIX-02 | Bug | DeepSeek 模型写作卡顿、内容缺失 | 已修复 |
| FIX-03 | Bug | 章节编辑器删除文字时滚动条跳动 | 已修复 |
| FIX-04 | Bug | 备份导入后章节和大纲丢失 | 已修复 |
| FEAT-01 | 功能 | 登录页新增"恢复数据"按钮 | 已上线 |
| FIX-05 | Bug | 幽灵条目(文件已丢失)无法删除 | 已修复 |
| FIX-06 | Bug | 嵌套路径虚拟化解析错误导致删除失败 | 已修复 |
现象:设置-小说-模型中,"跟随 AI 会话模型"后面的复选框消失,且勾选后模型未跟随切换。
根因:UI 层将复选框错误地渲染为按钮形式;模型回退优先级错误,defaultLlmModel 优先级高于 aiChatModel,导致跟随功能失效。
修复:将按钮改为复选框并实现禁用逻辑;调整 resolveNovelModel 中的模型回退优先级为 aiChatModel > defaultLlmModel。
现象:使用 DeepSeek 模型进行小说写作时持续卡顿,AI 会话中无法产生内容。
根因:resolveUserVisibleReasoning 函数将 auto 推理模式强制转换为 high,导致 DeepSeek 启用高强度推理,引发生成卡顿和内容缺失。
修复:修改 user-visible-reasoning.ts 使 auto 模式保持原值;移除 deep-chapter-generation.ts、deep-outline-generation.ts、style-extraction-engine.ts 中对该函数的调用,改为直接使用 config.reasoning。
现象:在章节最后一行删除文字时,右侧滚动条自动滚动,导致难以定位删除位置。
根因:resize() 函数调整 textarea 高度时使用两步法(先设 height: auto 再设 scrollHeight),导致外层滚动容器 .immersive-scroll-container 的 scrollTop 跳动。
修复:在调整高度前后保存并恢复滚动容器的 scrollTop 和 scrollLeft。
现象:重装系统后原 QMBOOK 文件夹被删除,导入备份数据后章节和大纲均不显示。
根因:备份导出时知识目录名称可能为 wiki(旧版)或 QM(新版),导入后目录名不匹配,导致软件无法识别章节和大纲文件。
修复:导出时统一以 wiki 名称存入 zip 包;导入后自动执行目录迁移(wiki → QM,.llm-wiki → .qmai);导入成功后使用备份中的项目名而非默认"已恢复项目"。
功能:在青幕写作欢迎页面新增"恢复数据"按钮,用户无需打开项目即可从登录页一键导入备份数据。
实现:按钮点击后弹出文件选择器,选择 zip 备份文件后自动执行导入流程,完成后刷新最近项目列表。
现象:导入后大纲树中出现文件不存在的"幽灵条目",点击删除时报错"系统找不到指定的文件",且无法删除。
根因:moveFileToTrash 函数在删除前先调用 readFile 读取文件内容(用于放入回收站),文件不存在时 readFile 抛出异常,中断整个删除流程。
修复:moveFileToTrash 中 readFile 失败时用空内容占位;deleteFile 失败时静默继续;handleDeleteFolder 中单个文件删除失败不中断整体流程;handleDeleteClick 中 cleanupDeletedSourceMemory 失败不影响文件删除。
现象:FIX-05 修复后部分幽灵条目仍无法删除,点击删除时提示文件找不到。
根因:由于错误导入导致磁盘上出现嵌套的 QM 目录结构(如 QM/outlines/1/QM/chapters/xxx.md)。路径虚拟化时前端看到路径含两个 wiki 段(wiki/outlines/1/wiki/chapters/xxx.md),但 resolve_project_storage_path 中的 replace_last_path_segment 只替换最后一个 wiki,导致解析后的路径与磁盘实际路径不匹配。
修复:新增 replace_all_path_segments 函数,替换路径中所有匹配的段(而非仅最后一个),用于 resolve_project_storage_path 中 wiki → QM 和 .llm-wiki → .qmai 的全量替换。