# 安全边界

- 推理、桌面控制面和控制台 Cookie 分属独立通道，不互相替代鉴权材料。
- API Key 与设备授权的 controlKey / runtimeKey 仅经 DSH 凭据服务写入插件专属记录；设置页只读取存在性和状态，不回填秘密。
- Claude Messages 使用凭据服务中的插件专属随机绑定密钥，确保同一网关切换推理 Key 时不向新身份回放旧签名；会话和备份包含上游签名及加密思考元数据。无凭据服务时绑定仅在当前插件实例内有效。
- 桌面配置只读。仅支持已核实的生产环境，控制令牌只能发送到 `https://amr-api.open-design.ai`。控制台和推理请求禁止自动跟随重定向。
- 设备授权双令牌原子保存；runtimeKey 只自动提供给请求快照中的官方推理 origin，controlKey 只发往官方控制面。旧 Cookie grant 保留只读兼容。
- 推理自定义地址由用户显式配置；除本机回环外要求 HTTPS，拒绝 URL 内嵌凭据、查询串与片段。
- 额度分池不跨身份混合。桌面认证失效时，可回退到单独保存的控制台登录；权限不足和未知额度不伪装成 0。
- 独立登录使用设备授权。Host 可用 `playwright-core` 启动一个短暂的 Chrome 窗口显示官方激活页；这是插件自己创建的临时浏览器上下文，不创建、不驱动、不读取用户已有的浏览器配置或 Cookie，也不在该页面输入、点击或读取内容。由系统外壳拦截 `target="_blank"` 的宿主里，官方链接仍作为手动路径保留。deviceSecret 只在 Host 内存用于轮询；授权码、激活链接和到期时间仅在等待期提供给 UI，打开结果只返回固定代码，不返回 URL、浏览器句柄或错误正文。取消、超时和卸载中止请求，并有界请求关闭该临时窗口（每阶段最多约 5 秒，超时为尽力清理）；不关闭用户自己的浏览器。持久化成功是不可撤回的提交边界，之后取消不会假称已撤回。
- `OPENDESIGN_VELA_PATH` 是用户信任的本地程序路径。插件仅以固定 argv 执行只读查询，不通过 shell；不校验该程序的签名或下载它。不要将此变量指向来源不明的程序。
- RPC 使用严格白名单解析；原始错误正文、Cookie、请求头、Key 和桌面本地路径不进入状态返回。并发保存有版本冲突检测。
- 请求、流空闲、额度接口、CLI、登录和 RPC 均有有界超时。停用插件会撤销 Provider / RPC 并中止自身请求。
- 空轮守卫不发起自己的重试、不注入消息、不执行工具。宿主重试可能额外计费；该开关不能阻止上游自身的余额回退规则。

依赖的控制台及桌面私有协议可能变化。遇到未识别响应时显示失败或部分未知，不推测登录成功、套餐不存在或额度已清零。
