# Changelog ## v2.0.0 (2026-08-28) 路线图里 v1.6.0–v1.9.0 四个版本的内容合并发布,按主题组织如下。 ### 余额关心(原 v1.6.0) - **新增·账户余额显示与播报**:新增「余额」分组,显示当前余额,并让她用一句话说明情况(分 充裕 / 正常 / 偏紧 / 告急 / 已见底 五档,共 29 条台词) - 数据源为本机余额代理 `127.0.0.1:3020`(`dsh-statusbar` 的 balance-proxy)。代理只监听 127.0.0.1、不回显密钥,上游请求在服务端完成,因此**浏览器侧依然只访问本机**,不违背「无外部请求」的承诺 - 60 秒轮询一次(与代理缓存对齐);**默认关闭**,代理未运行或取不到数据时静默失败,不弹错不刷日志 - 沿用「忙碌时不露脸」:播报只发生在待机时;充裕档几乎不主动提(6 小时一次),偏紧档 30 分钟一次 - 金额敏感,提供「余额显示数字」开关,关闭后只显示档位措辞,截图不泄露余额 - 低余额判定改由真实金额得出,仍复用既有的 `balance-low` 立绘与「🪙 余额告急」成就 ### 素材加载(原 v1.6.0) - **新增·立绘预加载**:90+ 张立绘此前无任何加载策略,冷启动后首次切到冷门姿势会迟滞。现在首屏只预载 5 张常用姿势,其余在空闲时段每 120ms 取一张,避免几十个请求同时抢带宽 - 优先使用 `requestIdleCallback`,不支持时退化为延时 2.5 秒启动;预取失败完全静默,不影响正常显示路径 ### 工具类型细分(原 v1.7.0) - **新增·按工具类型切换工作姿态**:跑命令、改文件、搜索、测试、评审、部署、调试各有对应姿态,**全部复用仓库里已有的 work-* 立绘**,不新增素材 - 识别方式是读取工具卡片文本做关键词匹配,**识别不了就回落到通用工作姿势**,绝不因为猜错而乱切 - 新增「工具细分」开关(默认开启) ### 拖拽物理(原 v1.7.0) - **新增·拖拽惯性**:松手后按瞬时速度滑行一小段并旋转回正;撞到屏幕边缘就停住(「抓住」边缘)不再继续转 - 轻放(速度过小)只做一次轻微回弹,避免抖一下 - 落盘时机调整到物理滑行结束之后,保存的是最终位置 - 新增「拖拽惯性」开关(默认开启) ### 主动关怀(原 v1.8.0) - **新增·四条主动关怀线**:久坐提醒(连续忙 25 分钟)、深夜劝休息(23 点后仍在忙)、卡住陪伴(同一状态停滞 8 分钟)、回来打招呼(离开超过 3 分钟) - 铁律是「陪着,不是指挥」——**工作态绝不插嘴**;关怀之间至少间隔 15 分钟,避免变成噪音 - 台词基调是提醒而非催促,共 19 条 - 新增「主动关怀」开关(默认开启) ### 无障碍(原 v1.8.0) - **新增·可选无障碍模式**:桌宠原本是 `aria-hidden` 的纯装饰,读屏用户完全感知不到。开启后可 Tab 聚焦、Enter/Space 摸头、方向键微调位置(Shift 加速),状态变化经 `aria-live` 播报 - 使用 `role="button"` + 动态 aria-label(含自定义自称),焦点可见 - **默认关闭**:既不给默认体验添负担,也给有需要的人留一条路 ### 成长日记(原 v1.9.0) - **新增·成长日记**:养成数据原本只能重置、不能回看。现在会按时间记录关键节点(羁绊升级、成就解锁),设置面板新增「成长日记」分组,倒序展示最近 12 条并标注相对时间 - 同一天同类事件只记一条,避免刷屏;最多保留 80 条,全部留在 localStorage ### 主题适配(原 v1.9.0) - **新增·跟随宿主明暗主题**:识别 DSH 的 `data-theme` / `dark` class,退化到系统 `prefers-color-scheme`,结果写入 `data-wm-theme` - 只影响气泡、菜单这类 UI 元素,**立绘不做滤镜**,避免把画风改坏 - 仅在主题变化时写入,不做每帧探测 ### 测试 - 单元 99 → **102 全绿**(新增余额档位 1 项、金额格式化 1 项、新增台词库完整性 1 项) ## v1.5.0 (2026-08-28) - **新增·自定义看板娘自称**(issue #4,@Vulpexl):设置面板总览卡新增「她的自称」输入框,与既有「如何称呼我」成对;留空或清空即回落到默认的「鲸鱼娘」。台词库里 363 处自称在出口处统一替换,不逐条改写 - **新增·关闭后的找回入口**(issue #5,@VectorAC):在设置里关掉看板娘后,左下角会出现一枚唤回按钮(🐋),点击即把她叫回来,按钮随即消失。因所在页面而自动隐藏的场景(设置页等)不会出现该按钮,避免打扰 - 实现:称呼/自称替换提取为 core 的纯函数 `applyNames(line, title, selfName)`(core 仍不碰 localStorage,存储读取留在表现层),便于单测与复用 - 测试:单元 97 → 99 全绿(新增自称替换 8 项断言 + 台词库默认自称覆盖 1 项) ## v1.4.2 (2026-08-28) - **修复出错后永久停留「翻车」立绘**(PR #7,wrzrmzx):`errorVisible()` 原把启动后出现的任何错误节点当作永久「活错误」,而 DSH 会保留失败步骤的错误卡片,导致鲸鱼娘被永久钉在 failure 立绘。现按「出错后对话是否继续推进」判定翻篇(新增 `ERROR_MIN_MS = 3000` 最小反应时长);并新增 `SETTLE_MS = 10000` 加载期结算窗口,避免刷新后异步挂载的历史错误卡片被误判为活错误 - 修复「打开看板娘设置」无反应(PR #2,haitang1):右键菜单原按文本「设置」查找按钮,新版 DSH 设置入口为纯图标按钮(`[data-slot="sidebar.settings"] button`),现按 结构 slot → `settings.trigger` 宿主按钮 → 文本兜底 三级查找 - bundle 安装方式补齐「看板娘」设置面板(PR #2,haitang1):`lib/client.js` 注册 `settings.section`(id=mascot,label=看板娘),内容与 `--mascot-settings` v27 同源(总览卡 / 陪伴表现开关 / 天气 / 日常与养成 / 成就墙 / 数据与重置),读 `whale-moe:*` localStorage 并与桌宠本体实时联动 - **适配 DSH 0.1.1-rc.2**:设置面板改经 `settings.section` slot 注册,不再依赖改写 `@deepseek-ai/dsh-client-ui-theme` 的 dist 文件(该目录在 0.1.1-rc.2 已移除,旧补丁路径彻底失效) - 设置面板健壮性加固:`renderSlot` 缺失或抛错时回落到内置 `MascotPrefRows`,面板不会空白;`slots` 服务不可用或注册失败时跳过面板并保留桌宠本体 - 兼容性声明更新:README 标注已实测 DSH 0.1.1-rc.2 - 测试:单元 97 项全绿 ## v1.4.1 (2026-08-18) - 设置面板 v27:顶部概览外卡宽度调整为 95% 居中,与下方折叠分组外卡视觉对齐(定稿) ## v1.4.0 (2026-08-18) - 修复小游戏「玩不了」:暂停条件收敛为仅页面隐藏,工作状态与设置页打开时均不再误暂停;游戏面板 role 修正,不再被误判为设置视图 - 立绘大扩充(新增 45 张,总计 90+):思考 / 离开 / 工具三态、戳头 / 戳肚子 / 戳尾巴分区互动、成长四态(升级 / 成就 / 每日完成 / 甩尾)、游戏四态、天气三态、节日五套(圣诞 / 万圣 / 中秋 / 春节 / 情人节)、梗表情 13 种 - 新互动·分区点击:头部 / 肚子 / 尾巴三区判定,各有专属立绘、特效与台词 - 新互动·关键词表情:聊天命中 13 个梗关键词(kyun / OMG / doge / sike / 膜拜 / peace / 怀疑人生 / waku waku 等)自动变身表情包 - 新功能·节日自动换装:圣诞 / 万圣 / 中秋 / 春节 / 情人节当天自动切换节日立绘 - 设置面板 v24 重构:折叠分组(陪伴表现 / 天气 / 日常与养成 / 成就墙 / 数据与重置)、标签页收纳(今日任务 / 本周签到 / 称号)、总览卡与分组卡等宽对齐 - 测试:单元 73 → 97 全绿(新增戳分区 / 节日 / 关键词词库 16 项断言) ## v1.3.0 (2026-08-18) - 新功能·互动小游戏「戳泡泡·泡泡派对」:右键菜单进入,4×4 网格 + 键盘方向键可达;普通/星星/炸弹三种泡泡、连击奖励、30 秒一局三档结算;每日 3 局养成奖励上限防刷;新增 4 个成就 - 新功能·养成玩法加深:每日任务(3 槽自动刷新,签到常驻)、周签到 7 天里程碑(1/3/7 天奖励)、羁绊等级解锁(Lv3 新待机动作 / Lv5 称号「鲸汐守护者」/ Lv7 彩蛋);设置面板新增「今日任务」「本周签到」「称号」三卡;新增 5 个成就 - 新功能·天气视觉特效:全屏 canvas 氛围特效 9 类 ×3 档(雨/雪/雷闪/风/雾/热浪/霜雾/阴/晴),基于温度/风速现推导 hot/cold/wind(修复三态词库从未触达的死代码);天气卡新增「天气特效」开关(默认开);工作态自动降档、雷闪禁播,页面隐藏暂停,性能预算 160 粒子上限 - 心情分层台词:心情 <40 低频低落句、≥70 高扬句;新增羁绊词库(Lv3/Lv5/Lv7 各 5 条 + 高/低心情各 5 条) - teasing 死代码复活:非工作台视图待机低频毒舌(不进入状态机,工作态稳定规则不变) - 词库扩容至 530+ 条;成就墙 30 → 39 - 设置面板 marker v12 → v13(旧版本自动升级,零迁移;新增小游戏/天气特效开关) - 测试:单元 42 → 73 全绿;CDP 全量 + 8 项新断言全绿;motion-qa / soak-work 回归保持绿色 ## v1.2.0 (2026-08-17) - 新增标准组合包形态:package.json 声明 dsh.bundle.patch + dsh.client.platform: web,可通过 dsh plugin --profile web add github:Sutera-Diffusus/dsh-whale-musume 或插件市场安装(通过 mydsh.dev 严格校验) - 新增宿主插件 lib/index.js:只读静态资源路由 /api/dsh-whale-musume/assets(含路径穿越防护、MIME 与缓存头),不改任何内置包文件 - 新增浏览器插件 lib/client.js:注入样式 → 状态机 → 表现层,资源根改写为宿主路由,防重复引导 - bundle 模式验证:真实 DSH 0.1.0-rc.6(3181 测试副本)安装 + 重启 + CDP 全量验收 38/38 通过,零控制台错误 - README 新增「组合包安装」章节并修正设置面板说明(bundle 模式自带面板,实测确认) ## v1.1.5 (2026-08-16) - 修复全新安装体验:`apply` 不再注册「鲸鱼娘·海洋甜点工房」主题选项,全新安装即是纯桌宠模式 - 保留 legacy `patchHost/patchClient/untheme` 帮助函数用于老版本清理 - 新增「从 Release zip 到全新 DSH 副本启动」的端到端验收流程,CDP 全绿 ## v1.1.4 (2026-08-16) - 修复半屏窗口鲸鱼娘变小:移除 ≤980px 视口自动缩成 48px 的规则,任何窗口宽度保持正常尺寸 - 修复后台/无头标签页中换图动画被浏览器暂停导致的姿势卡死:新增 1.6s 超时兜底,强制落地已加载的新姿势 - 安装器备份目录创建改为 recursive,默认备份位置泛化到系统临时目录 - CDP 窄屏断言改为「保持正常尺寸」,全量回归保持绿色 ## v1.1.3 (2026-08-15) - 修复「出现代码块后鲸鱼娘变小」:关闭代码密集自动迷你化 - 悬浮形态任何代码量都保持 200px,不再缩到 56px - 侧边/底部形态也不再因代码块缩小,只保留窄屏(≤980px)适配 - 手动迷你形态不受影响(若历史设置里存了 mini) - CDP 新增断言:3 个代码块出现时尺寸保持正常、无 dense 属性 - 全量回归保持绿色 ## v1.1.2 (2026-08-15) - 待机动作过渡链路彻底排查: - 余额不足等自动情绪也改为带动画进入(此前会瞬切) - debug 暴露 `moodAnimate` 便于现场诊断 - 新增 `mood-churn` 压测:24 轮动画/瞬切混合打断、117 帧采样,无空白帧、无叠影、无卡死,最终稳定回到 idle-cute;连续 5 轮通过 - 全量回归(42 单元 + motion QA + soak + CDP)保持绿色 ## v1.1.1 (2026-08-15) - 自称统一为「鲸鱼娘」,清除 DS娘 / 鲸汐 混用 - 待机日常动作(端咖啡等)进入时恢复「下压 → 换图 → 弹起」过渡,不再瞬间切换 - 设置面板与主题名同步为鲸鱼娘 - motion QA 新增「待机动作必须带动画进入」回归断言 ## v1.1.0 (2026-08-15) - 台词总量扩至 494 条:状态/日常/工作/互动全场景扩容 - 新增梗关键词:打工人、摸鱼、DDL、画饼、发疯文学、立 flag、bug 玄学 - 新增任务话题台词(写代码/写作/调研/修 bug/数据/部署)与天气台词、分时问候 - 5–8 分钟主动闲聊:问候/天气变化 > 任务贴题 > 通用梗,工作态不插嘴 - 天气陪伴:设置面板新增城市、选填 API Key、测试连接;Open-Meteo 免费无需 Key,城市留空零联网 - 深夜 23:00–5:59 不主动问候;工作态稳定规则保持不变 ## v1.0.2 (2026-08-15) - 布局层同样拦截情绪姿势:忙时 `statePose()` 不再让任何 mood 覆盖 running(v1.0.1 只拦了渲染层,仍有漏网路径) - 移除随机 `teasing` 状态闪烁:待机在任何随机数下都稳定保持 `idle-cute` - 工作释放路径固定为 running → success → idle,不发生回弹或中间空帧 - 新增 `soak-work` 60s 压测:6s 信号空洞 ×5、24 轮快速闪烁、忙时强塞情绪、释放与待机稳定性,全程帧采样 - motion QA 增加「mood 必须真正完成换层」与「开始前必须回到 calm」的前置断言 - 调试面板新增 `toolWasActive / lastSuccessAt / toolGoneAt / toolSeenAt` 字段 ## v1.0.1 (2026-08-15) - 修复工作态反复「抽搐」:换图动画被打断时不再误清新动画的防重入标记 - 工作信号短暂消失又出现时,工作姿势持续钉住(工作台 8s / 其他页面 4s) - 工作中不再随机切「工作小剧场」,情绪姿势让位给 running(点击互动除外) - 低余额提示在忙碌时不再切姿势,只在待机时露脸 - motion QA 新增「信号短暂断开不得翻姿势」回归检查 ## v1.0.0 (2026-08-15) - 首发公开版:鲸鱼娘看板娘插件 - 悬浮拖拽(拖拽姿态 + 光标跟随摇摆) - 待机 / 工作双状态与 320ms 动势遮断过渡 - 摸头养成、签到、陪伴时长、30 个成就、成就墙 - 47 张立绘(含工作中、表情包、日常) - 点击 emoji/星星特效、三连击庆祝 - 设置面板卡片化(基础 / 智能 / 养成 / 成就 / 位置与数据)