log-li/dsh-auto-mode

log-li★ 1JavaScript最后同步: 2026-08-22

在 GitHub 打开

CC-style auto approval layer for DeepSeek Harness: deterministic rules + two-stage classifier, circuit breaker, fail-to-human. Shadow mode day one.

README 摘要

dsh-auto-mode CC 风格的自动审批层(DeepSeek Harness 常驻插件)。在专用权限预设 auto 内, 把 approval/request 瀑布的请求按六个频带路由,从便宜到昂贵: 1. hardDeny 正则 — 直接拒绝(外传凭据、管道执行远程脚本、authorized keys、密钥材料等) 2. humanOnly 正则 — 永远转人工( /.ssh 、shell 配置、 .env 、credentials 等) 3. deletionGuard — rm / unlink / shred / git clean -f 一律拒绝,并提示改用 trash (macOS 自带 /usr/bin/trash ),文件进回收站可恢复,而非永久销毁 4. allowCommands 白名单 — CC settings.json 风格的前缀 glob( npm install 、 git status …), 零 LLM 直接放行;deny 频带永远优先于白名单。 白名单命令触发的沙箱升级同样自动放行 (例如 trash 把文件移进 /.Trash 会跨出工作区围栏、以 danger-full-access 升级出现 —— 命令在白名单内就放行)。因此只把愿意"无人监督运行"的命令放进白名单 5. 确定性形状 — 只读工具/联网工具放行; escalate sandbox to : 请求仅当 目标是 workspace-write 且所有可提取路径都在信任根内才放行;danger-full-access 永不自动给 6. 两级分类器 — 仅模糊频带:fast 单发 SAFE/UNSAFE → 不确定时 JSON 复查; 任何失败 FAIL 转人工,绝不瞎猜。会话级熔断器(连续/累计 DENY)把失控会话还给人类 路径白名单: allowPaths (如 /Documents/work/ )会并入信任根,工作区外的常用目录从此不再弹卡。 上线第一天 = shadow 观察模式 dryRun: true :所有判定只进环形缓冲 + 控制台 + GET /auto-mode/decisions , 实际决定仍交给瀑布下游(approval-llm / 人工)。确认观察期无异常后,在 profile 的 cordis.patch.yml 里加一行覆盖即可切换为强制模式: 设计铁律与关键发现(2026-08-21 会话事故复盘) - 审批处理器内零会话日志写入 (dsh-approval-llm v0.1.3 会话中毒类)。 - 每个 approval.request 必须携带 signal: exec.signal : ApprovalService.decide() 在无 signal 时跳过中止竞速 ( if (signal === un…

在 GitHub 查看完整 README →
工具/开发auto-approvaldeepseek-harnessdsh-plugin

分类