版本:1.2.6 执行日期:2026-07-25
v12.6 保留 v12.5 的分支、推理、标注、多语言、编码修复和 Codex 能力,并增加第三条主线:
- 设置内的简体中文、English、日本語界面切换;
- 历史文本乱码的识别、保守修复、备份与迁移审计;
- 确定性的语义列自动排布:拆解同列竖排、后代向右、完整子树纵向避让。
同时完整回归复杂 Markdown 选区、递归拆解/提炼、消息级分叉、上下文快照、推理对象、比较决策、流式停止续写、API Key 模型同步、思考等级、Codex OAuth/动态模型/命名只读权限、版本恢复、标注、折叠和三种导出。
用户截图中的 解释、里é�¢ 一类字符串,是中文 UTF-8 多字节序列被 Windows-1252/CP1252 当作单字节文本解读后形成的典型 mojibake。
当前服务已经对 HTML、JavaScript、JSON 和 NDJSON 明确发送 UTF-8,因此截图更符合以下某个历史边界曾发生误解码的表现:
- 旧项目文件;
- 复制或 JSON 导入工具;
- 恢复版本;
- 普通模型供应商或 Codex 的历史输出;
- 旧版浏览器/API 中间层。
仅凭截图无法证明最早发生在哪个入口,因此实现没有把未经证实的单一入口写成根因,而是在可信的读写和传输边界统一增加保守修复。
修复器只在候选文本的乱码信号显著下降、且不引入替换字符时接受转换;正常中文、日文、英文、模型 ID 和常见拉丁文字保持不变。已经出现 �、丢字节或其他不可逆损坏的文本,可能仍需从迁移前备份人工恢复。
- 设置 → 通用提供
简体中文 / English / 日本語; - 切换后立即预览,无需刷新;
- 保存后写入非敏感本地设置,重启仍保持;
document.lang、日期和数字 locale 随语言变化;- 静态文本、动态按钮、占位符、常用弹窗、状态、ARIA 标签和模式化计数可切换;
- 项目标题、用户输入、模型回答、标注、推理对象和比较结果不被 UI 层翻译;
- 即使用户内容本身等于“设置”等 UI 词条,也保持原样;
- 新生成请求附带当前界面的回答语言指令,并允许用户在提问中明确覆盖。
npm run test:i18n
npm run test:local
npm run test:browser结果:PASS。
浏览器套件实际在同一页面完成中文 → 英文 → 日文 → 中文切换,验证保存、重载、用户内容隔离和动态 DOM 翻译。
- HTML、JavaScript、JSON、NDJSON 响应包含明确 UTF-8 charset;
- 支持截图样本、日文样本、混合正常文本和双重误解码;
- 正常多语言文本及模型标识不被误改;
- 历史项目读取时深层修复标题、目标、节点、消息及嵌套字段;
- 第一次写回修复项目之前生成
encoding-before-*原始备份; - 项目持久化迁移版本、修复时间和累计修复数;
- 当前保存、恢复版本、设置、JSON 导入、API 请求/响应、普通供应商及 Codex 输出使用同一保守边界;
- 浏览器提前修复旧响应时,修复计数仍能传到后续项目保存;
- UI 只显示一次非阻塞修复提示,并随界面语言切换。
npm run test:encoding
npm run test:local
npm run test:browser结果:PASS。
本地 HTTP 测试同时验证了迁移前备份、修复元数据、乱码恢复版本、设置重启修复和供应商输出修复;Chromium 测试验证项目标题、目标、消息恢复后不再包含原始乱码,并在下一次保存写回迁移记录。
- 同一个
decomposition:*组共享 x,并按稳定语义顺序竖排; - 每个普通子节点严格位于实际父节点右侧 430px;
- 唯一子节点中心 Y 对齐,多子节点以首尾中心围绕父节点;
- 不同高度、嵌套拆解和不均匀深分支通过逐深度轮廓紧凑放置;
- 主树、孤立树、merge/summary 和 annotation 以完整子树纵向避让;
- 增量新增不移动无关稳定节点,也不通过额外右移列躲避;
- 手动标注坐标不变;连续两次完整排布坐标完全一致。
npm run test:layout
npm run test:browser纯函数 fixture 检查世界坐标和布局不变量;Chromium 另用真实 DOM 矩形检查所有未归档可见节点无重叠。
分别执行:
npm run check
npm run test:selection
npm run test:encoding
npm run test:i18n
npm run test:capabilities
npm run test:core
npm run test:local
npm run test:codex
npm run test:browser全部 PASS。
主要覆盖:
- 跨标题、列表、引用、强调、链接、表格和代码块的选区;
- 无法唯一映射时保存可见文字并明确标记范围未知;
- 拆解模块继续递归拆解和提炼;
- 独立顶部模块、搜索对齐、统一弹窗、分支编辑器和焦点行为;
- 标注点击/拖拽、3/3 密集虚线、状态隔离、折叠和搜索自动展开;
- 目标确认、消息截止分叉、不可变上下文、推理对象、语义关系、比较和决策;
- API Key 验证后保存、模型同步、思考参数转发和失败密钥保护;
- Codex 浏览器/设备码 OAuth、模型目录、思考等级、
:read-only权限、流式和中断; - Host、Origin、本地会话令牌、密钥隔离、Compact、版本恢复和三种导出。
完整工作树 npm test 连续两次退出码均为 0;两次 Chromium 阶段分别约 45.39 秒和 46.01 秒,随后全部 Node 套件通过。
发布目录和最终 ZIP 解压副本均执行:
npm run verify:package
npm test结果:PASS。
严格扫描共检查 63 个文件,确认不包含:
.git;.env.local;- 本地设置、运行状态、项目和恢复数据;
- Python/Node 缓存;
- 日志、截图和嵌套归档;
- 符号链接;
- 可识别的 API Key、Bearer Token、Cookie 或 Client Secret 模式。
ZIP 另外通过 unzip -t 完整性检查。净化解压副本完整 npm test 再次通过,Chromium 阶段约 45.91 秒。最终 ZIP 的 SHA-256 记录在 LAYOUT_FIX_REPORT.md 和交付消息中。
- Chromium 套件使用真实 HTML/CSS/JavaScript;受执行环境限制,浏览器网络层使用同构页面内 API。真实 Node HTTP、文件系统、会话令牌和密钥隔离由独立本地集成测试覆盖;
- Codex 自动化使用严格的 App Server JSONL 替身,不等同于真实账号、套餐、组织策略、网络或模型灰度;
- 普通模型供应商使用带认证的本地假上游,没有使用用户真实 API Key;
- 乱码类型可由字符串特征判断,但最初入口仍需原始损坏文件或上游原始日志才能精确归因;
- 不可逆丢字、替换字符或非 Windows-1252 的复杂损坏无法保证自动恢复;迁移前备份用于人工取证和恢复。