Skip to content

v0.1.4 — 切换插件后悬浮按钮消失(修复)

Choose a tag to compare

@kyle123740 kyle123740 released this 27 Sep 03:01
· 15 commits to main since this release

症状:提示词与 AI 回复上的「撤回 / 删除」悬浮按钮消失。

原因(我自己的回归):v0.1.2 加了一个页面级 apply 守卫(DSH_MESSAGE_RECALL_APPLIED)防止同一份 bundle 被加载两次时重复注册槽位 —— 但它永不复位。在设置里 disable/enable 插件时,客户端会卸载后重新 apply,守卫直接返回,槽位就再也注册不回去,按钮消失直到整页刷新。我排查持久化 bug 期间反复切换过插件,正好踩中。

修复

  • 守卫由它自己的 teardown effect 释放:卸载→重新 apply 能正常注册,同时两个同时存活的副本仍会去重。
  • 行装饰不再依赖 sessions 查询:sync() 原本在拿不到会话面时整段早退,把操作按钮一起带走了。现在只有「占位行」需要事件窗口。
  • sessions 改为防御式读取,不再写进 inject,避免因一个可选服务晚到导致插件完全不激活(=没有按钮)。
  • MCR_DEBUG 新增 eventSource / decoratable 两个字段,「没有按钮」和「没有占位行」从此一次粘贴就能区分。
  • 两条回归测试:dispose 后重新 apply 能再注册;没有会话面的控制器仍然装饰行。

这一步只涉及客户端半边:刷新页面即可生效。Host 半边(v0.1.3 的 source-kind 落盘修复)仍需重启一次桌面版。