# 0.5.3 配置与空闲轮转审查 本轮针对“登录超过 40 秒仍然站立”和频率档位太少的反馈。现场取样观察到一次高举牌和一次呼吸,并未复现所有报告;不能把持续站立都认定为随机行为。静态审查发现页面返回重设期限、取消/中断不进入视觉空闲两个确定缺口。本版修正这两个路径并补回归。浏览器帧回归另发现举牌序列最后一帧是放下姿态,旧逻辑约 4–5 秒播完后长时间停在放下帧;现改为中段保持、末段收尾,覆盖真实绘制帧验证。 ## 行为与配置修正 - 五个预设加自定义,频率按动作展示结束后的休息计算:安静、60–120 秒、15–30 秒、5–10 秒、1–3 秒,或自定义 1–600 秒。 - 上下界在串行保存时按最新确认值联动,连续拖动不使用旧界面值;非法区间拒绝;展示时长可调 5–30 秒。提高频率不提高动画帧率。 - 多举牌/均衡轮换/不举牌,空台词不画空文字牌;内置举牌延长举稳中段,最后再放下牌子。角色包按牌面锚点识别举牌,素材缺失保留安全回退。 - 首次问候在首次可见空闲才发生;页面后台、折叠、重新挂载保留期限,到期只触发一次。活跃任务后重新安排休息,避免补播过期动作。 - 正常完成与取消/中断有视觉收尾;不改 Host 任务结果,不把失败或等待确认偷偷变成空闲。 - 浮层设置有倒计时/暂停原因;减弱动态下禁用鞭策节奏、隐藏从属精调,动作数说明区分候选数量与实际效果。 - 修正旧“仅台词”设置显示成“台词和状态”;新增明确选项,消息关闭后的从属控件不再误导。 - 将 showTask 文案改为用户消息短摘;公开已有 speechSeconds 控件,并说明它是工作台词最短停留而非自动消失时间。 - 统一内置与外部角色空挥频率上限的强度计算顺序;外部角色关闭插件也不显示空挥。 - 外部角色隐藏不适用的内置布景、音效、疲惫和旧编排入口;手动速度模式说明历史基准不参与,暂无模型时禁用“重置当前模型”。 ## 全字段检查表 每个偏好字段均核对默认值、范围/枚举校验、写入路径、读取消费者、界面入口、适用条件。代码读取检查不等于所有平台或所有第三方角色的视觉保证。 | 字段 | 入口/效果与限制 | |---|---| | version | 内部版本 2;版本 1 迁移;未知版本拒绝 | | enabled | 显示与隐藏宠物;已关闭时由 DSH 插件设置恢复 | | idleMode | 六个选项;安静不主动轮换 | | idleMinSeconds / idleMaxSeconds | 自定义休息区间,1–600 秒,必须最小值不超过最大值 | | idleHoldSeconds | 空闲展示窗口 5–30 秒,气泡最多 6 秒独立消失 | | idleSignPreference | 内置动作筛选及外部角色牌面筛选;无可用动作保持回退 | | greetOnOpen | 标签页首次可见空闲问候;刷新不会反复重播 | | idleHideMessage / idleRandomText | 休息时隐藏气泡/每次互动随机换句;不改变工作台词频率 | | richness | 动作候选、内置幅度与粒子;不调整空闲频率 | | motionPolicy / reducedMotion | 系统、正常、减弱;旧 reducedMotion 仅在跟随系统时参与 | | bubbleEnabled / bubbleText / bubbleStatus | 四种显示组合,兼容旧“仅台词”与全部关闭 | | showTask / showTool / showFile / showStats | 当前任务短摘、工具名、文件短名、速度与时间;关闭内容不阻断任务观察 | | bubbleWidth / bubbleFont / size / opacity | 气泡宽度、字号、角色大小、角色和消息透明度;设置面板仍可读 | | speechSeconds / talkLevel | 工作换句最短停留、事件/30 秒/10 秒轮换;重要事件及时更新 | | dialogueJson / toolRulesJson | 自定义台词及工具规则;变量校验、空列表静音、用户覆盖优先 | | completionMode / completionSeconds | 成功结束的视觉收尾及 1–15 秒提示;不改变真实结果 | | whipEnabled / mode | 鞭策总开关、慢了催促/跟随输出;无反应素材及减弱动态时不播放 | | intensity / maxWhipHz | 驱动力与调度上限;完整动作和恢复停留限制实际次数 | | sound / volume | 内置空挥音效;需要浏览器音频手势,外部角色暂无音效 | | autoSpeed / targetRate | 按模型校准或手动速度;手动基准不依赖历史学习 | | includeReasoning | 是否将可见推理计入速度估算;不读取隐藏推理 | | learnHistory / windowSeconds | 跨会话速度记忆、估算窗口;关闭记忆清空历史但当前仍学习 | | timePressure / referenceSeconds | 超过工作基准后加强催促,仅适用于允许空挥的工作状态 | | fatigueSeconds | 内置角色工作动作候选;外部角色暂不使用,不保证定时擦汗 | | scene | 内置固定布景,动作仍跟随任务;外部角色用包内场景 | ## 非偏好设置 角色导入/预览/切换、旧动作编排、备份恢复和速度重置沿用现有实现。备份自动包含新增偏好字段,仍在恢复前校验并使用 revision 检查,已有角色与自定义台词不被默默丢弃。角色素材不足时无法凭配置生成额外动画。 ## 验证记录 2026-09-18,Node v24.19.0,本机 macOS / Chromium: - TypeScript 检查与构建通过。 - 单元测试 **134/134** 通过,最终结果见 `artifacts/settings-review-unit.log`;本轮新增空闲期限、后台恢复、取消收尾、举牌中段保持、配置范围和连续滑块保存回归。 - 浏览器完整回归 **32/32** 通过(`artifacts/settings-review-browser.log`)。随后调整滑块串行保存,再跑相关设置、备份测试 **6/6** 通过;保存与恢复逻辑单测 **21/21** 通过。 - 隔离原生 DSH 从 **0.5.2 升级到 0.5.3,15 项检查通过**(`artifacts/native-settings-053.log`):确认新增字段经真实 Host 校验、保存、刷新保留;原台词、角色库与选择保留;本地提交、输出与结束、多会话切换、备份恢复、禁用启用及卸载均通过。使用无密钥本地模拟模型,未调用付费 API。 - 新设置界面截图:`artifacts/settings-review-native.png`。举牌检查断言实际绘制帧,避免只有动作名称正确、画面已放下牌子的假阳性。 原生保存是异步的:测试必须等 Host 写入响应后再刷新,不能仅凭滑块 DOM 数值认定已保存。界面原有保存状态保留。 发布前检查时,日常 3080 的 DSH 仍有 1 个运行中会话,因此没有替换或重启;本地预览与隔离安装已验证。npm 与 GitHub 的实际发布状态以对应注册表和 Release 页面为准。以上不是跨平台或长时间运行保证。