ebbe995)|基线:dsh 0.1.0-rc.7
交互版:dsh-manager-plugin-page.html(cytoscape 动态 DAG,本报告的可视化镜像)
as1350/dsh-manager 为目标项目做插件级深度分析:依赖关系 / 如何实现功能 / 实现什么功能 / 基于什么需求 / 设计问题与建议。05-source/dsh-rc7。经拷问收敛五项决策:①方法论级一致(三硬依据 E1/E2/E3 + 源码行引用 + provides/depends_on/dependents 字段,独立交付不改知识库数据层);②新建独立留档目录;③基线用知识库内 RC7 官方源码;④可视化=单页交互 HTML(cytoscape);⑤DAG 范围=内部模块全节点 + 宿主依赖灰显 stub。
执行拆解:
ebbe995a114a61e6f760d45041a759071560f391(2026-08-22, v0.35.6),首次 clone 超时一次后重试成功。el._cyreg.cy.nodes() 逐节点比对标签),证实渲染正确、VLM 幻读排除。| 文件 | 说明 | 验证 |
|---|---|---|
01-source/dsh-manager/ | 源码 clone(commit ebbe995) | git log 核验 |
02-analysis/dag-data.json | 结构化分析数据:5 core + 18 stub + 23 边 + 4 功能 + 6 需求 + 9 设计问题,全部带行号证据 | JSON 合法、边端点零悬空 |
dsh-manager-plugin-page.html | 单页交互 DAG 页(cytoscape+dagre LR,本地 vendor,点击详情卡) | 门控 ALL PASS + 渲染验证通过 |
定位:传输面注册型宿主行——不 provide 任何 cordis 服务;提供物 = POST /api/dsh-manager 单路由(61 方法 RPC 面)+ 包内 6 技能注册 + 2 个 dispose effect。
双半边架构:node 半边 inject:['webServer'] 经 webServer.register 挂载;browser 半边经 __DSH_BOOT__ 机制注入(E3),inject:['slots'] 注册 sidebar.footer.action×4 触发器 + shell.overlay×4 面板;两端经同源 fetch JSON-RPC 闭合。
四大功能:Skills 统一管理(五来源 catalog + frontmatter 行级直写 + 回收站/备注/拼音索引);部署补丁管理器(replace/script(vm沙箱)/override 三类 + 内容寻址官方快照链重放 + RECOVERY.md + CLI 兜底);本地仓库面板(多根扫描自动分类 + 『只读面板+生成指令』模式);本地服务面板(services.json 账本 + 探活 + AI 诊断)。
需求溯源:六痛点(技能散落/误删不可逆/升级覆盖定制/仓库无账本/服务手动拉起/冷启动性能债),功能与痛点一一映射。
设计问题九项(高2/中4/低3):高=鉴权弱于宿主信任栅栏(自制 sameOrigin vs isTrustedApiRequest)、script 补丁 vm 沙箱自认非硬边界+服务启动 RCE 面;中=双单体文件(4626+4514 行)、依赖声明不实(inject=['slots'] 但实消费 6 服务)、轮询增殖(7 个 setInterval)、快照无 GC+CLI 双实现漂移;低=死代码/重复样板、硬编码本机路径、render-phase setState。每项均附对应建议(详见交互页或 dag-data.json)。