# Security Policy / 安全策略

## 这个插件能做什么、不能做什么

`dsh-fullscreen-input` 是**纯浏览器侧**的客户端插件。它的 host 半（`lib/index.js`）是空实现，全部行为发生在 Web 客户端里。因此它的安全面比一个普通 npm 包要小得多：

- **没有网络请求。** 不调用 `fetch`、`XMLHttpRequest`、`WebSocket` 或 `sendBeacon`；没有遥测、分析或崩溃上报。
- **不执行文件系统或 shell 操作。** 不使用 `child_process`、`ctx.fs`、`ctx.shell`；不使用 `eval` 或 `new Function`。
- **不读取会话内容或凭据。** 它读写的是**用户自己正在编辑的那份草稿**，通过宿主自己的输入动作（`setDraft`、`submit`、`insertReference`）完成，与宿主自带的发送按钮走同一条路径。
- **唯一的本机持久化**是一个 `localStorage` 键 `dsh-fullscreen-input:settings`，只存面板外观偏好（遮罩开关与不透明度/雾化、面板底色开关与颜色/不透明度）。该值在读取时被严格校验为 `#rrggbb` 字面量或 `theme` 标记，因此手改这个键无法注入任意 CSS。
- **唯一接触文件的路径**是驱动宿主**自己的**隐藏文件输入框（`input[type="file"][multiple]`）：面板左下角的「添加文件」按钮会 `.click()` 它，面板内的粘贴会把剪贴板文件放进它的 `DataTransfer` 并派发 `change`。请求文件对话框必须在用户的点击/粘贴手势内完成，且收到文件后的处理全部由宿主代码完成，插件不读取文件内容。

## 权限

本插件**不需要**任何权限档位、审批放宽或沙箱调整即可工作。它不注册任何 Agent 工具，因此不会扩展模型的工具面。

## 报告漏洞

请**不要**为安全问题开公开 issue。

如果你是通过 npm 安装的，请用包页面上列出的作者联系方式私下报告；如果你是从本仓库克隆的，请用该托管平台提供的私密报告渠道。

报告时请附上：受影响版本、复现步骤、你预期与实际观察到的行为。收到后我会尽快确认并回复处理计划。

> 本仓库当前尚未配置公开的远程地址与 issue 追踪；待仓库公开后，本节会补上确切的报告入口。
