Preflight
Affected area
Providers / agent runners
What happened
P2 / medium · AUD-20260910-agent-006
第三方 /task stop 通过 ActiveEventRegistry.stop_all 设置 event.stop_event,但已经执行的非流式后台工作不检查停止标志,继续等待并消费第三方结果;dispatcher 仅跳过尚未开始的后续派送。真实 registry、scheduler、WorkLoop 和第三方响应处理器组合实验在停止后仍消费三段响应并记录 completed。独立反证确认:不能保证中断进行中的流式发送,也不能据此断言远端任务是否取消。
Minimal reproduction
启用 BTW/work loop 与第三方 Agent Runner,启动一个会持续返回数据的非流式 /work 任务;执行中发送 /task stop。确定性离线复现:真实 ActiveEventRegistry.stop_all 停止已登记的工作事件,然后让测试第三方 runner 继续返回三段 llm_result,由真实 ThirdPartyAgentSubStage 响应处理器和 WorkLoop 消费。
Expected: 停止请求应中断本地等待/消费、及时关闭执行器并记录 cancelled;远端撤销能力须另行明确,不应误称已撤销远端任务。
Actual: events_stopped=1,event_stopped=true,但之后三段响应全部被消费,最后 state=completed。
Impact: 已开始的第三方后台任务收到停止请求后本地执行仍持续,释放资源被延迟,终态也错误;远端撤销能力须单独核查。
Code evidence
Suggested acceptance criteria
Validation and limits
真实 registry、scheduler、WorkLoop 和第三方响应处理器;第三方远端为可控替身。未测试各服务的远端撤销 API,也不保证已经开始的流式发送会立即停止。
本次审计运行:首轮 BTW/入口/状态/能力路由相关测试 173 passed;Agent、工具、历史、配置与导入边界测试 327 passed;pipeline/WebChat/生命周期测试 108 passed;两套循环选择器测试 3 passed。另运行上述确定性组合探针,并完成独立只读反证。现有测试通过不代表已覆盖此缺陷。未改动产品代码。
已检索全部 61 条 Issue 与 89 条 PR(含关闭/合并状态,审计开始时快照),未发现本缺陷的重复报告。关联已完成的功能跟踪 #125、#126、#127,以及总跟踪 #122;自动分类器实验 #133–#135 不属于此缺陷。
Commit or version
037994ea4c8c289e4d5c8e7611a835ced93eeddd (master)
Environment
Linux,源码 checkout;Python 3.14.6;Node.js v26.8.1。后端探针使用内存/临时目录,不访问开发者数据或真实 IM、付费模型。
Author
Agent
Agent note
Codex 按用户授权结合代码审查与仓库 audit-product 技能报告此问题,并使用独立只读 AI agent 反证。目标是修复 BTW 工作循环的实际行为;涉及路径见上方证据,已运行检查与剩余限制如上。本 Issue 按 bug_report.yml 填写;本次只审计、建单,没有修改产品代码或声称修复已完成。
Preflight
masterbranch or the exact commit.Affected area
Providers / agent runners
What happened
P2 / medium · AUD-20260910-agent-006
第三方 /task stop 通过 ActiveEventRegistry.stop_all 设置 event.stop_event,但已经执行的非流式后台工作不检查停止标志,继续等待并消费第三方结果;dispatcher 仅跳过尚未开始的后续派送。真实 registry、scheduler、WorkLoop 和第三方响应处理器组合实验在停止后仍消费三段响应并记录 completed。独立反证确认:不能保证中断进行中的流式发送,也不能据此断言远端任务是否取消。
Minimal reproduction
启用 BTW/work loop 与第三方 Agent Runner,启动一个会持续返回数据的非流式 /work 任务;执行中发送 /task stop。确定性离线复现:真实 ActiveEventRegistry.stop_all 停止已登记的工作事件,然后让测试第三方 runner 继续返回三段 llm_result,由真实 ThirdPartyAgentSubStage 响应处理器和 WorkLoop 消费。
Expected: 停止请求应中断本地等待/消费、及时关闭执行器并记录 cancelled;远端撤销能力须另行明确,不应误称已撤销远端任务。
Actual: events_stopped=1,event_stopped=true,但之后三段响应全部被消费,最后 state=completed。
Impact: 已开始的第三方后台任务收到停止请求后本地执行仍持续,释放资源被延迟,终态也错误;远端撤销能力须单独核查。
Code evidence
Suggested acceptance criteria
Validation and limits
真实 registry、scheduler、WorkLoop 和第三方响应处理器;第三方远端为可控替身。未测试各服务的远端撤销 API,也不保证已经开始的流式发送会立即停止。
本次审计运行:首轮 BTW/入口/状态/能力路由相关测试 173 passed;Agent、工具、历史、配置与导入边界测试 327 passed;pipeline/WebChat/生命周期测试 108 passed;两套循环选择器测试 3 passed。另运行上述确定性组合探针,并完成独立只读反证。现有测试通过不代表已覆盖此缺陷。未改动产品代码。
已检索全部 61 条 Issue 与 89 条 PR(含关闭/合并状态,审计开始时快照),未发现本缺陷的重复报告。关联已完成的功能跟踪 #125、#126、#127,以及总跟踪 #122;自动分类器实验 #133–#135 不属于此缺陷。
Commit or version
037994ea4c8c289e4d5c8e7611a835ced93eeddd(master)Environment
Linux,源码 checkout;Python 3.14.6;Node.js v26.8.1。后端探针使用内存/临时目录,不访问开发者数据或真实 IM、付费模型。
Author
Agent
Agent note
Codex 按用户授权结合代码审查与仓库 audit-product 技能报告此问题,并使用独立只读 AI agent 反证。目标是修复 BTW 工作循环的实际行为;涉及路径见上方证据,已运行检查与剩余限制如上。本 Issue 按 bug_report.yml 填写;本次只审计、建单,没有修改产品代码或声称修复已完成。