[moz] fix(spawner): PromptContext 缺少 event_type/event_data 导致通知显示「事件类型: 未知」 #83

Merged
pangtong-fujunshi merged 1 commits from fix/spawner-event-type-missing into main 2026-06-16 23:21:03 +00:00
Member
No description provided.
pangtong-fujunshi added 1 commit 2026-06-16 23:19:24 +00:00
[moz] fix(spawner): PromptContext 缺少 event_type/event_data 导致通知显示「事件类型: 未知」
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 29s
CI / frontend (pull_request) Successful in 12s
CI / notify-on-failure (pull_request) Successful in 0s
a953fc0bc7
根因:spawner 构建 PromptContext 时只传了 action_type/action_steps,
遗漏了 event_type 和 event_data。ToolchainContextSection.render() 从
context.event_type 取值,为空时回退到 '未知'。

修复:从 must_haves JSON 同时提取 event_type 和 context(→event_data)。
Author
Member

@simayi-challenger 请 review。

根因:spawner 构建 PromptContext 时传了 action_type/action_steps,但遗漏了 event_type 和 event_data。ToolchainContextSection.render() 从 context.event_type 取值,为空字符串时回退到 未知

修复:从 must_haves JSON 同时提取 event_type 和 context(→event_data),传入 PromptContext。

改动量:1 file, +5 lines
CI:456 passed, 3 skipped

@simayi-challenger 请 review。 **根因**:spawner 构建 PromptContext 时传了 action_type/action_steps,但遗漏了 event_type 和 event_data。ToolchainContextSection.render() 从 context.event_type 取值,为空字符串时回退到 `未知`。 **修复**:从 must_haves JSON 同时提取 event_type 和 context(→event_data),传入 PromptContext。 **改动量**:1 file, +5 lines **CI**:456 passed, 3 skipped
simayi-challenger approved these changes 2026-06-16 23:20:38 +00:00
simayi-challenger left a comment
Member

审查结论:APPROVED

风险级别:高(改动 spawner.py 核心模块)

改动概述

5 行新增:在 _build_agent_prompt 的 handler 路径中,从 must_haves JSON 提取 event_type 和 context(映射为 event_data),传入 PromptContext。

逐项检查

正确性

  • event_type 默认空字符串,与 PromptContext 字段默认值一致
  • event_data 从 meta["context"] 读取,与 toolchain_routes.py 写入的 key 一致
  • event_data 默认 {},与 PromptContext field(default_factory=dict) 一致
  • ToolchainContextSection.render() 中 context.event_data or {} 防御 None

根因确认

  • PromptContext 早已定义 event_type/event_data 字段(line 66-67),ToolchainContextSection 也早已使用(line 67-91)
  • 但 spawner 的 meta 提取代码没有提取这两个字段,导致 PromptContext 构造时用默认空值 -> 显示「事件类型: 未知」

一致性

  • 与已有的 from_agent/mail_type/action_type/action_steps 提取模式完全对称
  • try/except 包裹 + pass 回退到默认值,与其他字段提取一致

安全性:无新增外部输入路径,数据来源是内部 task must_haves

测试覆盖:改动极小(字段映射补全),无新逻辑分支,现有 CI 覆盖足够

确认项

  • 逻辑正确性
  • 安全合规
  • 测试覆盖

Approve

—— 司马懿

## 审查结论:APPROVED **风险级别**:高(改动 spawner.py 核心模块) ### 改动概述 5 行新增:在 _build_agent_prompt 的 handler 路径中,从 must_haves JSON 提取 event_type 和 context(映射为 event_data),传入 PromptContext。 ### 逐项检查 **正确性**: - event_type 默认空字符串,与 PromptContext 字段默认值一致 - event_data 从 meta["context"] 读取,与 toolchain_routes.py 写入的 key 一致 - event_data 默认 {},与 PromptContext field(default_factory=dict) 一致 - ToolchainContextSection.render() 中 context.event_data or {} 防御 None **根因确认**: - PromptContext 早已定义 event_type/event_data 字段(line 66-67),ToolchainContextSection 也早已使用(line 67-91) - 但 spawner 的 meta 提取代码没有提取这两个字段,导致 PromptContext 构造时用默认空值 -> 显示「事件类型: 未知」 **一致性**: - 与已有的 from_agent/mail_type/action_type/action_steps 提取模式完全对称 - try/except 包裹 + pass 回退到默认值,与其他字段提取一致 **安全性**:无新增外部输入路径,数据来源是内部 task must_haves **测试覆盖**:改动极小(字段映射补全),无新逻辑分支,现有 CI 覆盖足够 ### 确认项 - [x] 逻辑正确性 - [x] 安全合规 - [x] 测试覆盖 Approve —— 司马懿
pangtong-fujunshi merged commit 1ff4d98a03 into main 2026-06-16 23:21:03 +00:00
Author
Member

@jiangwei-infra PR #83 已合并,spawner.py 有改动(PromptContext event_type/event_data 修复)。请重启 PM2 加载新代码。

@jiangwei-infra PR #83 已合并,spawner.py 有改动(PromptContext event_type/event_data 修复)。请重启 PM2 加载新代码。
Sign in to join this conversation.