# 安全说明 / Security Notes

本插件按 DSH STORE 的权限分类披露它使用的全部能力。**核心原则：不收集、不上报、不访问凭据。**

## 权限与能力

| 能力 | 用途 | 范围与边界 |
|---|---|---|
| **commands**（命令执行） | 「急停 / 强制终止」需要按命令行特征结束卡死的下载/安装进程（Windows `taskkill`，POSIX `kill`） | 仅针对**当前会话中处于运行状态、且命令行匹配本次操作所列出的工具调用**；匹配不到时只发送会话取消（等价 DSH 内置停止），不盲目杀进程 |
| **files**（文件读写） | ① 检测下载进度：**只读**下载进程输出文件的大小与修改时间；② 自动更新：下载新版本并替换插件自身的 `lib/`；③ 文案设置：读写浏览器 `localStorage` | ① 只读；② 仅写入**插件自身安装目录**；③ 仅浏览器本地，不出网 |
| **network**（网络访问） | ① 宿主 HTTP 路由 `/dsh-task-control/{resume,kill,pwsh-status,download-status}`；② 自动更新检查 npm registry；③ 客户端调用本地宿主路由 | 宿主路由**只监听 loopback**（`127.0.0.1` / `localhost` / `[::1]`），不做公网暴露；自动更新仅访问 `https://registry.npmjs.org/dsh-task-control/latest` 与对应 tarball |
| **credentials**（凭据） | **不使用** | 插件**不读取、不存储、不外传**任何 token、密码、Cookie、密钥或凭据文件；源码中没有任何凭据字段访问 |

## 数据流

- **无遥测、无统计、无外部上报**：插件不收集任何用户数据。
- 急停/追加条件所需的会话文本仅在本机 DSH 进程内传递（插件来源消息注入）。
- 宿主路由使用 loopback Host 校验，非本机请求一律拒绝。

## 自动更新

- 启动时查询 npm registry 的最新版本；若有新版本则下载并替换 `lib/`，**下次启动生效**。
- 开发模式（junction / symlink 安装）自动跳过，避免覆盖本地开发副本。
- 需要完全禁用：移除 `lib/index.js` 中对 `autoUpdate` 的调用，或保持离线（查询失败自动跳过）。

## 失败边界

- 所有宿主能力都建立在自身 HTTP 路由与 `ctx.get()`（`webServer` / `agents`）查询上；服务不可用时**降级为可见消息**，绝不影响 DSH 本体启动。
- 宿主半不注册 settings 命名空间、不改动任何 `@deepseek-ai/*` 官方组件，仅插入自身入口（`cordis.patch.yml` 一条 `insert`）。

## 报告问题

发现安全问题请开 issue：https://github.com/ningmengxr/dsh-task-control/issues
