Skip to content

v1.2.1 — 修复插件不加载与按钮崩溃(dsh 0.1.5 适配)

Latest

Choose a tag to compare

@Nothree-code Nothree-code released this 13 Sep 13:41

v1.2.1 — 修复插件不加载与按钮崩溃(dsh 0.1.5 适配)

⚠️ v1.2.0 请勿使用:该版本的客户端插件在 dsh 0.1.5-rc.2 上完全不激活,审查/引用按钮消失。请直接使用 v1.2.1。

修复

1. 插件完全不加载(按钮消失)

exports.inject 曾声明 ['slots','timer','settingsScope','connection']。Cordis 的 inject 是硬依赖——声明的服务未就绪会让整个插件永不激活。现仅声明必然存在的 slots / timer,可选服务 settingsScope 改为 ctx.get('settingsScope') 惰性获取(拿到就提供设置页,拿不到则降级到旧偏好路径,不再拖垮插件)。

2. 按钮渲染崩溃(适配 dsh 0.1.5 slot 契约)

新版 conversation.chat.assistant-actions 的 owner props 只提供 messageId,消息列表已从 session snapshot 迁移到 Chat snapshot。原代码 props.useSession(s => s.nodes) 得到 undefined,ReviewButton / QuoteButton 渲染时抛 Cannot read properties of undefined (reading 'find'),两个 slot 条目双双崩溃 → 按钮消失。

  • 新增 conversationNodesOf(props):优先读 useChat(s => s.legacy.nodes)(dsh 0.1.2+),回退 useSession(s => s.nodes)(旧版);两个 hook 以固定顺序调用以符合 React hook 规则
  • 所有节点查找加空值守卫,数据缺失时降级为空数组——陌生或更旧的宿主只会「少显示一个按钮」,绝不抛错
  • inputActions / useInput 在新版属 session 标准 props,引用写入路径无需改动

验证

  • 渲染级冒烟测试(复现 0.1.5-rc.2 的 props 形状):6/6 通过
  • 加载级冒烟测试(无 settingsScope 的降级场景):9/9 通过

安装 / 升级

dsh plugin --profile web add github:Nothree-code/review-quote-sh
# 重启 dsh web 生效

本地已安装时:同步 lib/client.js 后 Ctrl+F5 刷新页面即可(客户端插件无需重启服务)。

完整变更:CHANGELOG.md