Repository navigation
fix(traex): 避免终端空闲提前撤销派发身份 - #1876
Conversation
开发机隔离部署与真实双 Bot 验收验证提交: Source 使用 TRAE CLI 0.201.6 / gpt-5.6-sol,Target 使用 Codex 0.162.1 / gpt-6-astra。两个专用测试应用分别使用独立 HOME、配置、工作目录和端口,仅共享测试专用的委托数据目录;代码包传输前后 SHA256 一致,验收期间未修改 PR 源码。 真实完整链路:通过。
开发机 Linux / Bun 1.4.2 回归另有 5 个文件、178 项全部通过:派发身份委托 19 项、结构化生命周期 35 项、CLI 身份 67 项、当轮身份 50 项、普通消息初始化并发 7 项。 竞态与证据边界:
过程与清理: 隔离 Source 的代理例外配置修正后,模型预检通过,由用户重新发送真人任务。期间模型自行添加 验收结束已停止两个测试 daemon 及其 CLI:11 个匹配隔离 HOME 的进程无存活项,4 个专用端口均关闭。原有 5 个机器人相关进程仍存活,原 |
|
你好,这个 PR 的自动评审群已建好(飞书群,机器人双评审流程)。系统按名单自动邀请时受跨租户可见性限制没能直接拉你进群。 请点击下面的链接加入评审群(一年有效,群外成员需要通过此链接申请加入): 如果链接打不开,也可以把你的 GitHub 账号和飞书信息补录到名单文档,后续复审会自动拉你进群:https://bytedance.larkoffice.com/wiki/WJ1nwWbtxi89erkNGNbcgkt9nUe (本条由 Botmux 自动巡检流程发布) |
|
更新:已通过内部流程把你直接邀请进评审群,无需再点上面的加群链接,在飞书里查收群邀请即可。(自动流程补拉,抱歉打扰) |
854234f to
5af4531
Compare
5af4531 to
cd9909c
Compare
|
🚀 Released in v3.44.0 |
问题与结果
TRAE 的 transcript 已出现
user_message、尚未出现终止事件时,PTY 的临时空闲画面仍可能进入markPromptReady(),撤销当前回合的 managed origin 和 caller。无沙箱命令又能通过 host IPC 鉴权,派发接口因此继续发送 kickoff、返回成功,却没有写入真人身份委托;接收 Bot 执行受保护工具时才发现身份缺失。本改动让 TRAE 使用现有结构化生命周期门禁:已开始的回合等待
task_complete(成功或失败)或turn_aborted,中间的 assistant 文本和终端空闲不会结束回合。派发接口对需要身份委托但没有有效turnId的请求返回dispatch_turn_unproven,不再静默发送缺少回合身份的任务。变更与边界
structured-bridge-clis.ts:将已有完整成功、失败、中断解析的traex加入生命周期门禁。daemon.ts:受保护派发必须有当前 managed turn;host IPC 鉴权不替代真人回合证明。user_message,测试先确认空闲画面不能提前改名,再写入task_complete并验证改名完成。原夹具仅有提交历史、缺少结束事件,会在新增门禁下确定性超时;不放宽生产门禁或延长超时。验证
修复前新增用例出现 5 项预期失败:3 种终止方式下均在真正终止前释放身份,2 种来源回合缺失状态均错误返回 200。修复后:
dispatch-user-route、dispatch-user-delegation、structured-bridge-clis、traex-transcript、worker-structured-lifecycle-status、traex-worker-bridge-wiring、daemon-topic-source,7 文件 245 项通过。traex-terminal-pty-desync.repro.integration、worker-restart-policy-capability,6 项通过(包括 tmux、重启/崩溃及能力撤销)。bun test test/dispatch-user-route.test.ts,26 项通过。bun run build、bun run workflow-core:test、git diff --check通过。CI 失败修复提交
f450587f60f246367246855dde9a0c8b1b042700的补充验证:worker-ordinary-im-init-concurrency.integration.test.ts全部 7 项通过。bun run build、git diff --check通过;新提交的 完整 GitHub CI 已全部通过,包括原失败的test (1/3)和bun-test;网络边界检查 同样通过。回归用例使用生产
markPromptReady、生命周期门禁、TRAE parser、pending queue 和 dispatch handler;平台网络/发送以测试替身替换。所有执行均在隔离目录,没有重启共享 daemon。证据限制: 该缺陷已在本地复现并修复。线上故障记录能确认任务已发出但无身份委托,以及当时模型回合尚未完成;没有保留派发瞬间的内存快照,因此不能把这次历史故障唯一归因于该空闲分支。提交
f450587f60f246367246855dde9a0c8b1b042700已完成开发机隔离部署与真实双 Bot 完整链路验收,用户已确认飞书最终回复;验收记录及竞态验证边界见补充评论。该验收未向真实 TRAE 确定性注入 idle 竞态,也不代表共享/生产机器人已部署或线上已恢复。