> **当前第一阶段交接入口（2026-10-28）**：请先阅读 [PHASE1_TECHNICAL_HANDOVER.md](PHASE1_TECHNICAL_HANDOVER.md) 与 [PHASE1_BASELINE.json](PHASE1_BASELINE.json)。当前功能基线为 V0.19.19 / LT-CP-002 / Sites第81号；本文后续为历史累计记录，旧现状描述不可直接作为当前结论。

# 当前架构入口 · V0.6

网站源文件已由dist/迁至public/；app/与server/为云端接口，db/与drizzle/为D1数据库模式及迁移。dist/为构建输出，不可手工编辑。历史章节的旧路径/纯静态发布方式以本段及第17节为准。

# 生命树内容运营系统：开发与维护交接指南

版本：V0.5.2 / 2026-10-20。责任方：尤智科技。工程编号：LT-OPS-001。

## 1. 接手先读

本项目是已部署的静态网页原型，不是已交付的Windows桌面程序。不要把界面按钮存在当作接口实测通过。请先读本文件和 ACCEPTANCE.md，再运行测试、核对当前发布版本。不得用测试素材冒充真实生产验收。

当前实现：素材入库、内容版本、人工审核登记、固定Canvas封面、人工发布记录、JSON内容备份；新增四平台独立设置、模型列表、连接测试、AI生成填表、口令加密保存Key。真实API调用尚待用户自备Key验证。小红书自动草稿及Windows浏览器连接尚未实现；已提供固定模板多页排版，浏览器视觉待验证。

项目私有地址：https://lifetree-ops.halemouse64.chatgpt.site
Site ID：appgprj_6ad6cbeeaf7081919c954b258a1871a5
源代码已使用该Site绑定的Git仓库管理。代码仓库不备份用户浏览器内的数据。网站可见权限与浏览器本地记录是两种不同机制。

## 1.1 V0.3平台与网络约定

仅内置四个平台；未来增加须保持少于十个。配置及Key分别保存，切换不复用其他平台Key。OpenRouter原schema 1数据和密文保留原键，无破坏性迁移；其他平台键名追加`:openai`、`:deepseek`或`:volcengine`。`lifetree-provider-v1`保存当前选择。回滚V0.2会重新只使用OpenRouter配置，不删除其他平台数据。

| 平台 | 官方基础端点 | 模型来源 |
| --- | --- | --- |
| OpenRouter | https://openrouter.ai/api/v1 | GET models，或手填 |
| OpenAI | https://api.openai.com/v1 | GET models，或手填；须选择支持Chat Completions的文字模型 |
| DeepSeek | https://api.deepseek.com | GET models，或手填 |
| 火山方舟 | https://ark.cn-beijing.volces.com/api/v3 | 控制台模型ID或ep-接入点ID |

OpenAI使用max_completion_tokens；其他适配器使用max_tokens。模型连通测试上限256 Token，推理模型可能用尽预算而没有最终文本，此时不等同网络不通。未承诺支持每个平台的所有模型/接口；图片、Responses API、Coding Plan及其他地区端点未接入。

目前界面显示固定官方端点，不开放任意地址，避免既有Key误发往第三方。若需新地区/套餐端点，按单独受信适配器增加，提供独立凭据绑定及验证，不能仅修改URL就假定兼容。

当前网络执行位置是访问页面的用户浏览器，与网站托管服务器、开发环境各不相同。静态网页不能按供应商控制系统VPN或HTTP/SOCKS代理，也无法可靠区别DNS/TLS/代理/CORS失败。不可显示虚假的“已直连/已走VPN”。当前只报告浏览器实际收到的HTTP结果或笼统网络失败，连接成功不证明具体出口。

Windows版计划由本机服务发请求，每平台支持明确的直连/受支持的系统代理/显式代理配置；只有实际实现并验证后才启用对应选项。服务端部署则使用服务器自身网络。不得默认认为用户浏览器VPN会作用到服务器。维护时记录执行位置、平台、端点、时间、HTTP状态及耗时，禁止记录Authorization或原始私密素材。

核对的官方文档：
- https://api-docs.deepseek.com/zh-cn/
- https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/create
- https://console.volcengine.com/ark/region%3Acn-beijing/docs/base-url-and-authentication

## 2. 开发环境与运行

原生HTML/CSS/JavaScript；无前端构建依赖。测试需要支持WebCrypto的Node.js（本轮实际版本见验收记录）。从仓库根目录执行：

```sh
node tests/workflow.cjs
node tests/ai.cjs
node --check dist/app.js
node --check dist/settings.js
```

本地静态预览可使用Python 3：

```sh
python -m http.server 8080 --bind 127.0.0.1 --directory dist
```

打开 http://127.0.0.1:8080 。WebCrypto需要HTTPS或localhost安全上下文。不要直接双击HTML，不要将预览服务绑定所有网卡。该命令只是开发预览，不是Windows正式部署交付。域名/端口变化会得到独立的浏览器存储，迁移前导出内容备份。

## 3. 代码地图与数据结构

- dist/index.html：界面与导航，系统设置、运行说明。
- dist/style.css：现有视觉样式。
- dist/core.js：业务状态机。LT.create / draft / submit / review / pack / publish / log / prompt。
- dist/app.js：内容管理UI、AI填表接入、内容导入导出、Canvas封面。
- dist/ai.js：配置校验、密钥加密、OpenRouter适配器、模型返回结构校验。
- dist/settings.js：设置页动作及状态展示。
- tests/workflow.cjs：审核与版本等业务回归。
- tests/ai.cjs：密钥安全边界、配置切换、接口错误及结构校验测试（模拟网络）。
- docs/：权威维护文档；dist中的同名文档是下载副本，修改后同步。
- .openai/hosting.json：固定项目身份和静态发布目录，不要新建另一个Site替换。

localStorage键：

| 键 | 内容 | 备份策略 |
| --- | --- | --- |
| lifetree-ops-v01 | 原有内容记录数组 | 工作台导出备份；schema 1 |
| lifetree-settings-v1 | schema、provider、model、maxTokens | 设置页导出，不含Key |
| lifetree-key-v1 | schema、salt、iv、data（Base64） | 不进入普通备份；新电脑重新填Key |

设置schema 1支持provider=openrouter/openai/deepseek/volcengine，model为用户选择的模型ID，maxTokens整数128–8000。配置修改不改历史草稿；新请求读取新配置。进行中的请求使用发出时的Key和模型。模型列表只代表目录，不保证用户有额度/访问权。

## 4. Key管理与调用

新Key必须搭配至少12字符的独立口令保存。WebCrypto PBKDF2-SHA256（310000次、随机16字节salt）派生AES-GCM-256密钥，每次加密使用随机12字节IV。只保存密文和必要参数，不保存口令；明文Key只在当前页面内存使用。刷新后需解锁；锁定不撤回在途网络请求。忘记口令只能重新输入Key覆盖，不能恢复旧Key。

这不是操作系统级密钥库，也不能防御恶意浏览器扩展/XSS/被控制的终端。正式Windows版应迁移到系统凭据保护（如DPAPI）与本机后台，网页不返回完整Key。现版没有共享服务器保存Key，浏览器直接请求所选供应商。

平台端点见下表：OpenRouter模型目录可无Key读取；OpenAI/DeepSeek模型目录需要对应Key；火山方舟手填控制台模型/接入点ID。生成使用POST chat/completions。Bearer Key仅放Authorization头；不用Cookie；禁止重定向；90秒超时，不自动重试，以避免重复计费。模型测试发送“Reply with OK only.”，生成只发送本条素材的任务提示，不发送所有记录。错误按HTTP状态转换为固定中文信息，不显示服务端原始响应或密钥。

生成返回字段：title、body、tags、cover、reviewNotes，全部字符串。封面≤32字符。解析成功只填入表单，用户检查后保存；不自动审核、发布。若用户在请求期间改动表单/切页/保存版本，不覆盖内容。失败保留原文。生成来源保存实际响应模型与时间；保存新版本会作废旧审核。

官方接口参考（核对日期2026-10-20）：
- https://openrouter.ai/docs/api/api-reference/models/get-models
- https://openrouter.ai/docs/api/api-reference/chat/send-chat-completion-request

新增供应商时须显式白名单适配器及独立Key，不能把OpenRouter Key发往自定义地址。保留统一的models/test/generate接口，并补充端点、鉴权、计费、隐私和故障测试。暂未实现图片模型接口。

## 5. 操作与排障

首次：系统设置 → 输入Key和独立解锁口令 → 读取列表或填写完整模型ID → 保存 → 测试（少量API用量） → 草稿页生成 → 检查 → 保存版本 → 专业审核。

换模型：改模型ID后保存；Key留空即保留。换Key：填新Key及口令后保存。再次打开：填写解锁口令，点解锁。删除本机Key不等于在OpenRouter撤销Key；平台撤销由账号所有者操作。

401检查Key；402检查额度；403检查服务权限；429稍后手动重试。网络失败检查用户电脑访问OpenRouter能力和浏览器跨域限制。超时不等于没计费，先查供应商用量。JSON错误或空输出可换模型或调整输出上限；不会自动换到更贵的模型。输出Token上限不等于月预算硬限制，¥500/月预算需在供应商侧监控，当前系统无月费用计量或硬限额。

本地保存失败检查浏览器存储配额/隐私模式。原内容导入有结构校验，恢复前必须备份；内容备份不能迁移Key。多人/多个页面同时编辑没有并发保护，请单人单页使用。

## 6. 发布、回滚与变更纪律

使用Sites技能的现有项目流程：get_site → 临时仓库写凭据 → source helper打开 → 修改与测试 → source helper提交推送及归档 → 原私有权限部署。不要把短期仓库凭据写文件、输出到日志或命令参数。每次版本记录修改范围、测试结果、未完成项。回滚选择之前已保存的版本；回滚前导出浏览器数据。不要假设回滚代码自动回滚localStorage。

schema升级必须提供迁移和回滚说明；禁止直接清空已有用户记录。文档和代码同一次提交发布。遇到未验证事实明确标注，不捏造登录状态、审核、发布或平台授权。

## 7. Windows及后续工作边界

下一阶段：本机启动入口、持久数据库/文件目录、操作系统保护Key、日志脱敏和备份恢复；模板化多页排版；小红书专用持久浏览器目录与人工登录。

小红书浏览器会话和模型Key分别管理。尚未确认通用官方草稿API；开源项目不能视为官方授权。对接必须遵守平台规则，不做规避检测。每次保存草稿需重新打开核对标题、正文、标签和全部图片；验证关闭并重启同一浏览器后能否继续打开。不得凭点击成功或出现URL就报告完成。不实现自动公开发布，直至有明确授权与已通过审核的内容。

业务专业边界：沈艳/授权人员审核。不得将未经处理的咨询隐私发送外部模型。当前审核只是本机人工登记，没有独立审核身份认证或防篡改审计能力。

## 8. 接手完成标准

接手Agent应能运行测试、解释数据在哪里、独立更换Key/模型、定位一次模拟故障、说明当前未实现功能。生产验收必须包含一次真实授权素材→生成→专业审核→实际发布→证据归档；本轮未达到该验收。

## 9. V0.4图文排版与Windows启动包

新增dist/layout.js：本地Canvas固定900×1200模板，封面在前，正文34px、48px行距、每页15行，按实际字体测量自动换行和分页。正文不截断，超过50页阻止渲染/导出。新功能不调用AI接口；不同系统字体可能导致分页不同，正式审核与发布应使用同一台机器导出的文件。未提供自选模板、真实图片生成或图片上传。文字层面测试不等于实际浏览器视觉验收。

草稿/审核/发布包页展示完整图文预览，支持ZIP一次下载PNG、文案和manifest。标签仍是笔记文案字段，不自动印入正文图。reviewNotes单独保存，不进入发布文案及正文图；历史版本保留此字段。旧版本已混入正文的审核疑点不会自动删改，需要用户检查后编辑。

首次升级时给旧记录标记layout=lt-cards-v1；待审/已审核/已发布记录回到草稿制作并取消当前审核，保留实际发布登记及历史版本，要求重新审核新增图片。导入旧备份后需刷新触发迁移；切勿将旧审核当作新版完整图文审核。

Windows启动包：dist/LifeTree-Windows-v04.zip，包含dist源码、windows启动器、维护文档和测试代码；不含用户Key、浏览器记录、Git元数据。解压全部文件，Windows已安装Python 3时，双击windows/Start-LifeTree.bat。仅监听127.0.0.1:8765；自动打开默认浏览器。关闭终端即停止。端口占用时退出，不随意打开已有服务。尚未做真实Windows实机验证，不能称为已验收的安装程序。

本地网址与原在线站点的存储互相独立。迁移前在旧站导出内容JSON，在本地恢复；Key需在本地重新配置。此包仍是浏览器直连供应商，并没有实现本机代理执行器或小红书自动草稿保存。Python启动器仅托管静态文件，不接收上传、不提供服务端数据库。

测试新增：node tests/layout.cjs检查分页不丢字符、Unicode、行数；生成ZIP后由Python zipfile独立验证CRC/文件名和内容。后续接手者须补充Windows浏览器实际视觉及网络测试。

## 10. V0.4.1生成反馈修复

触发：用户提供截图证明OpenRouter连接测试成功，但重新生成没有可见反馈。截图中的正文仍是预置测试稿，因此不能认为真实生成通过。

代码检查发现：toast放在原生dialog外，原生dialog处于浏览器top layer，普通z-index不能确保提示可见；提示4.5秒消失；刷新后Key锁定但草稿页没有持续说明；排版仅取已保存版本。这些是已确认的代码/交互问题，不能据此认定真实API失败的唯一原因。

修复：dialog内部常驻提示；生成按钮显示等待秒数；生成前校验解锁和模型配置；生成状态写入当前记录generation及AI生成事件日志；支持导出不含Key、正文的本篇诊断JSON。生成填表后明确提示未保存；保存按钮改名提示同时更新排版。模型返回tags/reviewNotes纯字符串数组时可正常转换，其他无效结构仍报错。

诊断记录仅在本浏览器内容记录保存，并未上传后台，Agent仍不能远程读取。后续补集中日志时须按字段白名单发送，不能上传Key、原始请求或咨询隐私。旧历史没有记录的调用无法追溯恢复。

待真实用户复验：刷新→解锁Key→打开测试内容→AI生成→观察常驻状态→成功填入→保存→核对新版本预览；失败导出本篇诊断。此次不更改模型、Key、原素材和已有审核规则。

## 11. V0.4.2：用户实测与排版优化

2026-10-20用户提供本机日志截图：北京时间15:15:46曾因输出上限失败，15:17:32开始再次请求，15:18:02记录AI生成成功；后续保存V7至V10，15:19:30提交审核。随后截图显示真实新正文、独立内部审核疑点、封面及2张正文图。因此可确认该用户环境下OpenRouter文字生成、填表、保存、分页预览和送审走通。此证据不代表其他平台通过，也不代表专业审核通过、ZIP实机解压或小红书发布完成。

截图反馈：封面标题偏小、正文第一页密而第二页稀。V0.4.2将封面主标题从62px增至84px，支持显式换行；分页在原最大15行内，按总页数均衡分配，页间行数差不超过1，保留全部字符和空行。仍可能跨段分页，字体随设备变化，不承诺语义段落完整或每页视觉重量相同。

新增：图片点击/键盘Enter或空格放大检查；相同字段重复保存不增加版本号、不取消当前审核。记录布局标记升级为lt-cards-v2，首次打开旧布局记录时要求重新审核，原素材、内容、历史和发布登记保留。用户无需重新调用模型。

Windows包同步源码，仍需Python 3；真实Windows启动和小红书草稿流程未验收。此轮无真实Key调用或浏览器视觉QA，需在用户环境核对新字号及分页。

## 12. V0.4.3：封面重新设计

用户反馈封面文字排版不美观；此前仅验证可显示且不溢出，不能当作设计验收。本轮重做：独立dist/cover.js排版模块，品牌头、服务栏目、主标题、底部深绿品牌区及少量植物装饰。标题按标点优先分行；显式换行优先保留并自适应缩小字号；无标点时按宽度均衡分配。最大字号112px，标题区域最多4行，拒绝超长标题，不用省略号截掉文字。

已有drawCover调用统一转至LTCover.draw，预览、单张下载和ZIP使用同一版式；layout升级lt-cards-v3后要求重新审核。用户无需重新调用AI。PNG示例dist/cover-example.png由实际cover.js使用离线Canvas渲染；测试字体为Noto Sans SC，网页使用设备字体，因此具体字形/度量仍依设备而异。字体未随网站打包。四种长短及手动断行标题已离线渲染，主示例已人工查看；这不是浏览器/Windows实机QA。

未声称已接入第三方完整开源设计工具；当前新模板由项目代码实现。未来模板库、正文语义分页和图片背景仍需继续建设。

## 13. V0.5：工程任务清单与内容核心

工程主清单为docs/ROADMAP.md，机器可读版本为dist/roadmap.json，界面“建设任务”只读展示；两个版本须同步修改。内容编辑和封面设计职责见docs/EDITORIAL_STANDARD.md，当前是待专业确认草案。LT.prompt已吸收单主旨和素材边界要求，但并未因此完成知识库、质检或稳定生产验收。

任务状态更新必须保留已有用户实测证据。按清单继续内容标准、授权素材、选题、生成与独立质检，图像设计与接口，以及Windows/小红书草稿。图像样稿认可不等于已接入自动生产；当前仍无后台集中日志。持续工作不表示对话结束后仍在执行后台开发。

## 14. V0.5.1：内容任务书和素材依据第一层

新增dist/editorial.js。素材页增加任务书类型、读者收益、主观点、服务信息范围与限制；默认值可直接用，不要求额外填表。任务书编辑意图不视为额外事实来源。修改任务书保存briefHistory，增加revision并取消当前审核，原正文与发布历史保留。无变化不影响审核。

LT.prompt嵌入任务书（LT-EDITORIAL-01）、素材ID/SOURCE-1、编辑标准。LTAI.generate第二参数传素材，要求evidence 1—8条，其中claim为正文摘录、quote为素材原句；忽略空白后核对两个包含关系，不匹配报错并保留现有表单。检查仅证明字面存在，不证明逻辑支持或全文无幻觉。旧草稿未有evidence不作伪造迁移。

生成后依据先随表单暂存，保存新版本时写入evidence、draftBriefRevision和实际draftPrompt；历史版本及发布JSON包含对应依据。UI在草稿和审核页显示已保存的依据及基础检查提示；引用和内部疑点不进入TXT或正文图片。任务书变更、旧草稿或手工删改正文可能触发待复核提示；不是独立AI质检。

脚本与样式URL增加v=051防止旧缓存混用。设置与素材存储键保持原样，不清除用户Key或原记录。输入和依据仍保存在本浏览器；未提供后台集中读取。完整知识库、多素材检索与撤回、独立AI审稿和专业认可仍未实现。

测试：tests/editorial.cjs验证引用不存在、正文摘录不存在、任务书修改使审核失效、无变化保持审核、版本绑定与历史保存。原模型和业务回归通过，未调用真实Key；浏览器表单新交互待用户环境复验。新输出增加依据字段可能需要更高输出额度，若触发输出上限由用户自行调整已保存配置，不自动提高费用或重试。

## 15. V0.5.2：可复用专业素材库

新增materials.js（领域逻辑）、materials-ui.js（界面）。localStorage新增lifetree-materials-v1数组，原内容记录键保持不变。素材包含id、version、title/service/audience/origin/source/cleared/test、state、review、history。state为pending、approved、test或withdrawn。专业确认仍为人工登记，没有账号认证。真实素材需当前版本专业确认才可从库中建稿；测试素材始终为测试，不能转为真实专业确认。

从库中创建内容写入sourceRef{id,version}，保留当时原文快照供证据回溯。同一素材可创建多个选题。素材信息或正文修改产生新版本，撤销专业确认；旧关联内容出现sourceIssue=changed，即便新素材获批也不自动通过，需按新素材重建选题。停用产生withdrawn，缺失为missing，未确认为unconfirmed。reconcile会取消旧审核并锁定生成、送审、审核登记及发布包导出，已发布历史保留，无法撤回平台内容。

现有工作台素材可一次存入素材库并关联；真实素材不会自动视为已专业确认，关联稿会暂时锁定。测试素材可继续测试。素材库不会自动上传或向AI发送全部材料，生成仍只使用单篇快照。当前有简单文本搜索，无多素材检索增强、向量索引或自动知识更新。

save()写内容与素材两个键，写入失败时尝试回滚；这不是跨进程数据库事务。每次变更及初始化对账，恢复备份也重新校验引用。正式本机数据库仍在LT-O01/W01。工作台导出schema1备份新增materials可选字段；旧备份恢复保留当前素材库，新备份同时恢复两者，校验素材字段与专业确认版本。导入上限16MB。普通备份仍不含供应商Key。

新增tests/materials.cjs验证专业确认门槛、测试标记、更新/停用/缺失锁定、原文快照和历史。编辑、审核和模型现有回归通过；本轮未做真实浏览器新界面或存储故障注入验证。不要写成生产知识库全面通过。

## 16. 素材库交互复测脚本

新增tests/materials-ui.cjs，使用jsdom和@napi-rs/canvas，开发检查依赖，不是运行工作台的依赖。可在独立目录安装jsdom@30.1.3与@napi-rs/canvas@0.1.100，并通过NODE_PATH指定该目录node_modules后执行node tests/materials-ui.cjs。无需改工作台生产依赖。测试加载当前HTML列出的实际JS文件，模拟浏览器环境，检查跨素材、内容、备份导入导出的交互链路。完整条件与边界见ACCEPTANCE.md复测节。未读取用户本机记录，未调用付费API。

## 17. V0.6：按账号云同步

保持原项目ID、私有权限与网址，迁移到Sites Vinext服务端及D1绑定DB，r2未使用。schema由db/schema.ts声明，npm run db:generate生成drizzle/0000_cloud_sync.sql及元数据。初始迁移尚未发布时规范化命名；发布后的SQL/快照/日志不可修改。下一次schema变化追加迁移。构建用Sites build-site.mjs；打包必须包含对应源码和迁移。原dist静态源码移至public，避免手改构建产物。

接口：/api/workspace GET/POST需要getChatGPTUser返回的站点用户ID；不依赖客户端传的userId，账号间数据隔离。/api/diagnostics只接收operation/outcome/model/elapsedMs字段；其余不持久化，GET只查当前用户最近25条。Key仍在浏览器加密库，不读取、不上传。/api/system-check为当前owner-private平台边界保护的技术自检，仅返回技术状态、不读业务行；若更改分享权限必须重新审视此端点。

workspaces保存当前快照与revision；workspace_revisions保留当前及最多20个历史修订；sync_events记录同步次数、内容/素材数量、模型测试及生成结果；system_checks记录云端读写自检。诊断中不含Key、正文或素材。原业务快照本身包含已声明授权脱敏的原文及人工审核/日志，这是业务数据同步，不是“只传诊断”。客户原始隐私不得入库。本版无独立云端图片存储，图片仍由记录在本机渲染/导出。

同步POST有expectedRevision和operationId。事务中条件更新，旧revision得到409，幂等重试同一operationId须同内容；拒绝跨站Origin和密钥字段，最大4MB。不要在请求处理时建表。D1 prepared一条语句，批量用batch事务。数据库和业务日志访问均需要原站权限，不把服务凭据写浏览器或源码。

客户端public/sync.js：本机缓存优先保留；云端为空时保留迁移前本机副本并上传；新设备本机为空时载入当前账号云端；每次保存约900ms后同步；干净页面可45秒核对云端。账号变更/双方不同版本冲突不覆盖。显示仅本机/待同步/同步中/已同步/冲突；断网无无限重试，连接恢复后人工重连。读取云端前保留一份本机副本，另可使用完整JSON备份。迁移副本并非独立异地备份。未同步的本地变化依然可能随清浏览器丢失。

Windows Python包仍是public静态预览，不提供云接口；不能把它当本机服务端已建成。通过原在线网址登录后才有此云同步。域名不变，localStorage旧业务数据及加密Key保留。第一次打开新版本自动核对；若已有云数据和本机不同，须用户处理冲突。HTTP 401显示正常顶层ChatGPT登录链接；不另造账号体系。

工程排障：优先用Sites read_database_overview确认确切表名，再读取sync_events/system_checks等技术行。不要为日常排障读取原文快照；只有明确业务需要才读workspaces，避免在聊天输出素材。服务访问令牌仅通过内存请求头发给本Site，不打印或存文件，不会给服务调用者伪造浏览器身份。

验证：tests/cloud-sync.mjs用SQLite执行真实SQL测试账号隔离、版本冲突、幂等、敏感字段拒绝、来源声明和诊断隔离；tests/cloud-ui.cjs用实际静态脚本+SQLite接口联测首次迁移、模拟第二设备读取、冲突、断网恢复、账号切换与Key不上传。真实用户迁移仍须用户浏览器打开新版；不能远程读取未上传的旧本机记录。

### V0.6部署验证补充

D1迁移已在真实云端执行并通过技术读写自检；原生数据库查询可读取system_checks与sync_events。根路径直接返回静态工作台，/index.html规范化到/，不要把307本身当作入口失败。当前用户旧记录未因工程部署自动上传，须用户原浏览器刷新。历史章节中的“尚无服务端数据库/远程日志”仅描述旧版，以V0.6章节为准。

## 18. V0.7持续水源与灵感池

2026-10-20 BOSS确认平板数据已可在电脑读取，V0.6真实跨设备验证通过。新增共享公开线索端点/api/inspiration、server/inspiration-core.mjs与public/inspiration-ui.js；详见EDITORIAL_UPDATER.md。追加0001迁移，不修改已应用0000。灵感库独立于按账号的素材/内容快照；导出分开。URL去重，批次哈希幂等，选题expectedVersion并发检查，筛选变化事务留痕。普通已核实线索可以被定时任务筛选，敏感线索必须真实授权专业确认后纳入；从选题创建草稿需要已专业确认的真实素材。不会自动出稿或发布。

Windows包仍为Python静态预览，不提供/api/inspiration；使用在线工作台操作云端灵感池。界面脚本检查/SQLite核心验证不等于Windows或真实浏览器视觉验收。

V0.7上线补充：真实云端3条参考线索写入、1条普通选题筛选及日志回读通过。已启用每3天收集（10月21日09:00起）与每周筛选（10月26日10:00起），均为北京时间；首次定时运行尚未发生，详见EDITORIAL_UPDATER.md。尚未完成新版真实浏览器/Windows交互验收。

## V0.8文案结构与编辑质检

新增5类生命树改编文案结构、自然互动设置、本地预检、第二轮AI文字检查、按报告返修及版本绑定。来源和编辑使用说明见WRITING_FRAMEWORKS.md，工程流程和验收边界见QUALITY_WORKFLOW.md。模拟供应商请求与核心回归通过；真实模型、实际图文质量与传播效果待验。第二轮可能使用同一模型，不代表独立模型或专业审核；不包含真实视觉质检。修改框架/互动设置会更新任务书并取消旧审核，旧质检不再适用。

## V0.9温度与自然表达补充

新增默认自然表达标准、第六维voice质检和单独“去AI化润色”按钮。只填表，核对后保存新版本并专业审核；保留真实模型来源与原稿，不以词表鉴定作者身份。旧五维报告视为过期。详见VOICE_STYLE.md。模拟调用及逻辑测试通过，真实模型、页面操作、温暖读感与专业质量仍待验。

## V0.10 内容生产衔接（2026-10-22）
新增待补素材任务、来源/问题/筛选理由快照、重复任务复用、下一步指引、优化版本并排对照及全链路导出。严格的空素材待办可随账号云同步，未确认素材时锁定生成与保存草稿。详细字段、测试和接手入口见PRODUCTION_WORKFLOW.md。使用同一D1及现有数据结构，无数据库迁移；回滚到旧版前先保留新待办备份，旧版服务器不接受cleared=false的待办。

### V0.10.1 本机Key复用
device-keys.js + ai.js实现可选的浏览器自动恢复，settings.js提供记住/取消/旧口令升级路径；quality-ui.js增加检查、返修、润色与保存说明。详见PRODUCTION_WORKFLOW.md末节。个人设备便利保存，依赖WebCrypto安全上下文；API Key不随工作区上云。不改服务端和D1结构。测试开发依赖fake-indexeddb；原生HTTP内部预览不具备WebCrypto，本轮未将其算作真实加密验证。

### V0.10.2 读者正文污染修复
移除body待审标签指令；ai.js强制outcome=draft|needs_material，editorial.js定义读者话语门禁与内容协议，quality/voice修正保留旧稿的优先级。core.js对送审/通过/正式包做门禁，app/quality UI记录待补材料而不覆盖正文；production模块提供保留旧任务的补素材续建。详见PRODUCTION_WORKFLOW.md末节。无D1迁移，历史正文不批量修改，旧报告失效。reader-copy两类回归含截图原句、完整UI和模型协议模拟，不是实际供应商成稿质量认证。

### V0.10.3 本地检查即时反馈
quality-ui.js的runLocal完全独立于模型/Key初始化；新增可见结果弹窗、计数、字段定位、未保存快照预检及存储失败显示。app.js提供draftSnapshot/draftDirty上下文，封面支持多行，避免换行造成假dirty。检查结果是否云同步仍由顶部同步状态判断。维护及复现见QUALITY_WORKFLOW.md末节；tests/local-check-ui.cjs验证挂起Key、无网络、dirty/失败/零问题等实际按钮路径。原生浏览器无Key点击验证通过。本轮不更改检查规则或业务数据库。


### V0.10.3：任务执行反馈（2026-10-23）

本地检查、第二轮AI检查、返修、去AI化润色与初次生成共用 `task-progress.js`。点击即显示任务名、真实阶段、已用秒数；重复点击在当前操作内禁用。本地检查按读取、规则、保存、完成更新阶段条；远端模型不返回真实完成比例，使用不定进度等待条，不编造百分比。完成、取消、错误及待补素材都会停止计时并显示结果，失败不显示已完成进度。润色或生成完成仅表示填入表单，仍需另行核对并保存新版本、专业审核。

测试使用隔离模拟响应验证Key初始化期间即时提示、模型等待时无虚假百分比、用时更新、成功/取消/异常终态与原版本保留；真实浏览器验证本地免费检查弹窗。未调用真实付费模型。


### V0.10.4：选题保存与素材准备入口（2026-10-23）

灵感详情的切入角度与纳入/搁置理由明确标为必填；缺少时显示按钮旁错误并标记字段，不再向服务端提交空理由。保存过程显示阶段、用时与等待条，成功后回读云端核对状态/版本/理由/角度，保留当前页面并启用下一步入口。

可点击“保存为选题，进入素材准备 →”，保存并核对成功后直接打开素材与任务书；或先“保存筛选结果”，再点“进入素材准备”。自动携带来源、问题、角度与纳入理由；已有关联任务直接继续，不重复创建。任务尚无专业素材时保留为待补状态，不能生成正文，不将公开线索冒充专业依据。选题专业确认与成稿审核仍分别执行，敏感选题的专业确认门禁保留。

网络错误、保存失败和回读失败在当前操作处显示，不关闭表单。云端请求30秒无响应时提示结果未确认，要求重新读取核对；不自动重复提交。页面已关闭或切换时，不继续创建任务或覆盖新页面。

验证：新增 `tests/idea-navigation-ui.cjs`，覆盖空理由、延迟保存反馈、保存回读、保留页面、单击保存并直达素材、复用任务、服务端错误与回读失败；原有内容生产与灵感池服务测试回归。浏览器使用隔离公开线索夹具验证同一真实前端按钮；未写入生产灵感、未读取咨询素材、未调用付费模型，临时夹具不随版本发布。用户所报近期 POST /api/inspiration 可见400，服务日志未提供具体响应正文，不能据此认定某一条输入的唯一失败原因。


## V0.11 更新（2026-10-23，覆盖此前“必须先关联素材才能起草”的默认操作说明）

灵感池与选题库拆为独立入口；支持直接新增选题。普通任务默认按选题起草，专业素材关联为可选；读者、方向、框架默认带入，可选设置折叠。没有专业素材时不会声称其已授权或已核实，模型需遵守普通表达边界。成稿后专业审核门禁保留。

新增“自动生产到待审稿”：浏览器内最多两次请求，生成→保存→润色→保存→本地检查→刷新图文排版。发现阻断问题停为需修订；失败保留已保存版本，不自动重试。工作台关闭后的无人值守与小红书草稿箱写入尚未实现。

工程说明、真实状态、测试与待办见 [AUTOMATION_DESIGN.md](AUTOMATION_DESIGN.md)。未调用真实付费模型；真实内容质量须另验收。


### V0.11.1：目标修正（2026-10-23）

系统工作占比目标修正为95%—98%，人工投入目标2%—5%；取代此前80%—90%。按同等质量、同等产量的人工耗时基线验收，包含专业审核、修改与异常处理，不按按钮数或机器等待时间计算。当前尚无真实比例数据。迭代以“运行/审核反馈→标准沉淀→候选版本→回归验证→推广/回退”形成闭环，先保证质量，再降低人工触点、耗时与成本。具体定义和未实现项见 AUTOMATION_DESIGN.md。


## V0.11.2：人工审核直接衔接与明确反馈（2026-10-23）

可复现原因：旧版点击“人工审核”标签只切换页面，草稿仍为status=1；通过/退回按钮要求status=2，页面却没有直接提交入口。勾选只是表单状态，不会自动登记；姓名和审核依据的校验错误由通用提示放在上方，滚动后容易遗漏。这些可复现问题不能据此认定为用户账号权限故障；系统当前没有独立审核人账号认证。

新增 `public/review-ui.js`：审核页直接提交当前已保存版本，保留已填写内容；显示草稿/待审/通过等状态与按钮不可用原因；两项确认实时显示0/2、1/2、2/2，明确未保存。提交与登记显示阶段、用时和终态；校验、存储失败在按钮旁显示，内部标记仍阻止送审/通过。通用编辑器提示同时滚动到可见位置。

实际通过操作：提交当前版本审核 → 填写实际审核人姓名 → 人工确认授权及完整图文核对 → 点击“确认审核通过并进入发布包”。勾选本身不触发通过。通过意见可留空，此时保存“审核人声明已核对当前版本”的系统登记文字；这不是外部专业审核证明。退回需姓名和具体修改意见。没有默认勾选授权、没有冒填审核人、没有自动通过，也不自动写入小红书草稿箱。

验证：`tests/review-ui.cjs` 使用实际页面处理器，覆盖直接进入审核页、勾选不改变审批状态、本页提交、缺少姓名、通过、退回、存储失败与刷新恢复、内部正文标记拦截。模拟审核只在隔离测试数据中进行。原生浏览器对测试记录验证提交到待审及缺少姓名的可见提示，未登记真实专业审核、未调用模型。

存储写入失败时不宣称通过，保留原状态并提示保留备份、检查存储与刷新后核对；成功提示只确认本机保存，云端状态另看工作台顶部。


## V0.12 · 2026-10-23
两套可选图文模板、主题保守匹配、标题字体与段落分页、文章结构提示已实施。完整说明和85分质量目标见[DESIGN_QUALITY.md](DESIGN_QUALITY.md)。当前仍为质量迭代，不宣称已达到85分。

V0.12.1：去除图片服务分类、两行标题与极简版改版。新保存v5，v4/v3历史回放不变。验证及限制见DESIGN_QUALITY.md。

V0.12.2：lt-voice-04亲和叙事规范接入生成/润色/返修/质检，旧报告过期但不自动重写旧稿；新本地规则仅作编辑建议。来源、示例与验证见VOICE_STYLE.md。


V0.13 · 2026-10-23：灵感摘要与来源快照带入、独立构思与3个候选标题、内部标签拦截、构思随版本保存和显示。验证与范围见INSPIRATION_WRITING.md；不等于自动阅读全文或已验收标题质量。


V0.14 · 历史资料选题水源：TXT/标题/JSON导入、去重、模型解读、人工或授权自动闸门、选题回读及来源版本追踪已实施。操作、测试与未完成项见ARCHIVE_WORKFLOW.md。尚未导入用户真实旧库，不称全库已经整理完成。


## V0.14.1 · 文件夹批量导入（2026-10-23）
已实现：历史资料库文件夹拖拽/选择（含子目录）、多文件、扫描清单与跳过原因、TXT/MD/JSON/CSV批量入库、内容去重、相对路径追溯及可见进度。导入后继续原有解读与选题闸门，不自动调用模型。新增archive-files.js、archive-files-ui.js与对应纯逻辑及实际页面事件测试；旧archive-ui、materials-ui、production-ui回归通过。格式、容量和失败行为见ARCHIVE_WORKFLOW.md。
待验收：Windows真实文件夹拖拽、真实用户文件和跨设备同步。原生预览环境不可用，脚本事件测试不等于实机浏览器验收。Word/PDF/OCR尚未实现，列表会明确跳过。


## V0.14.2 · 专业素材批量导入（2026-10-23）
专业素材库已增加文件夹拖拽/选择、多个文件与粘贴正文/JSON；复用LTFileIntake清单和进度。支持TXT/MD/JSON/CSV，原文、来源、分类与文件路径留痕；精确同文去重，已有确认版本不覆盖。新素材统一待专业确认，不调用模型、不自动审核。仅标题文件明确失败，PDF/Word等明确跳过。实现、限制及验证见MATERIAL_INTAKE.md；新增material-import-ui真实页面事件测试，历史导入/专业素材/内容生产回归通过。Windows实际拖拽和真实跨设备同步待验收。


## V0.14.3 · 云端同步后的列表更新（2026-10-23）
发现生命周期缺口：返回board只切换hidden、不重绘列表；回到浏览器页面无即时云版本检查，原有自动拉取最长等待45秒。app.js在返回工作台时按当前内存records重绘列表、统计与按钮，再请求LTSync.refreshWhenClean；sync.js在focus/pageshow/visibility恢复时以150ms合并检查。仅页面可见、未忙碌、无冲突、无打开的dialog、本机干净或尚未初始化时自动核对。编辑弹窗打开时自动拉取延后，避免覆盖未保存输入；手动同步仍保留原行为。本机有改动不自动拉取替换，沿用revision检查上传和冲突保护。原45秒轮询仍保留，并跳过打开的编辑弹窗。过滤及搜索条件保持，不在导航中清空。
新增tests/sync-ui.cjs以两个隔离窗口运行实际全部页面脚本，模拟账号云端：A新增上传→B焦点恢复自动载入及列表/统计立即可见→反复选题库/工作台切换→陈旧DOM回到board重新绘制→远端新增后返回board拉取→干净设备不反向写旧快照→编辑弹窗延后拉取→本机待同步修改不丢失并上传。真实SQLite cloud-sync、内容生产UI及专业素材导入UI回归通过。没有访问真实账号workspace数据，没有真实设备/原生浏览器实测；不声称完整复现用户现场所有消失路径。若部署后仍发生，需记录当时版本、同步状态、筛选条件及请求结果继续定位，不以刷新作为修复。


## V0.14.4 · 截图定位搜索误过滤（2026-10-23）
用户回报V0.14.3仍复现。截图显示总数06、已同步R43、搜索框有https://openrouter.ai/api/…，空态为“没有符合条件的内容”。上版仅补导航重绘，未解决搜索DOM被静默填入地址；重绘反而读取该地址作为查询，导致切回菜单过滤掉全部内容。地址来源疑似浏览器/密码管理器自动填充，尚未在用户真实浏览器确认。
修复：app.js单独保存用户主动input事件设置的boardQuery；render不再把DOM字段当前值当作查询来源，重绘将DOM恢复为当前查询。原生可信input且匹配:-webkit-autofill时忽略自动填充值。搜索input改type=search、专用name、autocomplete=off；不保证所有扩展均遵守autocomplete。新增显示条数/总数/当前查询/状态说明与清除筛选按钮。手动搜索及状态筛选保留，清除按钮同时复位两项，不读写业务内容或云端快照。
先在旧代码运行board-search-ui.cjs，重现“静默填入OpenRouter地址→选题库→工作台”的空列表断言失败；改后通过。另覆盖模拟原生autofill输入、手动查询保持、空结果提示、清除查询/状态恢复列表，原双窗口同步、生产、专业素材导入回归通过。隔离脚本复现，不等于Windows真实Chrome自动填充实测。


## V0.14.5 · 要求与任务状态核对（2026-10-26）
对照BOSS历次要求、源码和真实运行回读更新roadmap.json及ROADMAP.md。明确图片API/摄影风、质量85分与95%—98%人工耗时验收、多素材检索、服务端无人值守、Windows执行器、小红书草稿箱、月预算、真实发布与复盘仍未完成；收集/筛选及搜索列表修复补入已运行/实机证据。建设任务页增加下一步与证据，当前优先级可见。此版本只校准任务追踪，不宣称实现这些待办功能。


## V0.14.6 · 三阶段与内容生产验收页面（2026-10-26）
按BOSS最新确认：内容生产先验收，再做两端草稿箱衔接，最后分发。主页新增三阶段边界、生产步骤与85分目标；运行说明改为生产规则与验收，含五维100分评分、关键硬伤退回、首篇＋另两个题材复测及证据关闭条件。PRODUCTION_ACCEPTANCE.md为本阶段权威规则，优先于旧清单中9次压力测试和必须发布才完成第一段的旧口径；95%—98%自动化仍须另测。UI统一暖白/鼠尾草绿/金色点缀、字阶留白、流程和规则层级；保留原记录ID与按钮。规则页不伪造实际评分或审核、验收状态。

本轮验证：生产规则入口和返回工作台、7步流程/5维评分/85分目标标识、全页ID唯一、无数据写入通过。board-search-ui、production-ui、sync-ui、design-ui、material-import-ui回归通过，均使用隔离数据/模拟模型，无真实付费用量；未将页面脚本测试称为原生桌面/移动端视觉验收，实际阅读舒适度与视觉仍待实机核对。


## V0.14.7 · 叙事编辑标准（2026-10-26）
BOSS已实机确认基础链路可用；文字读感与润色效果未通过，继续作为当前核心任务。NARRATIVE_EDITOR_GUIDE.md（lt-narrative-editor-01）详细规定理解、创作、叙事重写、语感示例、事实边界、提示词分工及验收。表达版本lt-voice-05，默认生成/自动优化/单独润色/质检共用；普通新闻来源不自动强制新闻体裁，敏感与手动新闻规则保留。新增原正文未改变时提示、原稿保留和不自动重试；改字不等于质量提高。本轮隔离模型回归，不宣称真实精品验收通过。系统设置、润色面板和生产验收页均有指导文档入口。


## V0.14.7 · 默认封装的叙事编辑流程（2026-10-26）
BOSS要求初稿即按文字美感标准生成，后续自动完成低级编辑步骤。默认按钮为完整流程：初稿保存→叙事重写保存→AI检查；有问题自动按报告返修一次并复查，通常3次、最多5次请求，不自动重试或循环。每步保存版本/报告，复查仍有问题停为needs_revision，失败保留已有版本；无变化重写不显示成功。仅生成初稿移至手动折叠入口。调用量已在页面和重生成确认中说明，按当前模型计费；尚无费用硬限额。专业审核与最终读感验收不自动通过。详见NARRATIVE_EDITOR_GUIDE.md。simple-production-ui覆盖3次正常、5次返修及仍有问题、失败保留；真实模型读感未验收。


## V0.14.8 · 第一阶段试用基线与阶段切换
按BOSS最新决定，内容生产流程已可用，标题与文字质量在正式试用中持续改进，暂停本轮实测，启动草稿箱衔接研究。LT-CP-001精确保留V0.14.7 / 第37号保存版本及源码提交，详见RELEASE_BASELINE.md和JSON。V0.14.8仅登记基线并调整页面阶段说明，无业务逻辑、数据库结构或数据迁移；不宣称85分验收或生产回退演练通过。回退代码不等于恢复业务数据。


## V0.14.9 · 第一阶段恢复：叙事编辑与逐篇封面
BOSS纠正收工判断：润色及逐篇生图未解决，第二阶段暂停。三种独立风格：原极简文字保留，新增简约摄影，治愈插画保留；新图按每篇内容生成，固定示例不算本篇成品。voice-06叙事编辑重建独立任务，要求editMemo前后原句与改法，LTAI验证引用确实存在；默认编辑链/手动润色使用同一协议，记录入版本与对照，AI检查比较前后稿。文字改变和模型说明不证明读感改善。
新增image-provider.js/image-ui.js、server/cover-core.mjs及两个API route，R2 BUCKET保存账号专属底图。无D1迁移，无已有数据重写。Key记在本机，后端仅请求内存转发到固定MXAI端点；文件按用户隔离，当前文章签名决定封面是否可用，缺图或过期拦送审/审核放行/发布包。图片任务可继续查询，不自动重提；下载CORS失败有原地址与上传入口。详情PER_ARTICLE_COVERS.md。隔离测试通过不等于实际MXAI连通、成图、跨设备回读或85分验收；均须实际验证。Windows包为静态预览，无法提供新在线API。


## V0.14.10 · 摄影缩略图纠正与保存链闭环
V0.14.9摄影缩略图错误地复用当前文章绘制逻辑，缺图时仅显示占位；saveDraft只保存文字，未自动生图。现以已找回并目视核对的原始获认可摄影图为独立示例，极简/插画示例也独立于当前记录。保存按钮异步保存文字后自动调用缺失/过期本篇图片任务，再加载新图和更新完整预览；任务中禁用重复输入，进度可见，失败不谎报完成，无变化不重提付费任务，旧版本保留。摄影排版去除厚白渐变，提示对齐真实材质、斜光及投影；主体仍按文章变化。详见PER_ARTICLE_COVERS.md。save-cover-ui旧版先失败、修后通过；真实API和原生界面实机仍未验收。

补充：同一回归还先复现了“正文已变化，旧图片异步加载完成又盖回旧预览”的竞态；renderToken加入body，旧加载回调无法重画新输入。单独重做封面的取消操作不再提示保存成功。


## V0.14.11 · Key复用与读取失败恢复
用户再次反馈已填Key却被要求重填。源码确认：图片Key只在模块启动恢复一次，未监听另一标签页保存/更换，恢复错误被吞掉并当作未配置；不据此断言用户设备记录已丢失。原IndexedDB库名、对象仓库、provider键、stamp与加密格式不变，不清除、不迁移或上传既有Key。
图片模块新增非敏感状态通知（saved/revision，绝不含Key/密文），跨标签页保存、更换、删除同步；每次需要凭据时ensure自动恢复，本机读取失败独立显示，不再当成首次配置。旧版无通知标记但有合法加密记录可直接恢复；模型设置Key留空保留，失败保留原记录。保存密钥后实际回读验证，设备存储打开失败会清理失效连接缓存以支持重试，versionchange关闭旧连接。
文字模块新增ensure/reload与活动Key的vault绑定校验，临时恢复失败可在下次操作重读，成功后清除旧警告；仅改模型且已记住不重复写Key。显式锁定仍需原口令，不能绕过锁定。生成、自动生产、润色、资料解读的预检均先恢复再判断，公开模型目录不额外索要Key。
系统设置文字与图片各有“重新读取已保存Key（免费）”，并分别标示当前Key状态。Key输入框清空只是避免展示密钥，不代表丢失。仍为同一浏览器/同一站点本机凭据，不随内容云同步，换设备不能冒称已自动同步。未访问用户真实浏览器密钥；本次结论来自源码与隔离验证。
测试：image-key-persistence真实fake-indexeddb/WebCrypto覆盖跨窗口、重载、模型编辑、读取故障恢复、更换/删除；image-key-settings-ui验证实际设置按钮与留空保留、读错提示与免费恢复；device-keys补文字瞬时读取失败ensure恢复。原文字设置、生成/封面保存、本地检查与同步回归通过，无真实供应商请求或付费用量。


## V0.14.12 · 文稿/封面/预览分层与图片502定位
真实Worker日志：2026-10-27北京时间00:54:58、00:55:26 POST /api/cover均502，执行仅数毫秒。临时只读技术探针GET /api/system-check?cover=1在原owner-private边界内，不带Key、正文或账号，不生图：线上实际返回TypeError，redirect:error不被边缘fetch支持，错误发生在出站前。不能将此当成图片已生成或Key失效。
修正server/cover-core.mjs的出站fetch为redirect:manual，显式拒绝3xx，绝不跟随并携带Key去新域名；请求仍固定MXAI官方地址。增加失败stage/code与无敏感字段的错误分类；本篇coverError保留阶段/错误码/固定错误说明，便于定位。只读探针可验证余额端点GET和生图端点无认证空POST是否返回预期401，同时返回文件绑定存在与否；不能证明用户Key权限、付费出图或图像审美。
下载图片改为登录用户POST /api/cover action=download、taskId：服务端用当前Key查询原任务，从供应商返回的已完成任务读取经过HTTPS/非本地地址检查的图片，限12MB并校验JPEG/PNG/WebP魔数，再返回当前用户。图片CDN不接收Key，无用户自定义代理地址；不跟随重定向，不重新提交生图。浏览器只从本站接收Blob、规范化和存入R2，移除跨域下载这一必经步骤。
UI把文稿与封面分为①文字编辑、②封面设计、③完整图文预览，页首跳转。封面风格、当前封面预览、仅重新生成封面（保留正文）、仅重新排版（不生图）集中放在②。主保存仍自动对缺失/过期图生图；单独封面按钮不调用文字模型，改风格未保存时走主保存一次；仅重新排版计算封面标题字号/换行及正文分页，不改文字、不生图、不创建假新版本，结束跳③查看。
cover-sections-ui隔离验证真实按钮层次、保留正文、无文字调用、排版不生图、改风格保存一次；cover-gateway覆盖manual兼容、拒绝3xx、免费无Key探针、图片CDN无Key和格式拦截；真实模型出图与用户Key权限仍须后续实测。既有数据、Key存储、审核/云同步保留。


## V0.14.13 · 2026-10-27 MXAI端点纠正与配置复用
旧商户端点open.mxapi.org不是MXAI创作工坊的MCP接口。用授权Key对旧商户余额端点真实测试返回401；同一Key对MXAI官网公开的https://mcp.mxai.cn/sse初始化、tools/list、list_models和generate_image dry_run均成功。Flare/medium/1K/1张本轮报价3积分，不作为固定价格。模型列表不是生图验收。

新增server/mxai-mcp.mjs：固定来源SSE初始化和会话POST，仅调用generate_image/get_task_status/get_user_info；每次请求45秒上限、限长、拒绝跳转。查询参数为serial_no；提交可能返回中文文本“任务序列号”，不能只解析JSON。任务记录保存provider，历史无provider按mxapi保留，防止把旧付费任务查到另一平台。图片下载仍不向CDN转发Key，R2按账号隔离。中断继续查询原任务，不自动重复生图。

服务器MXAI_API_KEY以Sites secret配置，仅MXAI_API_OWNER_EMAIL匹配平台认证身份者可使用后端备用Key；GET /api/cover只返回可用布尔值，不返回Key。本机Key优先，未找到本机Key时自动使用后端配置。Key不进入Git、文章、同步或导出。GET /api/system-check?cover_account=1依赖现有owner-private平台边界，只执行账户连通检查并返回布尔值，不返回身份或余额、无生图扣费；改变站点分享前须删除或增授权。

图片设置明确区分MXAI创作工坊和MXAPI商户，不更换或清空既有本机记录。无provider旧配置默认MXAI，已提交旧任务保持原平台。摄影/逐篇插画在未生成时不再显示仿成品的空白画布，而显示所选风格、未完成状态及生成入口；③仍清楚标明已保存版本，切换未保存风格不会伪装为成功成品。


## V0.14.14 · 原任务续查与取回（2026-10-27）
用户截图任务2114918139572523008在工作台poll阶段40秒后502，MCP单独查询原任务实际status:2已完成、有image_urls。未新建任务；这证明上轮连接检查和独立测试不能代替用户任务的查询/下载验收。原错误只记笼统UPSTREAM_NETWORK，无法追溯上游具体原因，不将中断定性为生成失败。

只对只读poll的可重试错误续查最多2次，间隔2秒；仍失败则POLL_PAUSED保留processing任务号，按钮“继续取回原封面”，再次点击不重新提交生图。401/403等非重试错误停止；submit不自动重试。新增固定阶段mcpPhase与错误码，日志不保存Key、请求参数或来源正文。

poll取得完成图后，将任务号/已验证图片URL/2分钟有效期写R2 cover-receipts/<userId>/mxai-cn/<taskId>。下载优先读取同一用户同一任务收据，避免已成功查图后再建SSE重复查询；没有有效收据则查询原任务。Key不进入收据，文件下载仍固定来自本任务结果，不接受客户端任意URL、不向CDN发Key。短收据仅作优化，写入失败不阻断原任务查询；过期收据不会使用。

GET /api/system-check?cover_task=1只查询工程人员先前创建的非业务固定测试任务2114912702672408576，返回状态/是否有图/耗时/错误阶段，不回传图片地址或正文。依赖现有owner-private服务边界，变更站点分享前删除或增授权；不生成或扣费。真实用户任务回读与保存仍由登录用户的正常路径执行，禁止伪造身份头。


## V0.14.15 · 并行任务中心（2026-10-27）
新增TASK_CENTER.md与public/jobs.js：封面及自动文字生产脱离弹窗DOM，当前页面3并发、同篇串行、快照隔离、结果自动采用/冲突待采用、本地停止与原任务恢复。没有可靠任务号的中断不自动重提；MXAI tools/list未提供取消工具，未伪造取消能力。编辑弹窗关闭任务继续，整个浏览器关闭后仅外部图片任务继续，本地后续取回下次打开恢复；不是服务器无人值守调度。详见TASK_CENTER.md及background-jobs测试。


## V0.14.16 · 短篇情感表达（2026-10-27）
lt-voice-07同时更新初稿、润色和检查。正文仍约350—500字，页面/排版未重新设计；移除默认固定场景开头、区别解释、小尝试结尾、每段句数与标题关键词强选方法文，显式主题框架保留为信息职责。指南及原创练习见NARRATIVE_EDITOR_GUIDE.md、VOICE_CALIBRATION.md；练习不是系统API实测。文字Key仍在本机，未读取用户私有稿件，不宣称85分或真实模型质量已验收。


## V0.15.0 云端内容主编接入准备
独立执行服务代码、恢复与模拟模型测试、任务列表入口完成；长期服务器尚未部署，页面明确显示未连接。部署步骤见CLOUD_EDITOR_AGENT.md及cloud-agent/README.md。不得将代码完成写成云端上线或真实文学质量通过。现有默认浏览器生产流程保留。


## V0.16.0 三角色设置与业务Skill
右上角设置→角色与Skill。配置按账号D1保存，支持历史恢复、并发保护；模型复用现有Key。美工生图前构思、实际图文视觉检查已接入浏览器执行。完整云端三角色/问题看板尚未完成。见AGENT_SETTINGS.md；旧v010服务包校验不变，新v020用于文字服务读取配置快照。


## V0.16.1 编辑流程进度与定位
编辑弹窗进度改用独立workflow-steps，避免生产规则页CSS大卡片覆盖。前往处理按实时状态定位可见控件、展开折叠项并聚焦高亮；阶段主题色/标题/滚动重置。见COMPACT_WORKFLOW.md。业务授权、模型Key和发布门禁保持。


## V0.17.0 三角色返修闭环

初稿即使用内容编辑角色。默认自动生产新增实际图文审校→按责任分派→有限返修→独立复验；已有图文可单独运行。问题白板在图文审校区及任务列表查看。详见 [三角色闭环技术说明](EDITORIAL_AGENT_LOOP.md)。两轮返修/最多新增两张封面；任务在浏览器运行，云端常驻服务仍未部署；真实模型文风与视觉能力未付费实测。已有问题单未完成当前版本复验时不能送审或导出发布包。保留V0.16.1源码基线便于回滚。


## V0.18.0 主编协调与同稿对照

新增可编辑主编角色和Skill、可选协调模式、同稿A/B任务与候选采用。主编决定分派/挂起/收口，不能代替独立审校或突破返修上限。保留固定调度默认基线；模型、Key与现有角色不重置。详见 [主编协调试验说明](CHIEF_COORDINATION.md)。仅浏览器运行器接入，独立cloud-agent与阿里云常驻部署未完成四角色改造。真实质量/成本优势未付费实测。


## V0.18.1 任务没反馈 / 原Key误报 / 重复提交

角色凭据检查改为实际角色平台；等待Agent配置加载后建立任务签名；编辑窗口同步任务状态、阶段、原因与执行位置；同输入排队/运行/失败/完成复用已有任务。明确重做才新建，活跃任务即使强制重做也复用。服务器MXAI可用时，新任务不再误用旧端点要求本机填Key；旧供应商任务不跨端点查询。既有Key不删除/重置。详见 [修复与验收说明](TASK_KEY_FIX.md)。


## V0.18.2 角色模型真实配置与Token语义

排查实际D1确认此前Agent配置表为0行。为未配置账号初始化4个明确模型及角色额度，保留用户已保存配置；继承模型也执行角色自己的输出上限。细分校验错误并显示实际生效值，文章字数与输出Token分开说明。初始化仅用短期server secret，不读业务payload或密钥。详见 [模型配置交接](MODEL_SETUP.md)。文字Key仍需在实际设备可用，不能把图片凭据或模型配置落库当作文字API已连通。

## V0.18.3 — 文字模型HTTP拒绝诊断（2026-10-28）
- 用户截图的“访问被拒绝（HTTP403）”对应 public/ai.js 的外部文字模型请求路径，不能据此认定为本站权限或Key丢失。
- 保留原平台凭据；不自动重试、不切换模型。错误显示实际请求平台、模型、HTTP状态及供应商JSON error.message，类型化状态与操作信息可供后续排障。
- 仅读取最多16KB错误响应、只投影error.message/code、脱敏当前已解锁Key和常见凭据格式/链接；HTML和原始metadata不进入日志。显示按纯文本转义处理。
- 已通过模型HTTP错误、密钥不泄露、不重试及角色真实请求路由回归测试。无法读取用户浏览器本地文字Key，本次未真实调用付费接口，403根因仍需带供应商具体原因的实际失败记录确认。

## V0.18.4 — BOSS指定DeepSeek角色分工（2026-10-28）
内容编辑OpenRouter/deepseek/deepseek-v4-flash；美工构思、独立审校、主编OpenRouter/deepseek/deepseek-v4.1-flash。模型ID及V4.1图片输入能力对照官方页。更新真实已保存配置的运维操作详见MODEL_SETUP.md；只变模型/provider，保留Skill、角色参数、输出上限及原Key。配置写入需回读验证，部署成功不能代替。模型调用仍需用户设备的原OpenRouter凭据；本次没有假称真实付费API测试成功。MXAI生图保持原设置。

## V0.18.5 — 可定位的内容生成日志
详见MODEL_DIAGNOSTICS.md。新增model_diagnostics迁移与登录保护API、独立元数据上传、任务执行日志入口。区分截断与JSON/字段校验失败，记录实际模型/额度/usage/阶段；OpenRouter DeepSeek V4/V4.1短篇JSON请求显式禁用额外思考并启用JSON对象格式，输出额度及原Key不改。旧任务缺失的原始usage不能补造；原任务失败可在最近20份同步历史中做仅限该任务的元数据投影排查，不读取正文或咨询资料。

## V0.18.6 — NO_REWRITE流程恢复
已回读真实model_diagnostics，确认两次初稿校验成功、润色分别967/1106输出Token且思考0/正常stop；失败来自本地NO_REWRITE。自动流程保留初稿并独立审校，不把无改动登记为润色成功；审校问题照常有限返修。加入text_review检查点、旧任务兼容续建，文章/配置变化保护；避免“继续处理”重复起草与润色。状态保持质量与技术执行分离。详见NO_REWRITE_RECOVERY.md。

## V0.18.7 — 文字复查枚举协议与正文质感
回读真实任务6ccbbdb4-9ff1-4a46-ae30-927bc9f196f9：text_recheck正常返回707Token后，findings枚举校验失败。改为严格JSON Schema，保留逐项验证并上报具体字段/安全非法值；不静默降级或绕过审校。三款正文增加各自纸纹/边框/角饰，实际Canvas/导出同源，修正中文行首标点；模板版本进入视觉签名使旧报告失效。细节及验证见REVIEW_CONTRACT_BODY_FINISH.md。

## V0.18.8 — 当前版本/历史任务/人工审核状态
任务卡按关联关系与更新时间显示；人工审核与失败AI任务分别呈现，不因人工登记将AI任务当作通过，不自动清除失败。历史任务降为有上下文记录；进度条下一步与检查状态同步。无业务数据改写、权限变更或模型请求。详见TASK_STATUS_CONTEXT.md。

## V0.18.9 — 第一人称故事正文方向
按BOSS最新要求，初稿、润色、文字/视觉审校统一采用第一人称家庭/关系情境故事：经历与感受引发共鸣，不借我字讲道理，不强套剧情。运行时注入规范，不覆盖用户自定义角色与Key；默认Skill同步更新。程序生成narrative来源字段，自动/手动/返修保存、版本和图文签名均保留；原创情境来源在正文页脚、TXT及manifest单列，正文不混内部提示。事实和专业审核边界不变。标准及验收见FIRST_PERSON_STORY.md。

## V0.19.0 — 从故事补足解读与行动
按BOSS纠正，完整成稿采用第一人称故事＋专业视角解读＋可尝试做法，内部目标500—700字。初稿、润色、独立审校均注入最新标准，审校分别检查三层是否有实质内容；依据不足不编专业结论，不将情境故事当证据。narrative增加story_segment范围与story_insight_actions结构；FIRST_PERSON_STORY.md及页面入口已更新。模型、原Key和Token额度不改。规则接入/回归通过不等于实际内容质量验收。


## V0.19.1 · 独立家庭关系解析角色
见 FAMILY_RELATION_ANALYST.md。新增可编辑analyst角色，编辑故事后独立解析、建议、审校；family_analysis阶段失败可续建而不重复起草。结构检查不代表内容质量或专业审核已通过。


## V0.19.2 · 旧文独立补充解析
文稿与封面页顶部增加“补充家庭解析 · 保留正文，不生图”。任务类型analysis，独立调用analyst后再文字审校，成功自动保存新版本并撤销旧审核。正文有手动未保存修改时拒绝开始；相同任务去重。审校失败后从text_review续建，不重复调用解析。不生成图片；旧正文整个作为保留板块，已有解析时应使用深化解析与润色，避免重复追加。原图片失败单独保留，不声称已修复MXAI。

2026-10-28 15:40，用户指定任务a45e271d-c8ea-4582-a190-8509dd8c64a9已上传诊断仅有designer/design_brief请求与返回（309输出Token），未检出analyst阶段；此证据不能代表尚未上传的本机日志。截图显示图片失败，未把它误判为解析失败。

模拟真实工作台验证：旧正文进入解析、独立审校、正文保存V2；图片调用0次；审校网络失败续建不重复解析；原版本和任务去重保留。未实际付费生成新内容。


## V0.19.3 · 审校原文定位
用户任务5e66bd5f-67a7-4ee6-8a6a-087176311315（2026-10-28 15:58:57—15:59:18）真实日志：writer/draft返回655输出Token并validated；analyst/family_analysis返回1915输出Token并validated；reviewer/text_review返回771输出Token、finish stop、reasoning 0，随后本地报告协议校验失败。截图为引文与原文不符。没有保存原始审校回复，不能断言具体错在哪个字符或字段。

修复：LTQuality.quoteBank从当前字段提取有界的原文片段（总计最多8000字符，单片段最多160字符）；schemaFor以anyOf分支绑定field与quote枚举，模型选择原文而非重写引文。无适合定位时仍允许空引文，不允许编造。自动审校、返修复验、单独AI检查及独立解析审校均传入当前记录形成动态Schema。原文逐字包含校验保留，错误改为REVIEW_QUOTE_MISMATCH及findings.N.quote路径，不记录原文到诊断。

安全与续建：旧失败任务的候选V2和text_review检查点保留；刷新后继续原任务仅重新审校，不重复起草和解析。若Agent配置或文章已变更，继续原任务仍受版本保护。文字成功不等于专业审核通过。

验证：模拟供应商实际请求载荷检查动态Schema、字段归属、真实引文与虚构引文拒收；旧审校结构回归、解析失败续建、独立解析任务、NO_REWRITE审校续建、任务与审核状态分离检查通过。未用真实供应商完成修复后审校请求，仍待原任务续建验证；不宣称全流程验收完成。


## V0.19.4 · 解析分工与安全续接修复
1. 解析角色仅交付articleParts.analysis/actions及标题、标签等元数据，不交付story/body。LTAI.generate在operation=analysis时先以options.storyText重建articleParts.story，再由程序拼接body；即使供应商仍返回被改动的story/body也不采用。解析内容仍受长度、读者文案、依据及独立审校约束；原故事有安全问题时须返回needs_material。其他整篇润色/返修入口保持原合同。
2. 原任务输入/版本/续接阶段不满足时，resume不再清除候选和检查点、回退起草。明确停止并保留候选。只有输入与任务工作副本均未变、且没有任何模型请求记录的配置预检失败，允许原任务重试预检。未知已计费请求不自动重复。配置版本不一致仍拒绝续接。
3. 任务列表中的失败/暂停/中断/待采用任务可展开“查看已保存候选正文”，显示候选版本和未审核标识，不自动采用或批准。

验证：实际客户端模拟供应商返回改动故事及正文，确认最终故事仍与原始输入完全相同；真实队列模拟输入变化，确认拒绝续接且不新增模型请求、不删除候选；配置预检恢复、解析/审校失败续接、任务去重、NO_REWRITE与独立审校、四角色兼容等回归通过。未完成真实模型付费续跑与全链路验收。

### 仍未关闭的问题／建设项
- V0.19.3审校动态引用Schema已发布、模拟请求通过，真实供应商后续审校仍待完成验证；不能将协议检查说成专业质量验收。
- MXAI账户连接实测成功，但截图中的具体生图失败原因仍未取得；成功新图、下载、存储和实际视觉复验尚未完成本轮连续验收。
- 自动生产的文字在任务工作副本内逐版保存，整任务失败时不自动覆盖主文章。现可查看候选，但全链路未完成前不能称主文章已更新。
- 工作流仍为浏览器执行，关闭整个浏览器后的云端持续执行未部署。文字Key仍为本机加密保存，开发端不具备独立真实调用条件。
- 高质量内容85分标准仍待实际作品验收；小红书草稿箱衔接与分发不在本轮完成范围。


## V0.19.5 · 全成稿入口统一拼接与返修续接
2026-10-28 16:16—16:17用户原任务attempt 3真实诊断：family_analysis成功并validated；text_review正常返回；之后text_repair调用V4 Flash返回1988输出Token、finish stop，截图报正文与三部分不一致。修复范围必须包括writer返修，而非仅analyst。

所有非story操作（analysis、polish、repair、图文文字返修）现在以articleParts为唯一正文来源，程序统一拼接body，供应商额外返回的body不采用。analysis故事仍由options.storyText固定；writer返修可按审校修改三部分。缺失分段、内部提示泄漏、引用依据错误或无实质解析仍拦截，不通过删除校验掩盖问题。交付协议更新为lt-compose-01；文风标准未改变，保留lt-voice-12，避免仅格式更新使已有审校报告无效。

自动生产新增text_repair、text_recheck检查点。返修失败可复用当前版本已有审校报告直接返修；复查失败只重新复查，不能再自动追加一轮返修。旧任务若检查点为text_review、最新诊断阶段是text_repair且原报告仍对应当前候选，则识别为返修续建。报告失效时停止，不重新起草或伪称可复用。

验证：真实AI客户端模拟供应商返回互不一致body/parts，程序采用parts并通过依据/结构校验；队列覆盖返修失败续建、复查失败续建、旧text_review检查点恢复返修，确认不重复story/analysis/先前审校。解析、独立解析任务、已有Key复用/去重、审校引用、旧NO_REWRITE行为回归通过。仍需用户原任务真实续建；生图、整套图文和专业质量未算验收完成。


## V0.19.6 · 自动全文润色
恢复独立的全文润色阶段：writer/story → analyst/analysis → 程序合并 → writer/polish → 本地规则检查 → reviewer/text_review → 必要writer返修与reviewer复查 → 封面及视觉复验 → 人工专业审核。程序自动执行，人工不必每篇另点润色；默认文字调用4次，若返修复查最多6次，另加图片/视觉与可选主编调用。

polish真实模型路由改为内容编辑（默认OpenRouter DeepSeek V4 Flash），analysis仍为独立家庭关系解析（V4.1 Flash）。保留观点、事实、专业限定及解析建议，要求改动记录，不再把解析角色的调用当作润色已完成。manual全文润色同样使用writer。润色未有效改动不保存新版本、不伪称成功，保留合并稿交独立审校，不自动重复润色。

新增text_polish检查点，失败续接仅重新润色；旧任务若已经过此位置，沿原检查点续建，不为了新环节回退重跑。localTextCheck记录规则提示，免费、不调用AI、不代表专业审核；审校报告仍绑定当前版本。

验证：真实工作台控制器模拟调用，确认顺序及润色失败无生图、续接不重复故事或解析、审校收到润色全文；旧NO_REWRITE、返修/复查续建、原Key复用/去重与默认团队链路回归通过；实际AI客户端确认polish走writer模型。未实际付费生成，成品语言质量及全流程真实验收仍待确认。


## V0.19.7 · 程序生成润色差异记录
真实任务07cf0aab-caff-4d8f-9cb4-6a75667129d9（2026-10-28 16:36—16:37）中，draft及family_analysis均validated；text_polish由writer调用，返回1575输出Token且finish stop，用户截图显示“编辑改动记录与前后正文不符”。不能把模型已返回视为润色成功；当时结果在辅助记录校验处被拦截。

修复：LTVoice.editMemo改为程序根据实际前后正文计算连续变化范围，不采用模型自报的editMemo。按Unicode码点记录前后范围，分别摘录真实文字；插入/删除允许对应侧为空，长变化明确标记截断（各最多600码点），完整正文保留在版本历史。reason明确为程序差异记录，不声称改善或评分。润色提示词不再要求模型提供改动记录。LTAI.generate所有polish调用均生成程序记录，不因requireEditMemo开关或供应商缺失/错误memo而阻塞正文。assertRewrite、读者文案检查、结构、素材依据及独立审校保持。

同时纠正状态：analysisResult记录解析已生成；polishResult此时为pending，不能把解析成功记成全文润色完成。实际polish后才记录rewritten/unchanged。

验证：真实AI客户端模拟缺失/伪造模型改动记录，确认接受已通过正文校验的成稿并生成真实差异记录，无额外调用；插入、删除、Unicode、长范围检查通过；无有效变化仍NO_REWRITE。自动润色及阶段恢复、审校引用、返修恢复、独立解析与模型路由、任务去重等回归通过。原任务仍在text_polish检查点，用户可继续原任务，只重做润色，不起草或解析。此前被拒收的供应商原始响应未保存，不能承诺恢复该次被拒收的润色全文。

尚未完成真实修复后供应商续跑、生图与最终成品验收。保留API凭据及用户配置，未自动调用付费模型、未专业审核或发布。


## V0.19.8 · 后续Agent不重复提交候选标题构思
任务03e68559-b90c-4447-b1f8-acee4462e6e3（2026-10-28 17:00—17:01）真实日志：draft返回1116输出Token并validated；family_analysis返回1057输出Token后在titleCandidates字段失败。当前主文章V8、候选V9，不能称任务完成或新正文已采用。

根因：起草时需要的editorialPlan/三候选标题合同被无差别应用于analysis、polish、repair，导致重复构思元数据阻塞后续正文。修复：起草仍严格生成并验证该构思；后续通过options.existingEditorialPlan沿用起草结果，忽略模型重复返回的构思。默认两阶段生成包装器和自动任务save均传递最新有效起草构思。独立解析、手动润色、返修及图文返修也通过共用options入口取得原构思。

LTInspirationWriting.carry验证原记录后保留原draftTitle、scope及候选列表，标referenceOnly=true。正式标题变化时记录currentTitleMatches=false并明确不宣称经过原三选一；无可用旧构思时返回null并在内部reviewNotes说明，不制造替代候选或把旧标题冒充新标题。正式title/cover的内部前缀检查、正文结构、真实依据和独立审校不放宽。界面构思说明同步改为起草参考，后续不承诺重新生成构思。

验证：实际AI客户端模拟analysis/polish/repair返回畸形titleCandidates，确认正文仍通过并沿用已验证起草记录；正式标题参考前缀仍拦截；起草缺失/无效构思仍按原合同拒收。原Key复用、自动润色顺序、各阶段续接、独立解析、引用校验等回归通过。原任务续建点family_analysis，不重复起草。没有恢复此前已拒收的原始解析响应，续接仍需调用解析。

修复后的真实供应商调用与最终成品质量尚待验收；不把元数据/流程检查通过当作内容质量改善或全链路完成。


## V0.19.9 · 已保存但待处理的下一步入口
修复completed任务仍needs_revision/issueBoard未闭环时缺少下一步入口、主状态仍显示绿色“已完成”的问题。新增pendingWork按当前实际保存版本识别文字报告、图文问题单、人工阻塞、返修上限或执行错误；历史不同版本不冒充当前待办。主状态改为“已保存 · 仍需处理”并采用需处理样式，不显示笼统重新生成按钮，增加“查看待处理问题（不产生用量）”。任务列表同样提供入口并纳入需处理筛选。

viewPending仅打开当前文章文稿页、展开已有对应报告/问题单并滚动定位；不调用模型、不重启任务、不重置返修轮数或新增图片预算、不更改专业审批。存在人工确认或达到上限时只解释阻塞原因。原有按报告返修/图文审校按钮及其收费确认保留，不暗中发起新一轮。

同步更新当前打开文章的版本标签，只更新元数据，不覆盖未保存正文。真正任务后台持续执行、质量和待专业审核状态仍保持独立。

验证：真实页面与任务控制器模拟completed+needs_revision，确认主状态/入口/版本标签；点击定位无新增模型调用，手工/上限提示区分、任务列表待处理筛选可见；旧失败/历史/审批状态、独立解析与队列去重回归通过。没有读取或代替用户处理具体专业问题，没有新增付费任务。


## V0.19.10 — 混合问题返修与正文流式分页
需人工确认的项目保留 blocked，但不再阻断同轮可独立执行的编辑/排版工作。显式责任分派按问题而非整页 uncertain 覆盖；无可执行项才暂停。专业审核仍独立且不自动放行。正文按剩余容量跨页分段，避免整段换页造成中间页大片空白；保留两行基本控制并去除标题下短装饰线。刷新后当前预览/导出使用新布局，既有下载文件不变。
验证：mixed-repair、flow-pagination、production-agent-loop 通过；未使用用户本地Key调用付费模型，未验证该文章实际新一轮API结果。


## V0.19.11 — 返修入口与执行反馈
修正已结束审校任务被误作新返修请求直接返回的问题；显式确认后开启新轮审校，进行中相同任务仍复用。返修区域监听任务状态，显示实际阶段与不定进度条，结束显示保存/失败/待处理状态；不伪造百分比。封面按 Intl.Segmenter 中文词边界断行，旧手动断词换行同样重排。操作说明默认折叠，状态和操作入口保持可见，删除品牌木字标识。
验证：中文词边界实际canvas检查、返修面板状态事件检查、队列回归与混合问题返修检查通过；未用用户Key进行新一轮付费返修。


## V0.19.12 — 返修工具边界与MXAI连接诊断
图文返修不再因文字改变导致旧contentKey失配而隐式重画。有效旧底图在文字返修后以显式reuseDecision保留，必须再经实际图文复验；无有效底图则停止，不隐式新增图片请求。审校regenerate必须提供imageChangeRequired=true与具体imageReason；缺少理由的文字排版问题降为layout，其他改为人工确认。主编不得将原文字/排版问题升级为重画。执行路由写入任务白板事件。专业审核仍未自动放行。
MXAI 522记录upstreamStatus、mcpPhase、toolMayHaveRun，SSE连接失败明确未调用生图工具，不误导重填Key。线上18:14日志submit/sse_connect/MCP_TRANSPORT、API502对应MXAI522；随后只读账户连接实测HTTP200/configured=true/connected=true，未提交图片。
验证：repair-image-routing（排版0图片调用、主编不得升级、合法底图修改标识、522未发工具）、mixed-repair、production-agent-loop、mxai-mcp通过。未重新执行用户文章付费任务。


## V0.19.13 — 视觉结论矛盾保守处理与旧模板断词
同页pass且issues非空不再抛错中断：原问题逐项保留，模型原结论记modelVerdict，降为change并记录normalizationNotes/审校日志；绝不升为通过。新增视觉JSON schema，pass问题数组必须为空，change必须有问题，全部页覆盖/位置/责任字段仍校验。客户端旧任务候选保留，继续原审校任务基于其候选复验，不重新起草。
旧v4封面分支改用与v5一致的词边界标题换行；正文v4标题也统一，并使字号/行距与分页测量一致。视觉签名更新，旧报告仅参考。
验证：visual-verdict、六种模板渲染分支template-word-wrap、flow-pagination、repair-panel、repair-image-routing、mixed-repair、production-agent-loop通过。字体画布渲染图已检查；未读取该任务原始模型全文，未执行用户文章付费复验。


## V0.19.14 — 视觉报告输出截断
整套1—8页报告改为每批2页，每页最多3项，summary≤120字/area≤24字/problem与goal各≤80字/imageReason≤80字，由response schema约束。每批完成按文章/图片/设置签名保存visualReviewPending；中断保留完整批次，继续同一版本仅调用尚未完成批次，文章/设置变化不能复用旧页。完整覆盖全部页后才生成正式报告；后续批次附封面只作风格参考，不重复其结论。
保留当前角色配置与原Key，不无条件增大输出预算、不自动重试截断请求；输出截断仍不当作有效报告。分批可能增加请求次数，界面限制说明已注明，自动返修仍最多2轮。
验证：visual-batches模拟第2批截断，续接跳过第1批、覆盖5页、版本不变、无图片调用；mixed-repair/repair-image-routing/production-agent-loop/visual-verdict通过。未执行用户文章付费续接。


## V0.19.15 — 封面本地修正与问题单收敛
封面入口“修正封面排版（免费，不生图）”不再仅重画旧参数：清除模型遗留coverSize/coverY，切至统一v5词语换行，保存新版本并重绘全部预览，正文与底图保留，无文字/图片模型调用。道理明确禁止词内断行，原Key不变，专业审核不自动通过。
问题账本schema02按本次完整报告同步当前集合；相同位置/责任/问题/目标复用ID，不重复追加。旧记录保留为历史，只有审校明确该页pass才关闭；未复验消失的项目记历史而不伪称解决。旧schema在UI按最近报告投影当前问题，不把累计观察数当待处理。界面可展开历史记录。
同一问题集合返修后仍出现则停止后续重复返修，记录no_progress，不静默增加轮次/图片额度。
验证：local-cover-repair实际页面点击保存/重绘、清除旧字号位置、原正文/原底图保留且0付费调用；issue-ledger模拟34观察/9当前/复验后3当前、稳定ID、历史不删；模板六分支断词、混合返修与队列回归通过。未核验该用户34条具体内容，不能声称其中具体哪些已解决；未发付费API。


## V0.19.16 — 移除封面蒙板
摄影/生成封面不再绘制旧overlay矩形，刷新后的预览和重新导出直接移除历史遮罩。localLayout清除旧字号/位置并显式overlay=0；美工排版返修参数归零overlay，不重新生成底图。旧下载文件不变。
验证：真实页面本地按钮从overlay=.8修正为0，正文/底图保留且模型0调用；混合问题、排版0生图回归通过。未检查用户实际封面资产是否自带文字或遮挡。


## V0.19.17 — 文字凭据错误诊断
区分KEY_MISSING_THIS_BROWSER、KEY_LOCKED、KEY_RESTORE_FAILED；未配置明确限于当前浏览器，不宣称服务器或其他设备密钥丢失。任务保存失败平台并提供“检查本机文字Key（免费）”，只读取原平台本机库，直达该平台设置，恢复成功提示返回原任务。缺失/锁定分别提示新设备配置一次/用原口令解锁，既有Key不覆盖、不发模型请求。保留本机存储架构：文字Key目前不随云端文章/Agent设置同步。
验证：credential-errors虚拟浏览器的无Key/锁定/记住后新页面恢复及原密文不变，0网络请求；语法及diff检查通过。未读取用户本地Key，无法断言截图设备之前是否配置过。


## V0.19.18 — 打开文章时的跨设备同步
不再因文章dialog打开而暂停云端读取。无未保存修改时拉取后按文章ID重新绑定current并重绘当前tab，版本号/正文/对照同时更新。表单字段基线保护未保存输入：出现新云端快照则暂停替换与上传，在文章内提示冲突，先本机保存/备份再显式读取云端。其他编辑弹窗及正在执行的本机任务仍暂缓自动替换；pendingPull防止延迟读取被误标已同步。保留服务端revision CAS，不允许旧revision覆盖新快照。
验证：两个独立模拟设备，V6→V8在打开的干净文稿内更新且无回传；V8未保存输入遇远端V9保留并提示、无旧数据上传；菜单/列表回归及SQLite CAS/幂等/隔离检查通过。未读取用户真实正文或确认其平板V8已经上传。


## V0.19.19 — 同步文章降版保护与恢复
修复工作区R号新不代表文章V号新的逻辑漏洞。服务端即使expectedRevision最新，也拒绝同ID文章V号降低（ARTICLE_VERSION_DOWNGRADE/409），云端原文保留。客户端读取/手动载入时发现本机同ID文章V号更高则拦截，保留本机，不自动用旧云端替换。上传本机较新文章入口重新读取最新R，合并严格较高的文章行，保留云端其他文章与素材；其他本机差异不擅自合并。正常保存仍900ms排队上传，读取检查45秒/焦点刷新。
原同步前BACKUP不再反复覆盖，另存latest备份。新增本篇版本恢复：仅用户点击后扫描本机同步前备份/文章历史/任务候选，以及当前账号本篇的最近20个云端工作区历史。云端端点仅返回所请求文章的恢复字段，不返回其他文章/素材/源咨询资料/任务历史。预览后恢复成新草稿并上传，原版本入历史、专业审核清空，来源V8会另存至少V9，不伪装自动专业通过。
验证：SQLite实际CAS最新R下V8→V6拒绝；历史账号/文章隔离；双模拟浏览器云端R100/V6不能覆盖本机V8；模拟已覆盖V6从备份V8恢复V9并同步，无模型调用；V6→V8打开文章刷新及未保存输入冲突回归通过。未确认用户实际V8存在于本机或云端备份，不承诺已找回。
