# 兼容性与验证记录 本文件区分已做过的验证与仍在开发的接入方案。**原生 Desktop 的主窗口流程已做实际验收;独立透明 helper 与物理多屏属于单独验证范围。** ## 当前范围 | 项目 | 状态 | 范围 | |---|---|---| | DSH 0.2.0-rc.2 Web profile + dsh-pet 0.3.7 | 已验证既有 Web 基础流程 | macOS;真实设置页、配置保存/重载、三角色透明视频、显式气泡与暂缓 | | DSH Desktop 2.0.17 原生主窗口 | 已验证基本流程 | 隔离 Web-capable Profile;设置连接、试说、可见云朵、配置/外观保存、安静一小时 | | Renderer RPC 接入 | 主窗口已实测 | 公开 connection.fetch 注册认证 /api 精确路由,客户端使用 connection.rpc;不修改官方依赖 | | 自动调度 | 可控时钟测试 | 频率、静默、等待审批/提问、休眠缺口、依赖失联与回执丢失;不等同真人长时间使用验证 | | 375px 独立预览 | 已检查布局 | 不等同 DSH 宿主设置弹窗;宿主固定侧栏会压缩内容,未宣称手机可用 | | Windows / Linux / Safari | 未做本项目端到端验证 | 不能从 dsh-pet 的平台声明直接推导本项目兼容 | 原生 Desktop 的权限限制与 Web profile 不同。不开启额外访问权限,不读取或伪造私有 renderer 权限头,也不把本机插件路由转发到公网。 ## Renderer RPC 验收清单 以下按实测范围填写。代码审查或单测通过不能直接替代真实宿主验收。 | 检查 | 结果 | 版本与可公开的验证摘要 | |---|---|---| | 原生 Desktop 当前 profile 加载正确 bundle 与客户端 | 通过 | Desktop 2.0.17 / DSH 0.2.0-rc.2,隔离 Profile | | 「设置 → 陪伴」渲染,无客户端错误 | 基本流程通过 | 原生 UI 显示已连接;测试日志未见激活错误 | | 保存后重启,配置仍正确 | 基本流程通过 | 先前保存的喝水92分钟在后续单宠主窗口重启后恢复 | | 三套角色实际动画及阅读待机 | 单宠基本流程通过 | 逐只查看待机、点击、显式关怀和恢复;完整OS透明合成/点击穿透另列待验 | | 显式试说只向目标发送一次气泡 | 基本流程通过 | 原生 UI ACK 与目标银白角色可见云朵;跨命令 UUID 去重另有逻辑/适配测试 | | 「安静一小时」在真实环境生效 | 通过 | 原生 UI 显示暂缓状态与成功提示 | | 依赖缺失、目标删除、连接中断时安静降级 | 待验证 | — | | RPC 不可用或客户端离线时不累计积压、不重复播报 | 待验证 | — | | 关闭/卸载后释放计时与连接 | 待验证 | — | 验证摘要只记录必要版本和观察结果,不提交机器绝对路径、用户 profile、数据库、运行日志、凭据或未获授权的截图。 ## 版本、数据与许可边界 Node.js 声明为 22+。DSH 安装与启动会检查声明的 DSH peer 范围;范围允许某个版本不代表该版本已经实测。不要用版本豁免代替修复不兼容问题。 新包名为 `dsh-pet-company`。设置写入新名称目录,旧配置只在新文件缺失时作为只读来源;旧宠物实例 ID 保持不变。升级步骤见 [安装说明](INSTALL.md)。 宠物美术与代码分别说明许可。来源图集的其他宿主规格校验不能替代 DSH 验收;原始比例差异不因转码而消失。橙色默认待机已按用户选择采用 `review` 行,原待机保留为 `source-idle`。 ## 可选互动外观补丁 云朵与轻回弹需要 compat/dsh-pet-0.3.7 中的可选补丁,原版 0.3.7 未提供对应扩展点。本轮经用户授权,仅在临时副本按官方构建配置生成运行时 JS 并隔离安装;未更新用户已有全局依赖,也未修改 DSH.app。完整类型检查、声明文件重生成及发布门禁尚未完成,不能把临时兼容包当正式发布包。 ## 本轮透明 helper 与资源边界 Electron 43.3.0 官方 Mac ARM64 运行时经官方 SHA256 校验,仅在隔离目录运行。三宠配置启动了独立 helper,并通过真实原生 AX 识别到银白角色;没有据此宣称全部浮窗行为通过。电脑操作接口随后发生长时间阻塞,同机内存压力确认 raw2,已停止本轮 Desktop、Electron 及其子进程,测试端口无监听。焦点、点击穿透、实际拖拽、物理跨屏/DPR 仍需在资源充足时补测。 最小化/关闭主窗按钮已执行并恢复界面,但工具观察可能激活窗口,不能证明整个隐藏时段持续中继。丢租约不积压与恢复不补发由确定性测试覆盖;真实长期后台存活仍未完整验收。 ## 用户实机反馈后的视觉修复与单宠复测 用户曾观察到周期闪烁及橙发点击变扁,因此先完成取证与候选修复,再在内存恢复后逐宠复测。已从源像素确认橙发 jumping 高度仅 113–125 像素,默认 review 高度为 189–190;原 waving 也更宽,因此默认点击/关怀改为 review 的精确视频副本 care,配合轻回弹和云朵,原动作保留供手动来源预览。 播放器取证确认固定单待机每轮重新加载 A/B 视频,双方 180ms opacity 交叉淡化会造成中间透明度下降;还存在迟到加载事件提交的竞态。兼容播放器候选已实现连续待机、首帧提交与过期资源清理,并完成官方运行时 JS 构建。新候选已通过官方 CLI 更新到隔离 Profile,并核对 10 个依赖运行文件及 7 个插件文件与构建产物一致;更新后已进行下述有界原生单宠复测。随后按橙色、银白、海蓝顺序进行真实单宠待机→点击→显式关怀→恢复的原生界面与截图采样。三套云朵均可见,蓝色关闭气泡生效,橙色未再变扁,采样中未复现空帧或周期变淡。每阶段实测内存均为 normal/raw1,测试进程已按阶段停止。 完整记录见 [单宠复测结果](qa/visual-stability/native-helper-results.json)。有限截图不能证明每一瞬间或长期零闪烁,也未消除源素材约6逻辑帧/秒的分帧感。橙色短拖动已执行,但窗口相对截图不足以确认屏幕位移;跨应用焦点保持、透明区域点击穿透、桌面合成透明性、物理多屏/DPR与220ms完整运动曲线均不宣称通过。 橙色另补做3010ms/48帧的连续窗口采样,约三轮待机只出现同一组6个正常姿态;点击后24帧未见变扁或空白。但首张点击采样在653ms后才开始,初始换层与回弹没有覆盖;采集间隔、解码掉帧和完整连续人眼观感验收仍有限制,未据此升级为闪烁已彻底解决。