SuperAPI AI 工具集

plugin-runtime-debug

测试与质量

查看项目

更新于 10-16 01:34

技能介绍

用途:调试已安装 DSH Web 插件仅在浏览器运行时出现的异常,如粘贴、附件、编辑器功能首次可用后续失败,或 chip、面板整块消失。核心原则:外部 Web 插件调用的宿主客户端 API 契约位于 DSH 源码树而非插件类型中,行为偏离预期多为契约误读,诊断必须来自宿主源码。

主要方法:改动对宿主 API 的调用前,先在 DSH 源码检出(~/.dsh/source/current 或 vendored 副本)打开实现包,阅读实际方法的文档注释、守卫条件与比较类型,并对插件传入的每个值重复此过程。三个关键问题:偏移量对应哪个字符串(发布快照字段与内部编辑器投影未必一致,喂错表示会静默返回 false 或无操作);每种表示中一个“单元”占多宽(chip、token、附件等不透明内联单元宽度不同时,偏移量仅在无单元时正确);动词失败时谁察觉(返回布尔的动词静默失败会引发下游状态 bug,如界面渲染“缺失/不可用”占位符)。

症状族:首次交互成功、后续报错,指向状态改变了插件计算与动词期望之间的映射;移除按钮留下占位标签,说明移除动词被拒绝而簿记已删除;派生 UI 出现陈旧或幽灵条目,应基于权威事实源实时读取而非插件侧缓存;更新/版本 chip 报错“最新”,因远端标签与原始文件端点受 CDN 缓存影响滞后,应以运行版本为准;发布后整个槽位 UI 消失,常见于槽组件内抛错表达式被框架槽级错误边界捕获并卸载整个条目,错误仅输出到控制台。

其他机制:仓库编辑未到 GUI 或 node_modules 出现 EBUSY 时,先用 Get-Item <profile>/node_modules/<pkg> | Select LinkType, Target(或 cordis.patch.yml 中的 link:<path> 标记)判断安装模式;Junction/link 安装时仓库工作树即已安装副本,无需复制。仅库插件的激活:停止宿主、重启 dsh web、强制刷新、验证版本标记;源码启动的宿主需完整重启,Windows 下用 taskkill /PID <pid> /T /F 释放端口。客户端包含顶层 ESM import 会导致整组合并脚本编译失败、所有插件无法注册;客户端半部须通过 window.ModuleLoader.load({ id, factory }) 注册并在 factory 内 require("react"),导出 inject/apply。终端精灵边缘幻影像素与半块 ANSI 渲染缺陷、帧数据需对源美术做摘要断言;挂载后重新武装 setTimeout 的定时器链会保持事件循环,可用 timer.unref()。

流程:复现一次并记录用户可见字符串;映射到发出字符串的代码路径并定位边界宿主动词;打开宿主源码回答三问;写修复前先精确陈述不匹配(哪个表示、哪个守卫、哪些调用点);修复所有传入表示相关值的调用点;用先前失败的交互序列证明,连续两次操作行为一致且移除路径清理该对象的所有视图;仅库插件包保持内联版本常量与 package.json 同步,用 node --check 语法检查并在强制刷新后于浏览器验证。