Files
dsh_shenxian/dsh-server-docs/scripts
admin cb184145e9 feat(cost): 门禁补上 Read —— 覆盖第二大输出源(用户点出「重点是把大输出去掉」)
用户纠正(2026-09-15):① 「12 万 token 就收口」**不是他定的规则**(他选的是"设会话预算"这个方向,
12 万/80 是我自己收紧的取值,未与他确认);② 「切会话」只是**缓解**,**不是重点** ——
他早在更早一轮就点明过:「跟平台参数没关系……**为什么还要在上下文中 如何才能去掉**」。

⇒ 重点 = **让大输出根本不进入历史**,唯一能做到的就是**入口拦截**。而原门禁**只管 Bash** ——
实测 `Read` 是**第二大输出源**且**完全没被覆盖**:某会话 44 次 / 累计 238 K 字符、单条最大 33 K 字符
(≈13 K token);另一会话 136 次 / 217 K 字符。

**改动**
- `bash-output-guard.py`:新增 `READ_BIG = 400 KB` + `read_too_big()`;`tool_name == 'Read'` 时,
  目标文件 > 400 KB ⇒ **deny**,文案给出两条等价做法(`Read` 带 `offset`/`limit` 分段读;
  或先 `grep -n 关键词 文件 | head -20` 定位行号再读那几行)
- `settings.json`:该 hook 的 matcher `"Bash"` → **`"Bash|Read"`**(⚠️ 配置是启动快照 ⇒ **需重启生效**)

**实测 5/5**:Read 小文件放行 | **Read 大文件拦** | Bash `cat 大文件` 仍拦 | Bash `ls -la` 仍放行 | Write 不受影响
2026-09-15 22:11:59 +08:00
..