# 更新日志 本文件记录 Mimi 桌面桌宠插件(`mimi-desktop-pet`)的用户可见变更。 完整历史见 [GitHub 提交记录](https://github.com/mekos2772/dsh-plugin-mimi/commits/master)。 ## v1.1.0 — 2026-10-30 修一个很影响手感的问题:**换上造型以后,大部分动作和拖拽都"点了没反应"**。 ### 修复 - **Retina 屏上换装后"点上去完全没反应"(本次最关键的一条)**:命中检测 `_visible_at()` 拿**逻辑坐标**(256×384)去采样造型渲染出来的**物理像素**位图 (2 倍屏是 512×768),等于只查到了位图左上角 1/4。实测 dpr=2 时点身体 (逻辑 128,240)取到 alpha=0 → `mousePressEvent` 根本没进入点击/拖拽分支。 默认外观走的是另一条渲染路径(自己画 256×384、dpr=1),所以只有**穿着造型** 时点不动——和用户描述的"别的造型下动作没法触发"完全吻合。真机屏幕 4096×2304 正是 2 倍。现在按 `devicePixelRatio()` 换算坐标。 - **换装后动作失效**:造型素材每套只有 15 个动作,动作库有 87 个。旧策略是 "造型没有这个动作就直接拒绝",于是摸肚子、击掌、双击、喂食、拖文件、坐下、 玩具、DSH 思考/工具动画、健康卡、主动行为……换装后全部静默无反应。 现在改成**语义近似链**:造型缺某个动作时退到这套衣服自己的另一个动作 (摸肚子→戳脸、击掌→鼓掌、喂食→点头、玩具→庆祝、思考→抬头、伸懒腰→打哈欠…), 既不会突然换回默认衣服,也保证每个交互都有反馈。 - **拖拽失效**:造型没有拖拽档位时(`maid_blue` 整套、`rain_coat`/`pajama`/ `summer_dress`/`sporty` 的大部分档)以前回退默认素材,拖起来会当场换衣服; 现在改用这套衣服自己的待机帧。另外修掉"三档造型每移动一次就重播同一段循环片", 以前表现为拖拽画面卡在第 0 帧不动。 - **5 套造型没有拖拽动画**:`rain_coat`(11 档)、`pajama`、`summer_dress`、 `sporty` 的拖拽素材每档只有 **1 张静图**,`maid_blue` 连档位都没有,拖起来 "换张图就没了"。视频生成服务暂不可用,改用 `scripts/pipeline/bake_drag_motion.py` 把已有姿势离线烘焙成 24 帧绕头顶摆动的动画(共 480 帧),manifest 同步更新。 - **拖拽不分左右**:造型只画了一套朝左倒的姿势,往右拖时水平镜像,方向感才对。 - **拖拽看起来没离地**:造型拖拽素材脚底仍在地面线上,而默认素材画的是悬空姿势; 现在补 22px 抬升 + 按速度摆荡。 - **睡觉/起床/起身变回默认衣服**:这三处走的是只查动作库的旁路,睡着之后整段 睡眠都是默认外观。现在统一走造型解析。 - **坠落/刚抓起时变回默认衣服**:渲染层以前只在待机状态用造型帧。现在穿造型时 任何状态都不会借用默认素材。 - **换完造型画面不变**:角色坐着/睡着时造型切换只排队,旧代码丢掉排队状态, 菜单里已打勾却还是旧衣服。现在换完立刻结算。 - **主动行为只演第一步**:导演的状态机被 `busy_until` 卡住,47 套主动行为 每套只演第一步就停;换装后 33 套完全看不到。现在能按节奏播完整套。 - **落地后 3–5 秒没反应**:造型的 `land_recover` 有 40–62 帧,按 83ms 播要 3.5–5.1 秒,而落地期间引擎拒绝一切交互。现在落地动作限制在 0.9 秒内播完。 - **调试日志写进启动目录**:macOS 没有 `TEMP` 环境变量,日志被写到当前工作目录, 往源码树里追加文件、还混入测试构造的假造型记录。改用系统临时目录。 - **头顶聊天栏消失**:v1.0.0 把 `DshPanel.show_box()` / `position_at_top()` / `position_near()` 掏空成 `pass`(注释写"消息栏已停用"),但 `should_show_panel()` 仍会在悬停头顶或 DSH 等待回答时返回 True。 于是"条件成立、方法也调用了、窗口却从不出现"。现已恢复真实实现: 桌宠模式下鼠标移到 Mimi 头顶即可输入,DSH 提问时也会出现。 面板位置也改回**贴在 Mimi 头顶**(v1.0.0 在 macOS 上曾改成贴屏幕顶部)。 另外构造函数末尾还留着 `WA_DontShowOnScreen` + `move(-10000,-10000)`, 导致窗口"有位置但不绘制"(能看到预留位置却什么都不显示),一并移除。 - **移除模式徽章**:现在只有桌宠模式,输入框里那个"工作模式"标签纯属噪音, 已删掉,占位提示统一为"和 Mimi 说点什么…"。 - **跳跃落地抽搐**:`_render_full_frame` / `_render_drag_pose` / `_render_rig` 用 `QImage(display_w, display_h)` 新建画布时忘了 `setDevicePixelRatio`。 2 倍屏上待机帧是 512×768@2、落地帧却变成 256×384@1,放大插值后就是明显的 抖动/发糊。现在统一走 `_new_canvas()` / `_finish_canvas()`,全程锁定物理分辨率。 ### 变更 - 造型动作的逐帧时长改为读取 manifest(不再一律 83ms)。 - 新增 `can_play()` 供主动行为/健康卡判断"这个动作现在真的能播吗", 以前查的是动作库,会挑到播不出来的动作。 - 落地补上"触地即压"的程式化下蹲:造型的 `land_recover` 前 5 帧几乎不动 (0,1,0,0,0),默认素材第 2 帧就位移 91px,所以以前观感是"落到地上停一会才蹲"。 - 落地动作限长 0.9 秒(原来 3.5–5.1 秒),期间 LANDING 会拒绝交互。 - 造型拖拽补上程序化"离地 + 摆荡":造型的拖拽素材其实是站姿(脚底在地面线上), 默认素材才画成被拎住悬空,所以穿造型拖动时看不出被抓起来。现在按速度抬离 地面并绕头顶摆荡,默认素材不受影响。 ### 验证 - 新增 `tests/test_outfit_actions.py`(26 项):逐套造型断言每个交互入口都有反馈、 每一帧都属于当前造型、拖拽不重播/离地、坐/睡/起身不换衣服,并覆盖 1 倍/2 倍屏的命中检测(后者在旧代码上会失败)。 - 全套 196 项单元测试通过;验收脚本 24/24。 ## v1.0.0 — 2026-10-30 第一个完整版:10 套造型全部可穿,每套 15 个动作 + 完整拖拽姿势。 ### 新增 - **造型动作补齐**:`rain_coat`、`sporty`、`pajama`、`summer_dress`、`maid_blue`、`knit_home`、`winter_scarf` 共补齐 90 个缺失动作, 现在 10 套造型都是 15 个动作(摸头、戳脸、庆祝、挥手、点头、打哈欠、鼓掌、落地恢复、倾听、抬头、害羞、坐姿、歪头、向左走、向右走)。 - **拖拽姿势全套**: - `rain_coat` 提供 **11 档**精细受力(t00–t10),拖得越快倾斜越大; - `sporty`、`pajama`、`summer_dress` 各 3 档(hold / medium / fast); - `maid_blue` 不需要单独素材——默认外观就是深海女仆,回退即正确。 - **引擎支持逐档拖拽**:`_outfit_drag_spec()` 现在优先精确匹配 `pose_index`,造型画了几档就用几档,没有才退回三档映射。 ### 修复 - **拖拽穿错衣服**:`rain_coat` t00/t10、`sporty` t10 此前接的是节日红裙素材,拖动时会突然变成红裙;已摘除错误接线并重做素材。 - **动作素材污染**:`rain_coat`、`pajama`、`summer_dress`、`sporty`、`maid_blue` 的动作帧整目录都是节日红裙副本(共 96 个槽位),已全部用各自造型重做。 - **动作尾部卡顿**:去掉动作末尾的静止尾巴(共裁掉 390 个静止帧),播完立刻回到待机。 - **落地动作走样**:`land_recover` 原提示词会让角色整体缩小俯冲(高度掉到 126px),已改为原地屈膝缓冲。 ### 变更 - **移除头顶消息栏**:不再显示白色输入框、模式徽章与提问卡片;DSH 的回复、摘要、工具活动、完成提示与提问全部改由头顶气泡承载。 - **默认桌宠模式**:启动即为桌宠模式,不再自动跟随工作会话;可在右键 `Harness` 菜单切回工作模式。 - **右键菜单**:去掉「打开消息面板」(消息栏已移除)。 - **素材压缩**:`expansion_v1` 从 349 MB 压到 **152 MB**(256×384,正好是桌宠显示的原生分辨率),加载更快、占用更小。 ### 验证 - 单元测试 170 项全部通过;验收脚本 24/24;UI 冒烟 26/27(唯一失败为无头环境没有 macOS 状态栏,属既有环境限制)。 - 素材完整性:动作 150/150、拖拽 35 档、manifest 断链 0。 ## v0.7.10 — 2026-10-28 - 适配 DSH 0.2.1:子智能体会话改用父会话地址订阅,不再整列中断。 - 后台任务改走新的 `job/list` 通道,任务行恢复显示。 - 某个流断开后会自动重连,不再静默丢失后续消息。 - 右侧专注面板在未打开会话时点击不再报错。 ## v0.7.9 / v0.7.8 / v0.7.7 - 绑定 DSH 引擎版本,跟随 Computer Use 0.3.1。 - Mimi 引导入口改用稳定 id `mimi-companion`。 - 适配 DSH 0.1.7-rc.1,Computer Use 改为非内置依赖。 ## v0.7.5 / v0.7.4 / v0.7.3 / v0.7.1 - 内置 Computer Use 升级到 0.2.2。 - 更新后首次打开显示更新公告;右键新增「检查更新」。 - 新增专注悬浮时钟。 - 头顶气泡按文字自适应宽高。 ## v0.6.0 — 2026-10-27 - 内置 Computer Use,支持 Windows 桌面操作。 - 新增桌宠聊天与好感度系统。