dsh-manager 插件深度分析

@deepseek-ai/dsh-manager v0.35.6 commit ebbe995 基线 dsh 0.1.0-rc.7 方法论:三硬依据 E1/E2/E3

对 as1350/dsh-manager(DeepSeek Harness 的 Web 管理面板插件:Skills 管理 + 部署补丁管理器 + 本地仓库面板 + 本地服务面板)的插件级深度分析。所有结论附 lib/xxx.js:行号 源码引用,逐条可溯源;宿主侧依赖全部对齐知识库 deepseek-harness-plugin-dag 的真实节点。

23
DAG 节点(5 core + 18 stub)
23
依赖边(E1/E2/E3/RPC)
9
设计问题(高2 中4 低3)
61
RPC 方法(单路由分发)
~10.7k
被分析源码行数

入口导航

交互式依赖 DAG
cytoscape 动态图:点击节点查看 desc/provides/证据引用,E1/E2/E3/RPC 分色,离线可用
深度分析报告
五段完整版(HTML),AI 友好镜像见 report.md
结构化数据 dag-data.json
5 core + 18 stub + 23 边 + 4 功能 + 6 需求 + 9 设计问题,机器可读
源码快照 v0.35.6
被分析的完整源码(commit ebbe995,已去内层 .git)

方法论:三硬依据框架

E1 编译依赖

package.json peerDependencies / dependencies / import 语句——如 react 经平台模块表 require、pinyin-pro 宿主端生成拼音索引

E2 运行时依赖

ctx 服务注入 / ctx.get / 事件订阅——如 inject:['webServer'] 挂路由、ctx.get('llm') 做 AI 讲解、ctx.get('locale') 注册字典

E3 组合依赖

cordis.patch.yml 装配位置——insert id:dsh-manager 插入 profile 组合;__DSH_BOOT__ 客户端模块注入机制

高危设计问题速览(完整九项见交互页)

严重度问题建议方向
高鉴权弱于宿主信任栅栏:自制 sameOrigin 校验 vs 宿主 isTrustedApiRequest(DNS-rebinding 防护)复用宿主信任栅栏或迁移 api-gateway 受信通道;mutating 方法钉 loopback 开关
高script 类补丁 node:vm 沙箱官方自认非硬边界;serviceStart 可执行任意命令(RCE 面)导入补丁强制哈希签名校验;命令白名单模板;落地 BACKLOG#15
中双单体文件(client.js 4626 行 + index.js 4514 行),字典占 20%、内联 CSS 约 300 行拆分 locale JSON / 独立 css / 四面板子模块,引入 tsc 恢复声明合并类型面
低死代码 prefetchRepo、三处重复两击确认、约 30 处错误处理样板抽公共 useConfirmTwoStep() 与 rpc() helper