审批和沙箱为什么是两个开关
它要解决什么
DSH 权限分两个正交变量:sandbox/mode 管文件效果,approval/policy 管是否询问。审批全程 fail-closed,唯一放行值是 allowed-once。
源码给出的答案
sandbox/mode 三档
sandbox/mode 三档:read-only、workspace-write、danger-full-access。approval/policy 两档:ask 交应答者链,never 直接拒绝。preset 只是旋钮组合的命名映射。
[repo]
切换 `preset` 只写实际变化的旋钮
切换 preset只写实际变化的旋钮,custom 是保留字,仅在组合不匹配任何 preset 时派生。无应答者、异常、关界面都归一化为拒绝。提权一次性,只授权那一个操作。
[repo]
收益与代价
审批弹窗弹出后用户关掉浏览器,结果如何: 请求归一化为 unavailable 或 cancelled,按拒绝处理,拿不到 allowed-once 就不放行。
策略为 never 时,prepend 一个 always-allow 应答者能绕过吗: 不能。never 在 decide() 开头直接拒绝,应答者链根本不执行。
别把取舍当成定律
本页结论对应 revision
0a53fb55bea101816fa226bb964ae2bed71c343b。文件位置、命名和默认行为可能随版本变化,引用实现细节时应同时记录 commit。
来源与核验
- [repo] DeepSeek Harness 官方源码(固定 revision)
- [official] DeepSeek Harness 官方介绍
Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31