fix(agent-teams): split inline member mentions - #549
fix(agent-teams): split inline member mentions#549openjiuwen-sync-bot[bot] wants to merge 1 commit into
Conversation
|
head_sha: 变更摘要该 PR 主要修复了 主要改动
|
|
head_sha: 代码审查Closing Summary已逐一审查 2 个变更文件:
发现统计:P0 0 个,P1 0 个,P2 2 个,P3 0 个。 整体风险判断:核心新增逻辑(内联 mention 拆分)在标准输入(单前导收件人 + 内联 @)下工作正常,但对混合输入存在静默丢收件人(消息丢失)的回归,以及内联广播 token 未按既有契约处理的一致性缺陷,建议合入前修复。
💬 仅评论 |
|
|
|
head_sha: 发送 $human-member @member-1 你来查询杭州今日天气 @member-2 你来查询上海今日天气和$human-member @member-1 @member-2 你来查询上海今日天气的的时候群聊展示如下member-2 avatar 📅 今日天气概况: 气温:25°C ~ 32°C member-2 avatar human-member avatar member-1 avatar 📅 今日天气概况: 气温:25°C ~ 29°C |
| if not first_body: | ||
| return None | ||
|
|
||
| segments: list[tuple[str, str]] = [(recipients[0], first_body)] |
There was a problem hiding this comment.
head_sha: a8b8d0cfbd25173f17587b5ae67a19a58adb8afc
🟡 Medium Priority
建议:将 first_body 扇出到所有前置收件人(保持多播语义),或在多前置收件人时退回旧路径。
| segments: list[tuple[str, str]] = [(recipients[0], first_body)] | |
| segments: list[tuple[str, str]] = [(name, first_body) for name in recipients] |
| fan-out path. | ||
| """ | ||
| if not recipients: | ||
| return None |
There was a problem hiding this comment.
head_sha: a8b8d0cfbd25173f17587b5ae67a19a58adb8afc
🟡 Medium Priority
新增函数 _split_inline_segments 的入口 guard(L100-101 if not recipients: return None)只排除了空 recipients 的情况,但 L111 segments = [(recipients[0], first_body)] 只取 recipients[0],其余前导收件人被直接丢弃。
触发条件:输入同时包含多个前导收件人与正文内联 @,例如 # @m1 @m2 ship @m3 docs。此时 recipients=["m1","m2"]、final_body="ship @m3 docs"、first_body="ship" 非空,函数返回 [("m1","ship"), ("m3","docs")],于是 m2 被静默丢弃,@m3 反而成为新收件人。
失败模式:用户点名 @m2 却收不到任何消息(静默消息丢失),且 @m3 被错误路由。这是一次行为回归——改动前该输入会向 m1、m2 各发一份 body="ship @m3 docs"。修复:内联拆分只在恰好一个前导收件人时有意义,len(recipients) != 1 时应返回 None,回退到旧的 multicast fan-out 路径。
建议:把空列表 guard 改为「恰好一个前导收件人」guard,使多前导收件人 + 内联 @ 的混合输入回退到 multicast fan-out,避免丢收件人。
| return None | |
| if len(recipients) != 1: | |
| return None |
Paired: GitHub #549 ↔ GitCode !2341
What type of PR is this?
/kind
Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入)