前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9663
  • ttok 0.4:轻量Token计数CLI工具更新
  • Anthropic 推免费 OSS Scanner,为开源项目自动扫描漏洞
  • MoE架构解析:为何稀疏专家模型统治了2026年大模型
  • Claude Haiku 5.5定价解析:10万token是关键分界线
  • AI编程工具效果分层:公开代码多则强, niche平台则弱
  • Botropolis: 用公司组织架构管理 AI Agent 开源框架
  • LLM 系统运维:可观测性、成本、路由与平台架构
  • Taste Skill 评测:Claude Code 前端设计质量提升实战
  • Anthropic 官方前端设计 Skill 实测评测
  • AI 生成 UI 验收的正确方法:几何测量替代截图diff
  • Microsoft Agent Framework 重新定义生产级 Agent 标准
  • 用代码规范防御 AI 编程的架构侵蚀
  • Claude新增视频生成与实时仪表盘功能
  • Claude 推出仪表盘构建功能
  • AI Agent 按调用付费:Bedrock AgentCore 支付实战
  • Google为Gemini引入Agent能力,企业版率先支持
  • GitHub Copilot 将推本地模式,但微软拒绝透露哪些数据上云
  • 9 周写 9 个 Triton Kernel:PyTorch 教我的性能优化
  • AQuA:生产环境 AI Agent 的静默质量回归诊断工具
  • AI安全测试全绿不代表真的安全
  • Claude Code 2.1.294 修复规则静默失效问题
  • LLM返回半有效JSON的正确处理方式
  • Jev 决策模型:让 AI 输出概率而非文字
  • AI 编程助长了哪些安全漏洞
  • AI 代理认证后到底继承了什么权限?
  • Google 推出跨应用统一 Gemini Agent 工作助手
  • AI 数学突破引发以太坊钱包安全性大讨论
  • 企业AI代理的隐形税:为何缺少基础设施上下文导致任务失败
  • Samsung Labs 开源亚 1-bit LLM 压缩:子因子分解新方法
  • Miro 两个月迁移 7 万测试用例:Jest 到 Vitest 实录
  • AWS Bedrock惊现严重漏洞:一个prompt可劫持账户所有Agent
  • Claude Sonnet 5.5评测:比 Opus便宜42%,每次运行表现一致
  • JetBrains开源Mellum2.1:面向编程Agent的12B MoE模型
  • 设计对AI Agent友好的可扩展API实践指南
  • Treg:面向 Agent 工具的 OpenRouter,按需调用千款 API
  • Ailoy:给 Agent 配备独立虚拟机的 Agent 开发框架
  • OctoGemma:本地运行的 Gemma 4 自主编程 Agent,支持 ReAct 自愈执行循环
  • 生产级语音 Agent 指挥中心:8 路并发 VAPI + Supabase Edge Functions 架构实战
  • AI渗透测试工具助单人攻破多家韩国银行,25万用户数据泄露
  • Architect推出Liquid Inference:实时拍卖LLM推理
  • 英伟达PivotOPD让多轮AI Agent学会从关键错误中恢复
  • OpenAI发布722篇AI数学发现,含黎曼假设相关成果
  • 程序员用 Claude Code 发现了一颗未知行星
  • Percona 推出 Redis 兼容代理清除 Valkey 迁移最后障碍
  • Google推开发者知识API与MCP Server公开预览
  • Vibe Coding必须补上QA验证环节
  • Perplexity发布 pplx-embed-v2:0.6B边缘Embedding模型
  • rea: MCP 逆向工程工具,可无源码分析应用行为与二进制
  • EmbeddingGemma 2: Google 开源多模态嵌入模型,支持动态维度截断
  • 144M 小模型承担 Agent 82% 决策调用,绕过大模型降本 95%
  • Excel 日期转换:45366 不是 Bug,是格式而非值
  • 已加载 51 / 9663
8.0
热点
AI SCORE
编程提效2026-10-08 23:15

Claude Code 2.1.294 修复规则静默失效问题

dev.to · AI#Claude Code#AI编程#Bug修复
Editor brief · 编辑速览

该版本修复了两类静默失效的 guardrail 配置:指令式 hooks 会错误放行应阻止的命令,以及通过 Bash 命令查看文件时路径规则和嵌套 CLAUDE.md 不会加载。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

本周 Claude Code 有两个静默的修复落地,两者都与同一件事有关:看起来生效了的 guardrail 配置实际上并没有生效。2.1.294 版本于 10 月 8 日 03:42 UTC 发布到 npm,修复了"指令式钩子允许本应拦截的内容"的问题——这是项目自身的措辞。同一个版本还修复了路径作用域规则和嵌套 CLAUDE.md 文件在 Claude 通过 Bash 命令而非 Read 工具查看文件时完全不加载的问题。如果你为活跃的代码库维护规则文件或钩子,这两个 bug 都不会产生错误信息。你的测试可能通过,审计可能通过,但 guard 根本不存在。

我为团队的 agent kits 编写规则文件和钩子配置,所以当这样的修复发布时,我不会问"我受影响了吗",我会问"我怎么能发现"。对于这两个 bug,诚实的答案是:只能通过测试行为来发现,从配置文本上永远看不出来。这件事值得展开说说,因为审计很简单,而这种失败类型的影响范围远不止一个补丁。

变更日志实际说了什么

摘自官方变更日志,版本 2.1.294:

"修复了以指令形式编写的 prompt 和 agent 钩子(如 'Block commands that..')允许本应拦截的内容"

"修复了路径作用域规则和嵌套 CLAUDE.md 文件在 Claude 使用 Bash 工具中的单文件 cat、head、tail、sed -n 或 grep 命令查看文件时完全不加载的问题"

再往上翻一行,2.1.293(npm,10 月 7 日 17:18 UTC):

"改进了以指令形式编写的 Stop 和 SubagentStop 上的 prompt 钩子(如 'Carry on if the build is broken')的评判方式,使 Claude 不太可能提前停止"

如果你写钩子,再读一遍第一行。某个钩子存在、已注册、每次匹配事件都会运行,却可能允许它本应拦截的命令。不是报错,而是 fail open。

失败模式:以散文形式写的 guard

Claude Code 钩子有两种形式。决策钩子是一个检查事件并返回裁定的脚本,裁定会被机械地执行。指令钩子,即 prompt 和 agent 两种,是被注入到上下文中由模型评判的散文。"Block commands that touch the deploy bucket." 这是一条写成长句子的策略,而在 2.1.294 之前,对这个句子的评判在恰好针对你写它的那个输入上可能出错。

强制执行的表单是这样的:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "./guards/block-pattern.sh" }
        ]
      }
    ]
  }
}

其中 block-pattern.sh 在匹配时以非零退出,并返回一个 JSON body:{"decision": "block", "reason": ".."}。那是代码,不是评判。2.1.294 中的修复是真实且受欢迎的,但它是对一个评判者的补丁,而评判者会再次被打补丁。这周之后我的原则是:任何绝对不能发生的事都应该放在有退出码的脚本里,散文钩子只适用于偏好而非禁止。这是我在一个 7 行的 Claude Code mod 覆盖了 deny 规则时得出的同样结论,而这条变更日志是进一步的证据。

另一个修复:从未加载的规则

第二个 bug 更隐蔽,因为它取决于 Claude 读取文件的方式。你为 src/payments/** 设置的路径作用域规则在 Claude 使用 Read 工具时加载。当 Claude 改用 Bash 工具中的单个 cat、head、tail、sed -n 或 grep 来查看文件时,规则完全不加载。所以同一个文件、同一个会话,只是工具路径不同,规则集就不一样了。

想想这对验证意味着什么。你通过询问 Claude 关于某个文件来测试你的规则,它加载了,行为正确。之后,Claude 通过管道中的 grep 访问同一个文件,而你关于支付代码、迁移安全性或密钥处理的规则就消失了。没人看到错误,因为不加载文件不会产生错误。我之前整理了 agent 忽略规则文件的七种方式,每个都有修复方案,而这是列表中的新条目:规则本身没问题,加载路径把它吃掉了。

升级到 2.1.294 后,运行两个探测可以在你自己的 setup 中捕获这两类问题。

首先,清点你的指令钩子,找出形似禁止语的散文:

grep -rn -iE 'block|never|forbid|do not|dont' .claude/settings*.json .claude/hooks/ 2>/dev/null

prompt 或 agent 钩子中的每个匹配项都是转换为决策脚本的候选。脚本不需要多聪明,一个对命令字符串做 case 分支的语句就能捕捉散文试图捕捉的大部分内容,而且它的裁定不依赖于某天模型如何读一个句子。

其次,通过两种读取路径测试规则加载。选一条你认为生效的规则、一条能产生可见行为的规则,然后触发它两次:一次在全新会话中显式要求 Claude 读取文件,一次让文件通过 Bash grep 出现。如果行为出现在一次而不在另一次,你就发现了一个加载路径缺口,现在你知道你的哪些规则以工具选择为条件了。每当客户端版本变更时重新运行这个测试,因为加载行为正是那种会被悄悄修复然后又悄悄打破的东西,这周的事实证明了这一点。

为什么"搭建时能用"什么也证明不了

两个 bug 有一个共同特性,应该改变你审查 agent 配置的方式:搭建时的检查通过了。钩子运行了,规则存在了,理性的人会说配置是正确的。失败发生在运行时评判和运行时加载路径上,从文件本身无从察觉。这就是为什么我不再把配置审查当作阅读练习,而是当作测试练习,用探测来检验行为,而不是检验文本。这和我在扫描 agent 配置寻找静默失败时采用的策略一样:磁盘上的文件是声明,探测是证据。我们在 AgentConfig Studio 发货的版本锁定 kits 存在的原因与此相关,这样当客户端在你的规则之下发生变化时,你可以知道什么变了、什么时候变的,而不是事后才发现 guard 缺失。

这个版本其余值得花三十秒了解的内容

2.1.293 还修复了一个内存泄漏:HTTP MCP 连接在关闭前保留它发送的每个请求,如果你长时间连接远程服务器运行会话就有影响。此外还添加了 Claude Haiku 5.5(claude-haiku-5-5),拥有 1M 上下文窗口,价格 $0.10/$0.50 每 Mtok,是 Anthropic API 上新的默认 Haiku。对于 mod 作者,isDeferred 在 $.tool.register 中现在控制工具的模式是从一开始就列在 prompt 中还是置于工具搜索之后,这是一个上下文预算杠杆,穿着注册标志的外衣。另外如果你错过了,2.1.292 将 stdio MCP 默认值切换到了 2026-07-28 协议,我在这里逐个服务器探测过。

升级,然后在两个地方重新赢得你的信任:将禁止类钩子从散文转换为带退出码的脚本,以及通过两种读取路径探测你的路径作用域规则。十分钟,你就不再依赖一个你看不见的评判者的补丁了。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
AI安全测试全绿不代表真的安全
下一篇
LLM返回半有效JSON的正确处理方式