fix(chv): execd codex 白名单补 SUB2API_/XCM_ 前缀,网关 key 得进单元

chv-cell 的 FORWARD_ENV_ALLOWLIST 早已接受 SUB2API_API_KEY /
SUB2API_BASE_URL / XCM_API_KEY,但 execd _codex_env 的前缀白名单
没有这两项,调用方传了也被丢弃,单元内 codex 永远拿不到网关
key(假值探针实证:三者全被丢弃,只有 OPENAI_* 能通过)。
host.py sub2api provider 直读进程 env,缺 key 即调不到模型。
补前缀 + 扩展 test_codex_env_allowlist;GITEA_TOKEN 仍被丢弃。
真实 turn 仍待安全测试 key(另见 KEY-PIPELINE 报告),本次
只修链路不断言 live。
This commit is contained in:
host committed 2026-11-08 09:45:00 +00:00
1 parent 6466ea6024
commit dba5620e29
2 files changed
+21 -1

No files matched your search

+11 -1
View File
@@ -57,8 +57,18 @@ DEFAULT_TIMEOUT = 120.0
# codex 子进程可透传的环境变量白名单(前缀匹配;调用方
# 传什么别的都丢弃。模型网关 key 走这个口径,不走 argv,
# 绝不进任务登记文件与日志)。
# SUB2API_/XCM_(2026-11-08 真机验证遗留第 1 项补):
# chv-cell 的 FORWARD_ENV_ALLOWLIST 早已接受 SUB2API_API_KEY /
# SUB2API_BASE_URL / XCM_API_KEY,且 host.py 的 sub2api provider
# 直读进程 env 里的 SUB2API_API_KEY + SUB2API_BASE_URL;
# 但 execd 这层白名单没有这两个前缀,调用方传了也会被丢掉,
# 单元内 codex 永远拿不到网关 key(_codex_env 实测:
# SUB2API_API_KEY、SUB2API_BASE_URL、XCM_API_KEY 全被丢弃,
# 只有 OPENAI_* 能通过)。GITEA_TOKEN 仍不在白名单里,
# 绝不进单元。
CODEX_ENV_PREFIXES = ("OPENAI_", "CODEX_", "CHV_MODEL_",
"PLAYWRIGHT_", "CHV_BROWSER_")
"PLAYWRIGHT_", "CHV_BROWSER_",
"SUB2API_", "XCM_")
def _atomic_write(path, data: bytes):