Mingyu's Library主页
2026年8月7日

第 40 课(补):新功能速用 —— v2.1.223(审批框绕过修复、/code-review 记住档位、1M 上下文封顶、按组织放行 marketplace)

说明:本文为 2026-10-13 回溯补生成,内容基于当时(D 前后)的公开报道检索。 📅 2026-08-07 · 版本窗口:2026-08-05 至 08-07(v2.1.223 发布于 08-06;v2.1.224 / v2.1.225 发布于 08-07) 场景还原:你习惯在弹框里扫一眼命令就点批准,却不知道命令可以用 Tab 或不可见字符把后半截"藏"起来;每次审查都要重新输入审查档位;想把 1M 上下文模型压回 200K 却发现开关对新模型无效;公司有几十个插件仓库,白名单写不过来。v2.1.223 一次补齐。 前置:第 9 课(权限与沙箱)、第 17 课(插件与 Marketplace)、第 24 课(代码审查工作流)。 不重复:同窗口的 v2.1.224 / v2.1.225(archive 插件源、凭据掩码进阶、Gateway 花费上限、自托管 runner)由第 41 课专讲;跨会话 SendMessage 见第 13 课。 来源:v2.1.223 发布说明 · Havoptic 8 月版本表 · 官方文档 Marketplace reference


技巧 1(基础):先升级——审批框不再能被"藏命令"

解决的问题:你在权限弹框里看到的命令,可能不是将要执行的全部。

v2.1.223 修了三处与审批相关的漏洞:① 用 Tab 或不可见 Unicode 填充的命令,不再能把一部分藏出审批框;② 精心构造的命令不再能把部分内容藏过 Bash 权限检查;③ workflow 脚本不再能用动态 import() 在 workflow 沙箱外执行代码。另外,agent 定义里的 bypassPermissions 模式现在会遵守组织"禁用绕过权限"的策略。

claude --version          # 低于 2.1.223 就升级
claude update

为什么重要:今天的深度文档里,人类审批者在 4 万局游戏中平均漏放三分之一的威胁——审批框本来就不可靠,更不能让它被绕过。把审批当最后一层,前面用沙箱和 deny 规则兜底(第 9 课)。 📖 v2.1.223 发布说明

技巧 2(基础):/code-review 记住你上次的档位

解决的问题:每次审查都要重新输入档位;/review 和 /code-review 两个命令傻傻分不清。

/code-review high          # 设定档位并审查当前 diff;之后不带档位就沿用 high
/code-review               # 复用上次输入的档位
/code-review high 1234     # 审查 PR #1234(格式:/code-review <level> <pr#>)
/code-review ultra         # 深度云端审查
/review                    # 现在只是 /code-review 的别名

习惯建议:日常提交前用中等档位,合并前或改动安全相关代码时再显式提高一次档位——因为它会被"记住",用完记得改回来。 📖 v2.1.223 发布说明 · 官方:Code Review

技巧 3(进阶):CLAUDE_CODE_DISABLE_1M_CONTEXT 对所有 1M 模型生效

解决的问题:想让会话始终停在 200K 以内(省钱、少触发长上下文退化),但以前这个开关只对一份固定模型清单有效,新模型上线就失效。

# v2.1.223 起:所有原生 1M 窗口的 Claude 模型都通过自动压缩封顶在 200K
export CLAUDE_CODE_DISABLE_1M_CONTEXT=1
claude
# 若自动压缩没能把会话保持在 200K,启动时会出现警告

# 走网关、用自定义模型 ID 时:未识别的模型现在也会按假定窗口自动压缩
# 想恢复旧行为(不建议):
export CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1

同版相关修复:modelOverrides 里不是 Anthropic 模型 ID 的键不再被当成会话的规范模型 ID(按文档忽略);网关模型发现不再隐藏 vertex_ai/claude-*、bedrock/anthropic.claude-* 这类带前缀的 ID。 📖 v2.1.223 发布说明

技巧 4(高阶,管理员):按 GitHub 组织放行/拉黑 marketplace

解决的问题:组织内有几十个插件仓库,逐个写进白名单维护不过来;也想一次封掉某个不可信组织下的所有仓库。

// 托管设置(managed settings)
{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "your-org/*" },
    { "source": "hostPattern", "hostPattern": "^git\\.example\\.com$" }
  ],
  "blockedMarketplaces": [
    { "source": "github", "repo": "some-untrusted-org/*" }
  ]
}

要点(官方文档):owner/* 需 v2.1.223+,匹配恰好这个 GitHub owner 下的所有仓库;它只在 strictKnownMarketplaces 和 blockedMarketplaces 两个策略列表里有效——在 claude plugin marketplace add 里会被拒绝,在 extraKnownMarketplaces 里会被当成字面仓库名导致克隆失败。另:设置了 strictKnownMarketplaces 后,技能目录插件需要额外加 {"source": "skills-dir"} 才会继续加载。 同版的托管设置修复:服务端下发的设置不再让本机 managed-settings.json / MDM 配置里的 env 块失效,管理员的 env 现在按键合并。 📖 Marketplace reference · 策略列表 · v2.1.223

顺带一提:v2.1.223 在云端会话里加了 /teleport 提示,告诉你如何用 claude --teleport <session id> 在本地接着做;当 workflow agent、forked skill、斜杠命令请求的子 agent 模型被限制、实际改用父模型时,也会给出警告。


今日实操(15 分钟)

  1. claude --version 确认 ≥ 2.1.223。
  2. 在一个有未提交改动的仓库里运行 /code-review high,再运行一次不带参数的 /code-review。
  3. 设置 CLAUDE_CODE_DISABLE_1M_CONTEXT=1 后重新启动 claude,用 /context 看上下文上限。
  4. 验收:第 2 步第二次审查沿用了 high 档位(界面或输出里能看到档位);第 3 步上下文上限显示为 200K 左右,且启动时没有"未能保持在 200K"的警告。