JianFeeeee
caffe2f9fe
fix(dsh): agents.get() 返回 agent 本体,当 handle 用缺一层 .agent
## 症状(上一版修复后暴露的新错)
会话 mail-515c0c70… 已在运行,直接 followup(不重复 resume)
new_mail 处理失败: Cannot read properties of undefined (reading 'followup')
去重生效了(不再撞 flock),但下一步炸。
## 根因:两个来源返回的不是同一种东西
ctx.agents.get(id) → **agent 本体**(.followup / .session 直接在上面)
startAgent() → handle,agent 在 **handle.agent**
证据在同文件 findLiveDshSession(约 1059 行)——它自己也要包一层:
const live = ctx.agents.get(bound.dshSessionId);
if (live) return { id: bound.dshSessionId, agent: live };
而去重那段把 `get()` 的返回值**直接赋给 handle** ⇒ `handle.agent` 是 undefined
⇒ 一取 followup 就炸。
⇒ 两条路径拿的是同一个对象,只是用法不同:一个包了一层、一个没包。
## 修法
`handle = { agent: alreadyLive }`。
## 判据(+2 格)
钉「从 `agents.get()` 取到的东西,必须包成 `{ agent: … }` 才能当 handle 用」。
★ 写这格时又被自己的两个假设绊住:
1. 先写的是「看 `handle = …` 那一行有没有 `agents.get`」——
实际代码是**两步**(先绑变量 `alreadyLive`,再 `handle = { agent: alreadyLive }`),
赋值式里根本没有 `get(` 字样 ⇒ 判据报「应至少有一处…」而自己红了。
改成**追变量来源**。
2. 追来源时正则先匹配到接管路径的 `live`(它的用法本来就对),
于是抓不到新加的那处 ⇒ 收紧成只匹配**双可选链** `?.get?.(` 那一处。
dsh 444 格全绿 · tsc 零错 · 部署成功(current → 20261004-094533)· 心跳正常。
变异:去掉 `{ agent }` 包装 → 红 2 格。
2026-10-04 12:03:58 +08:00
..
2026-09-03 12:09:12 +08:00
2026-09-04 11:14:44 +08:00
2026-09-12 11:20:13 +08:00
2026-09-06 15:18:06 +08:00
2026-09-14 16:21:27 +08:00
2026-10-02 01:12:35 +08:00
2026-09-26 09:18:39 +08:00
2026-09-06 15:18:06 +08:00
2026-09-03 12:09:12 +08:00
2026-09-28 09:29:26 +08:00
2026-09-13 10:39:26 +08:00
2026-09-26 07:44:33 +08:00
2026-09-11 12:03:51 +08:00
2026-10-04 08:04:10 +08:00
2026-09-28 09:40:15 +08:00
2026-09-14 16:21:27 +08:00
2026-09-12 23:13:48 +08:00
2026-09-03 21:10:48 +08:00
2026-09-14 16:21:27 +08:00
2026-09-26 09:18:39 +08:00
2026-09-25 04:45:44 +08:00
2026-09-14 23:18:12 +08:00
2026-09-11 22:28:47 +08:00
2026-09-12 23:13:48 +08:00
2026-09-30 17:30:27 +08:00
2026-09-08 19:16:35 +08:00
2026-10-04 12:03:58 +08:00
2026-09-03 12:09:12 +08:00
2026-09-11 12:03:51 +08:00
2026-09-11 22:12:01 +08:00
2026-09-04 21:39:50 +08:00
2026-09-11 10:44:18 +08:00
2026-09-28 09:26:15 +08:00
2026-09-02 20:28:19 +08:00