loops Bigharness.ai
BIGHARNESS DAILY · No. 26 2026 年 十一 月 02 日 中文

边界不再按命令字符串算:写入按真实路径,审批按 resume/fork 后的状态

今日判词:本周没有新的护栏品类,变化在坐标系。Claude Code 2.1.314(10/30)新增 permissions.blockWritesOutsideWorkingDirectories,让 Write/Edit/NotebookEdit 在任何权限模式下拒绝工作目录外路径,并让 sandbox 覆盖 --resume/--continue 进入的 worktree;2.1.314 修 auto mode 在安全检查无判定时把调用误报为已拦截,2.1.316 修 --restricted 会话的越界上传,并让云会话在无安全判定时直接失败。Codex 0.166.0(10/29)让已确认的审批与权限设置在 resume/fork 后保留,并把 reasoning token 记账带过分叉。Goose v1.57.0(10/28)的 allowlist 要求 HTTPS、检查重定向、策略检查失败即关闭。判词:只要「恢复点」与「真实路径」不在判定范围内,再严的规则也会在断点处失效;这周各家补的正是坐标系。

热度盘面 Top 6

  1. #1 anthropics/claude-code v2.1.312→v2.1.316(10/27–10/31) 安全

    2.1.314(10/30)新增 permissions.blockWritesOutsideWorkingDirectories:Write/Edit/NotebookEdit 在任何权限模式下拒绝工作目录外路径;sandbox 开始覆盖 claude -p --resume/--continue 进入的 worktree。2.1.316(10/31)修 --restricted 会话在 Read allow 规则覆盖时上传工作目录外文件。2.1.314 让 auto mode 在安全检查无判定时不再把调用记为已拦截,2.1.316 让云会话与定时任务在无安全判定时直接失败。hook 侧:2.1.312 起每会话最多 24 个 prompt/agent hook(含子代理),2.1.314 把 PreCompact 输出限到每 hook 10,000 字符,Monitor 工具启动的 shell 命令也走 Bash hook(可拦可问,不可批准或改写)。

    编辑注 写边界从「看模式」改成「看路径」,恢复路径曾是沙箱的旁门,现在补上。行动:打开 blockWritesOutsideWorkingDirectories,用 --resume 进入 worktree 验证沙箱,并检查现有 PreCompact hook 是否被 10,000 字符上限截断。

  2. #2 openai/codex v0.165.0→v0.166.0(10/27–10/29) 架构

    0.166.0(10/29)在 resume/fork 后保留已确认的审批与权限设置,并把 reasoning token 记账一起带过,避免恢复后因记账归零而提前压缩;pre/post-tool 与 permission hook 开始上报工作目录。Guardian 调整审批理由长度上限、工具输出截断、消息上限与异步分类。安全侧把不可读 glob 元数据的处理改为 fail-closed,Windows 沙箱保留 SystemRoot,代理签名时掩码 AWS 凭据,MITM 请求体做密钥替换。

    编辑注 resume/fork 是最容易丢状态的两条路:丢审批要么重新弹窗、要么静默放行,丢 token 记账则会让压缩提前发生。行动:把「恢复或分叉后旧审批是否仍有效」写进测试,并核对 hook 拿到的 cwd 是否就是它以为的那个。

  3. #3 block/goose v1.56.0→v1.57.0(10/23–10/28) 安全

    v1.57.0(10/28)收紧 allowlist:强制 HTTPS、跟随并检查重定向、策略检查失败时 fail-closed。结束于错误的 turn 现在会让 session/prompt 请求失败,不再留下看似成功的会话;移除 ACP 客户端委托的 developer tools。另把 zstd 升到 0.14.3 处理 RUSTSEC 告警,并移除 jsonwebtoken。

    编辑注 只匹配首个 URL 的 allowlist,一次重定向就可能换到未授权目标;出口控制应默认拒绝,而不是默认放行加告警。行动:用会 302 到非同源地址的 URL 测 egress 规则,并确认策略服务不可用时的默认值是拒绝。

  4. #4 sst/opencode v2.2.0→v2.2.5(10/27–10/30) 架构

    v2.2.3(10/30)把 managed policy 的集成访问与 mcp.use、skill.use、plugin.use 拆开,分别控制 MCP 服务器、技能与插件;v2.2.5(10/30)让 bash 工具名路由到 shell 时沿用原权限,压缩缓冲改为按百分比计算,并在 LiteLLM 报上下文错误时触发压缩。v2.2.1 起提供实验性的 session idle hook。

    编辑注 把「能装」与「能用」分开,是插件化 harness 迟早要补的一刀;别名路由保持权限,则堵住改个工具名就换一套规则的路子。行动:策略若还是整块 allow/deny,先按 MCP、skill、plugin 拆成三个开关,再谈最小权限。

  5. #5 pingdotgg/t3code 38.0k★ · 今日 +3,094(trending) 新星

    pingdotgg/t3code(38.0k★,今日 +3,094,trending 当日最大涨幅)自称「agent harness control surface」:本地 t3 server 统一驱动本机已登录的 Claude Code、Codex、Cursor、OpenCode、Grok Build 等 CLI,再由 iOS/Android/Web/Electron 客户端远程操作。仓库为含 apps/packages/native/evals 的 monorepo,README 标注 early-stage、基本不接受贡献。

    编辑注 harness 正在变成无头服务,前端与审批入口分离;远程客户端一旦触达审批,授权边界就从终端挪到了网络。行动:暴露本地 agent server 前先做认证与按客户端的权限范围,别把「连得上」当成「能批准」。

  6. #6 thedotmack/claude-mem 109.3k★ · 今日 +1,526(trending) 工具

    thedotmack/claude-mem(109.3k★,今日 +1,526)用 SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、Stop、SessionEnd 六个生命周期 hook 采集会话,本地 Bun HTTP worker 落 SQLite,Chroma 做语义与关键词混合检索,再以 MCP 三层次 search→timeline→get_observations 按需注入。支持 Claude Code、Codex、Gemini、Copilot、OpenCode 等多家。

    编辑注 它把记忆做成 harness 之外的侧车,于是 hook 覆盖面就是正确性边界:漏一个事件漏一段上下文,多采一个事件可能把密钥写进库。行动:先审 PreToolUse/PostToolUse 采到的工具输出与截图开关,定义保留期与删除路径,再谈跨会话记忆。

雷达上值得盯的 2 件事

release Gemini CLI v0.67.0-preview.0(10/27)把 IDE companion 桥接进容器沙箱,收窄 untrusted-flag 判定,让只读文件与硬链接按写边界处理,并把 MCP server/tool 元数据带进权限请求;稳定线仍是 v0.66.0(10/27)。预览版给出的方向很明确:审批提示要能说清是哪个 server 的哪个 tool。
trend 跨 harness 侧车正在成形:claude-mem 用各家生命周期 hook 统一采集记忆,t3code 用一个本地服务统一控制各家 CLI。采集与控制都搬到了 harness 之外,信任、审计与删除也随之外移。

判定发生在哪,是这周补丁的共同问题:写入按解析后的真实路径算,不按命令字符串;审批跟 resume/fork 走,不停在最初那次确认。Claude Code 补上工作目录外的写拒绝与恢复后的沙箱,Codex 把审批和 token 记账带过分叉,Goose 让 allowlist 跟随重定向并失败即关。边界是一条可达路径,不是一条命令。