# 产品需求 ## 产品定义 在 DSH Web 的“设置 → 插件”中提供一个安全、可解释的第三方插件管理入口。 它本身是标准 DSH 插件,不包含桌面端、独立 Web 服务或常驻外部守护进程。 “不修改 DSH”在本项目中的准确含义是:不修改 DSH 源码、全局安装和官方包, 只通过官方 Bundle、Host Plugin、Client ModuleLoader、Settings Slot 与 Web Server 扩展面工作。安装本插件或未来管理其他插件时,对目标用户 Profile 的变化必须可见、 有限、可验证、可恢复。 ## 目标用户与场景 - DSH 使用者:查看当前 Profile 有哪些官方/第三方包、版本和来源; - 插件开发者:确认自己的包是否作为 Bundle 声明、是否安装和是否可解析; - 环境维护者:在未来版本中,以明确计划管理第三方插件,同时永久保护官方组件。 ## 功能范围 ### V0.1 只读清单 - 当前 Profile 的 Bundle 顺序与依赖清单; - 包名、本地版本、描述、来源类型、仓库地址; - 官方包与第三方包明确分组; - 未安装、无法解析、manifest 损坏等诊断; - 独立设置标签页和手动刷新; - 无网络请求、无缓存、无写入按钮。 ### V0.2 GitHub 市场与安全管理 - 单一 GitHub `catalog.json`、搜索、分类和 GitHub Pages 目录页; - 卡片可打开与官方设置视觉一致的详情弹窗;详情由 GitHub `catalog.json` 提供,展示 插件类型、安装来源、许可证、文件/网络/命令/凭据权限、外部依赖、审核状态和 DSH/系统/Profile 兼容性,本地副本仅作只读离线回退; - 只允许固定 GitHub Commit,不接受 npm-only、浮动分支、本地路径或任意 URL; - GitHub manifest、版本、Bundle Patch、入口 ID 与安装脚本在线复核; - 本地/link 插件明确保护,不被普通更新覆盖;只能通过单独计划将 Profile 依赖迁移到固定 GitHub Commit,不删除原本地目录; - 目录离线时只读回退,安装与更新失败关闭; - 只允许目录中已批准的第三方插件; - 操作计划、人工确认、Profile 锁、前置哈希、备份、原子提交; - 安装、卸载、启停、更新; - 依赖解析、托管 Patch、配置合成健康检查和失败回滚; - 每次操作形成可审计记录,但不记录凭据。 ## 明确不做 - 桌面应用、托盘、独立 CLI 或独立 Web UI; - DSH 进程启停与端口管理或自动重启; - Profile 创建、重命名、删除或跨 Profile 迁移; - 覆盖官方插件清单; - 自动更新、启动时修复、后台静默安装; - 修改 DSH 源码、官方包或全局安装; - 直接控制 Loader/Fiber 生命周期。 ## 成功指标 - V0.1:安装后的所有只读操作对关键 Profile 文件产生零字节变化; - V0.1:损坏或未知输入只影响插件页面,不拖垮 DSH 启动; - V0.2:所有市场目标都有 GitHub 仓库、Commit、版本和来源核验时间; - V0.2:故障注入下没有无记录的半提交,Profile 控制文件可恢复到前置快照。