JianFeeeee
6e5ea42138
fix(agent): 会话作用域拒绝时说明 session_id 从哪来 —— 独立 MCP 宿主的实测卡点
## 触发它的实测
跑「独立 MCP 宿主 E2E」时,第一版客户端卡在这里:
它收到了 new_mail 事件、**知道该读那封信**,却不知道该传什么 session_id,
于是一封信都读不到,报的是「这封信不在你当前所在的那条会话里」。
## 原文案缺的那半句
原文案说「要读它,就在它那条会话里读」—— 只说了**去哪读**,
没说**怎么去读**(id 从哪来)。缺的那句正是接入端唯一缺的信息。
实测依据:new_mail 事件的 payload 有 16 个键,含
`session_id` / `session_alias` / `mail_id`;桥侧另有
`GET /api/v1/agent/session/default` 可查默认会话。
## 安全边界未动
★ 只报**调用方自己所在的会话**(`self`),绝不把目标会话 id 拼进文案 ——
那是 2026-09-15 用户订正过的语义(原文案刻意不提目标会话,避免泄露别人的会话)。
判据第③条专门盯这一点。
## 判据自己踩了两个坑(与「变异必须确认真的应用」同族)
1. **变异一度删掉了 490 行** —— 循环没写终止条件,从提示那行一路删到文件末尾。
备份救回(608 行完好)。
2. **判据窗口取太宽导致假绿** —— 初版按「文案起点 + 2200 字符」截取,而
**同一文件别处的文档注释**里也写了 `/agent/session/default`(agentScope 上方的说明)
⇒ 删掉提示后窗口里仍有它 ⇒ 判据绿。
修法:按**单条 Error(...) 调用**取段,不按固定窗口。
★ 这两个坑的共同教训:**「变异应用了」≠「判据看到了正确的范围」**。
变异一次"没生效"(我以为代码没问题)、一次"生效了但判据看错范围"(我以为判据有效)
—— 两种都表现为 0 红。
**「0 红」的第一反应必须是「变异或判据有一方错了」。**
14 包全绿。
2026-10-04 18:57:18 +08:00
..
2026-09-08 19:16:35 +08:00
2026-09-14 08:32:22 +08:00
2026-10-04 12:03:58 +08:00
2026-10-04 18:57:18 +08:00
2026-09-08 19:16:35 +08:00
2026-10-04 17:08:15 +08:00
2026-09-26 07:44:33 +08:00
2026-09-14 15:49:45 +08:00
2026-09-30 17:30:27 +08:00
2026-09-28 09:50:24 +08:00
2026-10-04 17:08:15 +08:00
2026-09-08 19:16:35 +08:00
2026-10-02 15:37:34 +08:00
2026-09-14 11:07:03 +08:00