Repository navigation
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