# 验证记录 本文保留冻结验收时的事实与历史阶段;当前发布状态以 [GitHub Releases](https://github.com/Missher12/Missher-DSH-Output-Renderer/releases) 为准,设备安装单独核对。 ## 2026-10-17 · 0.1.3 候选独立验收(candidate-r4) 冻结候选 `0.1.3`,最终修订仅比前一修订多 `src/client/styles.css`(极窄设置面板响应式)。下列结果由独立验收方在隔离环境中取得;运行件为本候选的实际构建字节,不由本仓库内联声明。 | 层级 | 本轮证据 | | --- | --- | | 类型 | 独立冻结副本的 Host 与 Client 两端类型检查通过。此前两次客户端错误属于产品类型桥问题,已修复并通过;脚手架自身的 CJS/ESM 身份误用另计,不与产品错误混为一类 | | 逻辑测试 | 4 个受影响文件共 **53 项通过**:settings、assistant、assistant-images、client-lifecycle。后续修订仅改类型桥、注释与 CSS,未改运行逻辑,因此沿用同一逻辑证据,**不声称**对最终源码全量重跑,也不把历史 47 项与早前 4 项流式针对性回归相加为新总数 | | 构建 | 最终候选构建通过。宿主与客户端依赖由宿主提供,开发 SDK 保持 `0.2.0-rc.2`,未内嵌第二份 Cordis/Schemastery | | 真实 Loader/服务场景 | 官方 npm DSH `0.2.1-alpha.5`(Cordis `4.0.5` / Schemastery `3.18.5`)与社区扩展 DSH `0.2.0-rc.2`(`4.0.4` / `3.18.4`)各 3 项,共 6 项通过并 finalize:正常保存与回读、缺少 `settings` 服务、缺少 `settings.configure`。能力缺失时显式降级并保留原生输出。上述服务场景运行期的外部请求与子进程尝试计数为 0(限该层;最终官方 UI 的退出阶段见下方边界) | | 受控插槽生命周期 | 两套宿主真实前端 SlotRegistry/Cordis 模块的受控生命周期通过:晚声明、撤销、再声明、卸载后不复活;根 marker、插件 style、locale 注册、表单订阅与两个槽注册最终清空。该层运行在 jsdom DOM 环境中,**不称为**真实浏览器验收 | | 真实 Web 页面 | 两套宿主真实 Web 页面复核最终候选:四种布局的 17 组思考 + 17 组正文 + 图片内容严格一致;设置 4 个字段可写且刷新保留;原生图片放大与工具展开保留;本地确定性 adapter 经真实 Agent 与原生只读 `read` 自建演示文件后给出最终 Markdown 与图片,结尾标记完整 | | 官方宿主附加项 | 保存失败回退、停止后保留部分内容且上一轮完整过程仍可见、36 轮历史加载、流式新增淡入节点出现并在完结后清零、主动滚离底部后 `scrollTop` 完全不变 | | 窄屏排版 | 390×844、宿主导航 188 px、插件设置面板仅 101 px 可用:修复后全部 11 个控件 `scrollWidth <= clientWidth`,正常换行且可选中,页面无横向溢出;1280×720 宽屏下词语不再被拆开。未改宿主导航,未裁掉说明或正文。两套宿主均实际复验 | | 停用/卸载 | 两套宿主经真实 PluginManager 停用:application=applied,页面 marker、插件助手与归属 style 均清零,输出外观入口消失,原生正文与图片仍在;浏览器最终 warn/error 为空。全程隔离 profile 与合成内容 | 边界:本次为 Linux 上独立 Host + 真实 Web 浏览器的验收,**未**操作原生 Electron 日常界面,**未**做日常安装,**未**正式 Release。Windows 与当前 macOS 未测;社区 alpha.2 本轮未做动态复验,其他 peer 范围不是全量兼容保证。界面内容由本地确定性适配器产生,**无外部模型调用**,但不应写成"零模型调用";未做服务端生成图片验收;不声称持续硬件满帧。 退出阶段边界:官方最后一次真实 UI 运行在插件停用检查通过后由人工 `SIGTERM` 关闭,该退出阶段记录为 scope 143、退出 guard 为空,因此**退出阶段本身不声称 finalized,也不声称外联为 0**;已另行确认实际 owner/host PID 均已消失。停用与页面清理的结论仅指上表"停用/卸载"一行的用户界面检查。 安装包在文档收口后冻结一次;文件与校验值以交付清单及同名 `.sha256` 为准。正式 Release 及日常安装由对应负责人另行完成。 ## 2026-10-17 · 0.1.3 兼容与契约候选(静态实现) 用户要求兼容合理范围内的旧版本宿主。本节记录**静态实现**内容:本会话只改源码、测试与产品文档,未运行任何动态检查;动态证据由独立验收方提供,结论见上一节。 - 依赖准入:`peerDependencies` 由精确 `4.0.4` / `3.18.4` 放宽为 `>=4.0.4 <4.0.5 || >=4.0.5-alpha.1 <4.1.0` 与 `>=3.18.4 <3.18.5 || >=3.18.5-alpha.1 <3.19.0`。prerelease 段必须显式写出,因为 semver 只允许比较元组相同的预发布版本进入区间。开发依赖与 `scripts/link-harness.mjs` 的固定 `0.2.0-rc.2` SDK 链路不变,未引入第二份 Cordis/Schemastery。`pnpm-lock.yaml` 不记录 importer 的 peer 说明符,故不随此改动而失效。 - 设置写入:`src/client/settings.ts` 不再假定快照带 `mode`。官方 alpha.5 快照已移除该字段,此时以宿主自己的 `writable` 为准;字段仍存在时只有 `host` 可写,`memory` 与未知取值保持只读。`loading` 仍按正常状态处理。 - 图片:保留 `renderMessageImages` 闭包优先分支;缺少它时改走宿主发布的 `conversation.images.content` Content Factory(官方 alpha.5 路径,不经过对 `conversation.chat.message.images` 槽位的第三方替换);两者都不存在时在正文位置显示可见提示,不静默丢图。 - 能力检查:`slots.inject/register`、`locale.register/bind`、`configForms.get` 在副作用前检查,缺失时输出精确诊断并保持惰性,不隐藏任何原生输出。宿主侧 `settings.configure` 同样先检查再使用,`ctx.fiber` 归属与 effect disposer 保留。 - 生命周期:根标记 `data-dsh-output-renderer` 绑定到助手槽位的真实注册生命周期;槽位缺失或卸载时恢复原生显示,设置页仍独立注册。样式表不含无作用域的原生隐藏规则。 - 窄屏排版:设置面板新增 `≤200px` 容器查询——装饰缩略图改为堆叠在文字上方不再占文字列,卡片改为单列并减小插件自有留白,控件允许换行增高使按钮完整可见,header/status 可换行;宽裕宽度下 CJK 描述词保持完整(`word-break: keep-all`),窄列复位以免溢出。未使用裁剪,未改宿主导航与四布局正文样式。 - 2026-10-14 的两处流式修复(逐块 `running`、遮罩同步淘汰)原样沿用,本轮未重做。 - 社区 alpha.2 折叠动画与强制展开样式的交互本轮仍未复现,未凭静态推断改折叠 CSS。 ## 2026-10-05 · rc.5 输出复核与排版候选 用户要求全面检查优化并整理排版;独立于 MARKET rc.4 冻结交付。 - 修复正文修正/缩短时旧淡入遮罩未立即清空,后续仅测量新后缀。 - 排除列表内代码工具栏、按钮和隐藏文本,避免非正文文字参与淡入。 - 设置的加载/断联/只读状态优先于旧保存失败,错误色仅用于当前失败。 - 正文标题按所选字号分层,间距随密度变化;卡片标签移除重复底部留白;小于等于 320 px 的设置区域采用上下排列。 - Host/Client 严格类型检查、6 文件 47 项测试、隔离构建通过。新增 6 项回归;pnpm 的自动依赖检查先因非 TTY 拒绝重装依赖,改用现有依赖的 TypeScript/Vitest 入口完成检查,没有重装依赖。 - 编译后 7 组受控 DOM 检查通过:4 布局×2动效,思考 4,326 个 UTF-16 单元、正文 2,526 单元完全一致,图片回调身份、工具边界、停止/卸载清理均保留。 - macOS Intel 上实际应用正式 CLI 在全新 HOME/DSH_HOME 安装 rc.5,配置合成、Host 本机启动、两个安装运行文件与受检构建逐字节一致。最终包仅更新说明,与实际安装的 manifest、patch 和运行字节一致。 - 内置浏览器返回 ERR_BLOCKED_BY_CLIENT;本地文件预览另被 URL 协议策略明确拒绝,未绕过。真实页面深浅主题、中英文、窄栏几何、代码/文件点击及动画观感本轮未验收;历史 rc.3 页面证据不冒充本轮结果。 - 日常安装、真实模型/图片端到端、Windows/Linux、纯官方独立运行、完整 Loader RPC 清单和持续硬件帧率未验收。没有改宿主、模型配置或用户会话。 本机证据:verification/ui-review-20261005/;主文件为 installed-runtime.json 与 client-boundaries.json。既有 rc.4 包和原 lib 保持;候选的 client.js SHA-256 为 21b1abfaa2d769b56dd1686b9c2a90c10f77c5ce36f9f54568b797d583b5de4b。 ## 2026-10-05 · MARKET rc.4 包装交付 `0.1.3-rc.4` 只补充公开发行包装、中英文说明、上游 MIT 原文和署名。运行文件固定为已验收 rc.3 字节:`lib/index.js` SHA-256 `f9228fd3020670cca0d33eede8c7d283ebec519c53ab59d363dfb52336b6309a`,`lib/client.js` SHA-256 `bc7ce7dcd0440a71d8f699e5b739dd840fbc1ffe26176b8d8b9a192c7e0df05a`。本次没有重新构建或运行类型、逻辑、浏览器测试,下方 41 项测试和 Web 结果保留原日期。 | 层级 | 本轮证据 | | --- | --- | | 包内容 | 最终包仅包含 manifest、Bundle patch、两个冻结运行文件、中英文 README、本文、LICENSE、NOTICE 和上游 MIT 原文,共 10 个文件;无 src/tests、开发 SDK、会话或凭据。独立 release 目录打包,既有候选不覆盖。 | | 应用 CLI 安装 | macOS Intel 上实际 0.2.0-rc.2 应用的正式 CLI 在全新 HOME/DSH_HOME 的 output-preview profile 安装 rc.4,Bundle 清单与配置合成包含 output-renderer;安装后两份运行文件与冻结 rc.3 逐字节一致。共享 peer 提示仍存在,不将该提示称为已消除。 | | Host 启动 | 沙盒内应用 CLI 与 SDK CLI 启动均出现 exit 13/unsettled top-level await,独立本机监听检查明确返回 EPERM。获准在另一全新隔离目录运行应用 CLI 后,Host 成功启动并仅监听 127.0.0.1;完成检查后正常停止。本轮没有读取完整 Loader RPC 清单,也没有浏览器点击,不能据启动日志声称全部 Loader 条目或前端交互通过。 | | 接口与许可证 | 静态对照本机上游 dsh-v0.2.0-rc.2 / 639ed015397290b3745d163aafe02ffee4aa3f84,所需公开插槽、助手属性和聊天 DOM 标记存在;上游 MIT 原文与该基线一致。未发现必须依赖 Missher 专属接口的代码,不代表纯官方发行版运行验收。 | | 变更隔离 | 本地工作树另有用户新要求的 src/tests UI 修订,作为 rc.5 候选独立保留;未进入 rc.4 运行包及其精准提交。日常 profile、会话和安装字节未写入。 | 安装及启动使用先前冻结的 rc.4 候选;最终 release 仅更新说明文件,manifest、Bundle patch、许可证及运行文件与安装对象一致。包路径和校验值见本次交付记录及同名 .sha256;原候选 SHA-256 2f32d07c67dee039e55bbef0292e5b3363e61ebb05c309c43ea0770ecab148bc 保留,不再作为最终公开资产。 本机证据位于 verification/market-20261005/,其中 rc4-runtime-approved/ 是成功的独立运行目录;两个失败尝试仅作环境诊断。尚未完成公开下载回读、市场投稿或合并、纯官方发行版、Windows/Linux、原生 Electron、真实模型/图片端到端及持续硬件帧率验收。 ## 2026-10-03 · 全面复核与排版优化 候选 `0.1.3-rc.3`。沿用四款布局和两种动效,修复停止、历史收尾、设置不可用和后台清理的实际问题。设置页改为等高两列卡片,说明文字均衡换行,保存状态移至标题旁;内容区小于等于 460 px 时自动单列。 | 层级 | 本轮结果 | | --- | --- | | 类型与逻辑 | Host/Client 严格类型检查、独立构建通过;5 文件、41 项测试通过。覆盖纯思考中断、分组停止提示只出现一次、纯正文 checklist 收尾标题稳定、空白思考、设置不可用及恢复、Unicode 字符边界、动效切换和后台资源清理。 | | 性能 | 历史回复、淡入、减少动态模式跳过不必要的字符分段,仅刷新率同步按需分段。5 万字符已完成文本的 FrameText 初始化/更新,预热 3 次后 10 次测量中位数约 15.809 ms→0.054 ms。只衡量这一段算法,不代表整页提速比例或硬件帧率。 | | 受控 DOM | 最终构建的 7 组检查通过:四布局 × 两动效保留 4,326 单元思考和 2,526 单元正文;原生图片引用、工具分段、停止/卸载清理及属性归属保持。后台单测确认隐藏时清空淡入节点、后续后台更新不创建遮罩,前台首段仅对新内容淡入。 | | 隔离安装 | 应用自带的正式 CLI 在全新独立 HOME/DSH_HOME 安装候选,两个运行文件与独立构建逐字节一致。真实设置保存、聊天渲染和会话重载通过;没有单独重跑完整 Loader RPC 清单。 | | 真实 Web UI | 使用实际 Agent、原生 read 和本地合成适配器。四种布局的两段思考各 259 个 UTF-16 单元,最终正文 223 个单元,切换前后逐字一致。代码、表格、文件链接及 END_RENDER_OK 均可见,原生工具展开状态 false→true→false。 | | 排版与语言 | 实际桌面设置为 2×2 等高卡片;中文为 271.5×97.6875 px,英文长文案也等高且无溢出。736 px 窗口中内容区 447 px,切换单列;深浅主题均检查。原生文件侧栏将会话缩至 353 px 后,三个输出容器均无横向溢出。 | | 停止与记录 | 清晰阅读在纯思考阶段点击停止,显示一个“已停止”,保留 47 个单元文字且不生成空答复卡。running 和淡入子节点归零,重新加载后文本/状态逐字一致。保存本机合成 Session V4 的 13 帧/32 行记录及实际 DOM;未运行仓库顶层 test:snapshot 回放命令。 | | 文案与边界 | 定向 i18n 检查无新增违规;stream.tsx 的 CSS 系统颜色 Canvas 仍是基线同一项误报。浏览器错误日志为空。日常 profile、原 lib 与既有安装包保持;隔离浏览器和 Host 已关闭。 | 本轮证据位于 `verification/audit-20261003/`,包括修改前哈希、测试候选、算法对比、受控 DOM、实际浏览器记录、深浅主题/英文/窄栏截图及合成 Session。最终交付包只补充说明文档,运行字节与以上受检候选保持一致。 验证中遇到三类环境/操作问题,均未修改宿主来绕过:沙盒不允许本机监听,获准后仅监听 127.0.0.1;同版本同路径测试包被旧 profile 缓存,随后改用全新独立 profile 并校验运行文件哈希;一次打包工作目录错误生成的草稿已隔离为 rejected-wrong-cwd,不作为交付。已有安装包没有覆盖,最终打包使用独立 release 目录并再次核对运行文件。 日常安装、多插件组合、原生 Electron 点击、真实模型/图片端到端和持续硬件高帧率未验证。刷新率同步仍按 requestAnimationFrame 调度,无固定帧率上限;本轮结果不承诺恒定满帧。 ## 2026-10-02 · 移除紧凑日志 候选 `0.1.3-rc.2` 按用户要求移除“紧凑日志”的设置选项、专属样式及示例文案,仅保留 reader/cards/process/checklist。旧 compact、timeline、split 值仍获 Host 准入,界面统一显示清晰阅读;读取不改写原配置,独立字号、间距和动效保持。 本轮 Host/Client 类型检查、独立构建及 21 项测试通过,覆盖三种旧值的读取映射与其他设置保留。正式 CLI 在独立 HOME/DSH_HOME 安装候选,实际 0.2.0-rc.2 Web 设置页只显示清晰阅读、柔和卡片、深想简答、任务清单四个按钮,浏览器错误记录为空。界面记录与截图保存于 `verification/four-layouts-20261002/`。最终包仅更新说明文档,运行文件与受检候选及隔离安装逐字节一致;旧 lib 和既有安装包保留。 本轮为布局选项移除与配置兼容的小范围变更;前一候选的完整合成会话、停止、工具与文件交互结果见下节,没有重复运行或冒充本轮结果。日常 DSH、原生 Electron、多插件组合和真实模型未验收,日常 profile 未写入;隔离 Host 和浏览器页面已关闭。 ## 2026-10-02 · A 深想简答与 C 任务清单 候选版本 `0.1.3-rc.1`,本轮实际使用 DSH `0.2.0-rc.2`。原 reader/cards/compact 保留,新增 process/checklist;其余 HTML 提案不实施。源码与有写入行为的验证限于本插件,独立构建及 Web profile 位于 `verification/ac-20261002/`。 | 层级 | 本轮结果 | | --- | --- | | 类型与逻辑 | Host/Client 类型检查和独立构建通过;3 个测试文件、20 项测试通过。新增 A/C 配置准入及保存重载,实际输出状态的运行、完成、中断标记。 | | 受控 DOM | 7 组检查通过:五布局 × 两动效均保留 4,326 个 UTF-16 单元的思考和 2,526 个单元的正文,原生图片引用、工具分段、停止/卸载清理与根属性归属保持。模拟 Markdown 和布局接口不代表原生界面验收。 | | 隔离安装与通信 | 安装应用自带的正式 CLI 将候选装入独立 output-preview profile,安装的两个运行文件与候选逐字节一致;真实设置页出现五款,A、C 可保存,C 重载后保留。未单独重跑 pluginManager 的完整 Loader RPC 清单。 | | 真实 Web UI | 本地合成适配器经过实际 Agent、原生 read 工具及持久化。A/C 两段思考各 259 个 UTF-16 单元、最终正文 DOM 232 个单元,切换前后逐字一致;完整 Markdown、代码、表格、文件链接与 END_RENDER_OK 均可见。A 的思考无高度上限或裁切。 | | 原生交互与主题 | C 下原生工具 aria-expanded 为 false→true→false,思考不变;文件预览显示合成文件。预览检查深浅主题,原生文件侧栏将会话收窄到 353 px 后三个输出容器均无横向溢出。 | | 停止与历史重载 | C 在生成中显示“输出中”,点击停止后显示“已停止”;47 个 UTF-16 单元的已收思考保留,running 为零,淡入容器子节点全部归零。重新加载持久化会话,步骤状态与思考长度相同。 | | 记录与文案 | 保存本机合成 Session V4 的 16 帧/40 行记录及 Web DOM 期望文本,验证从实际持久化历史重新渲染;没有运行仓库顶层 test:snapshot 回放命令。新增/修改的 Assistant、Settings、StepLabel、locales 定向 i18n 检查无违规。 | | 未覆盖 | 日常安装、多插件组合、原生 Electron 点击、真实模型/图片端到端和硬件持续高帧率未验收。本轮不改变流式调度器;两款仍可选择刷新率同步或新增文字淡入。 | A 只调整完整过程与末尾答复的视觉层次,不修改提示词或裁短模型正文;最终答复长度取决于模型输出。C 的“输出完成”来自 Assistant 的 settled 状态,不代表工具或整个任务成功。原生工具保留自己的结果状态。 证据为 `verification/ac-20261002/browser.json`、`session-reload.json`、`client-boundaries.json`、深浅主题截图与本机合成 Session。首次停止检查时合成流已经结束,后续在新一轮立即点击停止并完成回读;测试没有修改宿主运行代码。最终包的两个运行文件与受检候选相同,包内仅有七个运行/说明文件;测试会话、适配器、截图和凭据不入包。旧 lib 与已有交付包保留,日常 profile 未写入。 ## 2026-09-29 · UI-03 三种单列风格 候选版本 `0.1.2-rc.1`,目标 DSH `0.2.0-rc.1`。源码修改限定本插件,构建使用 `verification/ui-20260929/candidate` 与只读 SDK;旧 `lib/`、既有 tgz 和日常 profile 保留。 | 层级 | 本轮结果 | | --- | --- | | 类型与逻辑 | Host/Client 类型检查通过,15 项测试通过;新增覆盖旧 split/timeline 的宿主准入及安全映射,四项设置独立保存和重载。 | | 构建与受控 DOM | 两个编译面独立构建;7 组受控 DOM 检查通过,覆盖三布局 × 两动效、完整文本、原生图片引用、工具分段、停止/卸载清理与根属性归属。 | | CLI/Loader | 官方 CLI 将候选安装到独立 output-preview profile,Loader active、Bundle installed/enabled。预先保存的 split + smooth 正常加载,界面显示 reader + smooth,不先改写旧配置。 | | 真实 Web UI | 真实 Host、Agent 与本地合成适配器完成原生 read 调用;三种风格两段思考各 259 个 UTF-16 单元,内容完全一致,正文含代码、表格、文件链接和结尾标记。四项设置可保存,刷新保留;14 px/舒适的正文行高 23.8 px,16 px/紧凑为 24 px,段距 8 px。 | | 主题、宽度与交互 | 浅色/深色设置和聊天均检查;353 px 会话仍为单列,无输出横向溢出。思考容器无高度上限、遮罩或截断;工具 aria-expanded 为 false→true→false,思考不变;宿主文件预览显示合成文件。停止时保留已收文字,running 和淡入残留节点归零。 | | 文案 | 对本插件运行仓库 i18n 检查函数。新改文件无违规;未改动的 stream.tsx 中 CSS 系统颜色 Canvas 被原检查规则误报,基线同样为一项,不将全量检查称为通过。 | | 未覆盖 | 原生 Electron 点击、日常安装、多插件组合、真实模型/图片端到端以及硬件高帧率由相应后续验收覆盖;本次浏览器与合成数据不代表这些层级。 | 证据在 `verification/ui-20260929/`,含开始前差异、类型/测试/构建输出、受控 DOM、Loader 与浏览器记录及深浅主题截图。初次迁移测试误将 Schemastery volatile 引用当作普通字段,改为通过 get() 检查 Host 准入,原失败日志保留。隔离启动首次将 --patch 放到应用参数之后,CLI 拒绝;按本版帮助移到启动器参数区后正常启动。首次停止点击时合成流已结束,后续在新一轮开始时完成停止检查。均未绕过产品错误或修改共享宿主。 ## 2026-09-29 · 0.2.0-rc.1 适配 候选版本为 `0.1.1-rc.1`,仅支持已验证的 DSH `0.2.0-rc.1`。构建及有写入行为的验证全部在本插件忽略目录 `verification/upgrade-020/candidate` 中执行,开发依赖链接协调者交付的只读 SDK;未重建统一宿主或日常链接的旧目录。业务 `src/` 和原有测试保持原样。 | 层级 | 本轮结果 | | --- | --- | | 类型与离线逻辑 | 新 SDK 下 Host/Client 严格 TypeScript 检查通过;既有 2 文件/13 项测试通过。模拟 60/120/240 Hz 的调度、组合字符、停止/后台清理、保存回滚和只读设置继续满足原断言。 | | 构建依赖 | 显式指定 Host/Client 各自的 tsconfig,避免从统一仓库根继承源码 paths。Host 产物只外部引用宿主 Schemastery,未内嵌 Cordis/Schemastery 副本;Client 的公共函数取自新 SDK 已构建产物,React、原生 Markdown/图片等仍由宿主提供。 | | 受控 DOM | 7 组检查通过:四布局 × 两动效的完整文本、原生图片引用、reasoning/response 分段、流中卸载、停止淡入清理、订阅/样式清理及根属性归属。使用模拟 Markdown/布局接口,不替代下列真实 Web 检查。 | | 正式 CLI/Loader | 官方 CLI 将 tgz 安装至独立 `output-preview` Web profile;无版本豁免。真实 `pluginManager/listPlugins` 返回插件 enabled、fiberPhase=active;`listBundles` 返回 0.1.1-rc.1、installed/enabled。安装后的两个运行文件与受检构建逐字节一致。 | | 真实 Web UI/合成流 | 独立复核浏览器连接上述隔离 Host。四布局均可保存;刷新保留 split + smooth。真实 Agent 与原生 read 工具完成本地合成会话,四布局下两段思考各 259 个 UTF-16 单元、内容不变,回复含代码/表格/链接及结束标记。原生工具独立展开/收起,文件预览可打开;宽 680 px 时 split 为两列,文件预览把会话收窄至 353 px 时上下排列。 | | 动效与停止 | 淡入预览观察到覆盖新文字的动画节点;真实停止后保留已收到的思考,running 标记、停止按钮及淡入残留节点均为零。 | | 卸载与数据 | 官方 CLI 热卸载后设置入口、自定义 assistant、根属性与归属样式消失,原生回复仍可见。合成会话压缩日志 SHA-256 不变,除本 Bundle 以外的 profile 清单字段不变。 | | 原生 UI/生产安装/真实模型/硬件帧率 | 本轮未操作原生 Electron 窗口,未安装或重启日常应用,未请求外部模型,未测量恒定硬件 120/240 fps。由协调者统一审核安装及多插件共存。 | 首次构建发现 esbuild 隐式继承统一仓库根配置,将 Schemastery 源码打入 Host 包;保留首次日志,改为两个显式编译面后 Host 文件从约 34.7 KiB 变为 584 字节,并完成上述 Loader 与 UI 验证。首次全文对比把 Markdown 的段间换行全部去除而返回 false;检查实际 DOM 后确认每段间保留一个换行,三个段落文字与合成源逐段一致,四布局间严格逐字一致。未为这两处验证现象修改渲染业务逻辑。 本轮证据保存在 `verification/upgrade-020/`,不进入安装包;对外包仅含两个运行文件、Bundle 清单、README、本文和许可证。CLI 的验证安装包与最终交付包仅允许说明文档不同,两个运行文件哈希另行核对。准确候选路径、SHA-256 与安装审核状态见 [交付记录](DELIVERY.md)。历史验证记录保留如下。 ## 2026-09-28 职责审查与局部回归 源码基线:`main` / `a27923361e567cab70f70c25bf84ccbc7595101b` / 0.1.0,开始时工作树干净。所有有写入行为的检查在 `/var/folders/kz/5bh16rnn7yb4frncc7xvngn00000gn/T/dsh-render-review-20260928-QwJ2Vi` 中执行,缓存也位于该临时目录。证据保存于本机忽略目录 `verification/review-20260928/`,不进入安装包。 | 层级 | 本轮结果 | | --- | --- | | 静态与类型 | Host/Client TypeScript 检查通过;只注册 assistant-step 和自己的设置页,设置命名空间为 output-renderer。定向检查输入/上下文/模型/统计/桥接边界,未发现本插件接管这些数据或重叠注册。 | | 离线逻辑 | 既有 2 文件 / 13 测试通过:帧调度、组合字符、结束/停止/后台/卸载清理、保存失败回滚及只读设置。 | | 受控 DOM 与接口边界 | 对已交付 client.js 的副本执行 7 组检查:四布局 × 两动效均向模拟原生 Markdown 传递完整文本;已有图片引用交给原生图片回调;reasoning/response 分段;缓冲中卸载;停止时清空淡入层;样式/根属性/订阅清理及前任/后任属性归属保护。原生工具、输入草稿/附件与上下文 DOM 哨兵保持不变。 | | 真实 Loader / 通信、受控 Web UI | 本轮未启动 Host 或浏览器,未重跑。下方 2026-09-27 的结果仅为历史记录。 | | 原生 UI / 日常安装 / 真实模型 / 高刷硬件 | 本轮未验证。未检查日常 profile 的当前安装状态。 | 受控 DOM 使用模拟的宿主 slots/locale/ConfigForm、Markdown 与浏览器布局/动画接口,因此不证明真实宿主的槽位卸载、Markdown 排版、CSS 视觉效果或多插件同时运行已经验收。全文校验使用 4,326 个 UTF-16 code unit 的思考及 2,526 个 code unit 的正文,包含中文、组合字符及 ZWJ emoji。DOM 哨兵不等于真实输入功能回归。 首轮 DOM 检查的布局切换失败来自测试夹具只改变闭包值、未通知 memo 组件重新渲染;已保留首次报告并修正夹具的 props 通知,复跑全部 7 组通过。没有为通过检查修改业务源码。当前证据中的 `client-boundaries.first-attempt.*` 与最终 `client-boundaries.*` 可区分此过程。 仅更新 README、PROJECT_CONTEXT、DELIVERY、本文及协调回执。业务源码、测试源码、版本、原 lib 与 dist 均未修改;未构建或覆盖旧包、未写生产 profile、未重启应用、未执行 Git 写操作。完整职责与检查边界见 本机 2026-09-28 协调回执(不随发行包分发)。 ## 2026-09-27 实现验收(历史) 目标:DSH 0.1.7-rc.2,macOS。以下不代表 2026-09-28 重新执行。 ### 已完成 - Host / Client 严格 TypeScript 检查;esbuild 构建。 - 13 项离线测试:模拟 60/120/240 Hz 的显示帧、合并高频块、结束/停止收束、组合字符与 ZWJ emoji、内容替换、减少动态效果、后台/卸载清理,以及设置保存、拒绝回滚、只读连接。 - 真实 CLI / Loader:在独立 HOME/DSH_HOME 的 `output-preview` profile 安装目录 Bundle 并启动 Web Host。 - 真实设置页四布局与两动效独立写入,刷新后保留“左右分栏 + 刷新率同步”。 - 本地合成模型经过真实 Agent、原生 read 工具和会话持久化:两段完整思考、Markdown 标题、代码、表格、文件链接、中文/组合字符/emoji 和最终标记均呈现。 - 四布局切换后两段思考 DOM 文本各为 259 字符;无内部裁切。分栏为两列,原生文件预览打开后会话栏缩至 353 px,自动上下排列且无页面横向溢出。 - 原生工具展开显示本地文件内容,原生文件链接打开右侧文件预览。 - 淡入预览观察到新文字独立透明度动画;生成结束、停止后残留动画节点为 0。真实“停止生成”后运行状态归零、已收到的思考仍显示。 - 实际安装应用的 `ui-chat/lib/client.js` 与参考源码构建产物字节一致,SHA-256:`8d231e7558eda108714738737c82dab8efc342a66acd73234a01e99c31ff3552`。 - tarball 使用实际安装应用内的 Electron Node 24.18.1 / 官方 CLI 安装到另一隔离 profile;真正的 Loader 和 Web UI 通过,设置可写,原生工具流运行完成。 - 官方 CLI 卸载后无需重启,UI 中自定义渲染器、输出外观设置、根属性和归属样式均为零;原生最终回复仍在。测试会话文件 SHA-256 未改变,其他 profile 元数据保持一致。 - 安装包仅包含 7 个运行/说明文件;无测试适配器、脚本、node_modules、凭据或会话。pnpm 的缺失 peer 提示来自 profile 本地未重复安装宿主包,真实 Loader 已验证通过宿主解析。 ### 边界 模拟刷新率测试证明调度无固定帧率上限,不等同于真实显示硬件持续 120/240 fps。流式验证使用本地合成数据,不是外部模型 API 验收。没有修改宿主源码、模型参数、权限或会话存储格式。 未声称原生 Electron 窗口及真实高刷新率硬件的持续帧率已测量;以上浏览器验收采用独立复核方提供的隔离浏览器,Host 则使用实际安装的 DSH 运行时。