JianFeeeee
86e05e7027
feat(dsh桥): withScope 在非邮件轮次回落到 /tmp 默认会话 —— 配套 15e4fe9 的收严
`reverseMap` 只在邮件投递时填 ⇒ 在 dsh 界面里直接对话时 `mailSessionOf(exec)` 为空
⇒ withScope「取不到就原样返回」⇒ 请求不带 session_id ⇒ 服务端 403
(AgentMayReadSession 收严后,2026-09-15 的迁移期放行已作废)。
不改的后果很具体:**在 dsh 界面里读不到任何信**。
回落答案只能向服务端问 —— dsh 侧给不出 session_id:
opencode 有宿主 session id 可反查(`sessionWorkspace`),pi 有 worker 闭包,
而 dsh 的 exec 里只有 dsh 自己的会话 id,与 AgentMail 会话 uuid 无映射。
这与 workspace 不同(workspace 能从目录/cwd 得到)。
装配期问一次(`loadDefaultSession`),不塞进 withScope:
withScope 是取值函数,IO 混进来就变成「拼 URL 时顺带发 HTTP」,
判据也无法用裸对象驱动(同 homeagent 那次的教训)。
问不到就当没有:不带 session_id → 服务端 403(可见的错误),
而不是静默放行成越权。
判据 4 格(接线形状 + 常量一致性 + 不得伪造 id + 失败要留日志)。
三个变异各红 3 格(判据之间交叉命中,说明它们各自都在钉不同的东西)。
tsc --noEmit 通过;桥全量 429/429 绿。
2026-10-02 01:12:35 +08:00
..
2026-09-30 17:30:27 +08:00
2026-10-02 01:12:35 +08:00
2026-10-02 01:12:35 +08:00
2026-09-14 08:38:33 +08:00
2026-09-02 20:05:51 +08:00
2026-09-12 11:36:03 +08:00
2026-09-11 10:47:30 +08:00