Repository navigation
fix(auth): 将 Codex 启动器身份锚定到真实进程 - #1746
Conversation
|
感谢贡献!这个修复的方向和主链路都是对的:评审中核实了官方 npm 版 codex 的 以下是自动评审的初步意见,最终以维护者审阅为准,均不阻断合入: 1.(建议收口)找到真实 codex 后建议同步重锚 2.(建议收口)陈旧守卫建议复用共享 helper 并补接线测试。 新轮询内联重写了 3.(小)自定义 runtime 可执行文件名分支缺测试。 4.(小)轮询耗尽建议加日志。 30 次 / 约 6 秒解析失败时目前静默返回,线上排查无法区分「启动较慢」与「解析失败」,建议补一条日志。 另供维护者参考:#1745 也在调整同一函数内 wrapper codex 的 pid 解析(仅覆盖显式配置 再次感谢,核心修复本身是完整且有效的。 |
deepcoldy#1746 所修复的问题(npm 版 Codex 经 sh/node 启动器启动时, attestation 锚在启动器 pid,回合内工具进程的归属校验被回合前 进程快照拒绝 → current_actor_unverified)已由主干上的 deepcoldy#1753 与 deepcoldy#1772 修复并收口:复用 scheduleWrapperRealCliPid、全套重锚 backend.cliPid、configured executable 透传、切片级回归。 本提交补回该 PR 唯一未进入主干的增量——真实 worker 进程树 e2e: - 真 spawn worker → sh → node 启动器 → 原生 codex → 工具进程, 断言身份锚重锚到真实 codex 且 current-actor 校验通过,worker 代次/进程启动时钟失效均被拒绝(pty/tmux 各一例) - 新增 configured-runtime 重命名变体:自定义 leaf comm 只能经 executable 透传匹配,静态 codex 映射不得命中(pty/tmux 各一例) 变异验证:resolver gate 回退到 sandbox-only、applyRealPid 漏发 attestation 均使四例失败;retry 路径断掉 executable 透传仅使 configured 两例失败(official 两例保持绿)。Node 22 与 Bun 1.4 下四例均通过。 Co-Authored-By: Claude Code <noreply@anthropic.com>
8958079 to
ffa1a85
Compare
|
已合并,感谢贡献! 说明一下这次合入的形态:
再次感谢这个修复——问题定位、进程链分析和回归测试都很扎实。 |
|
🚀 Released in v3.41.0 |
普通 Codex 经过 shell / Node 启动器启动时,worker 会将启动器 PID 发布为当前回合的身份锚点。真正的 Codex 进程随后进入已有进程快照,工具调用被进程归属校验拒绝,
botmux actor current --json返回current_actor_unverified。在普通启动及 PID 延迟出现的路径中增加 Codex 专属的有界进程解析,将身份锚点更新到真实 CLI。解析同时绑定 backend、spawn generation、CLI lifetime 和启动器出生标识。原生 Codex 根进程保持自身锚点,已配置 runtime 使用对应可执行文件匹配规则。
验证:
bun run build、bun run build:bun和git diff --check通过。真实进程回归在 Linux 执行;macOS 沿用现有进程探针,未执行设备端验证。生产部署后的真人新回合授权验证单独跟踪。