3.2 KiB
3.2 KiB
R6.5 阶段报告
结论
R6.5 的根因修复已在 UniDesk 与 AgentRun v0.2 两端完成、验证、提交并创建 PR。两个 PR 尚未合并或部署,且原 selfmedia session 已出现后续 active run,本轮没有扰动真实业务 session,因此 R6.5 保持进行中,等待上线后 canary。
现场证据与根因
- 原任务:qt_a72bf757ee5545819adbc62742443e92,状态为 cancelled。
- 原 session:sess_artificer_24a02a0e763ebc781c9aca0d。
- durable session 的 tenantId 为 unidesk、projectId 为 pikainc/selfmedia。
- Aipod session send 路径在 render 前没有读取 durable session,只传入 sessionId。
- Artificer Aipod/YAML 因而使用默认 project,生成的 run 与 durable session 跨 project。
- AgentRun manager 的 assertSessionBoundary 随后正确返回 tenant-policy-denied;manager 策略不是根因,不应放宽。
- 调查期间原 session 已有新的 active run,因此只读取证据,没有执行 live send、cancel 或其他业务写入。
已实现设计
- UniDesk 兼容入口与 AgentRun v0.2 官方 CLI 使用同一语义:
- Aipod render 前读取 durable session;
- 已存在 session 的 tenantId、projectId 与 sessionRef 是唯一继承事实;
- conversationId、threadId、expiresAt 和 durable metadata 一并继承;
- 不存在的 session 继续走既有新会话流程。
- 用户显式传入的 tenant、project 或 sessionId 与 durable identity 冲突时,在 render/send 前以 tenant-policy-denied 拒绝。
- manager 的 assertSessionBoundary、session admission、租约和运行策略均未修改。
提交与 PR
- AgentRun v0.2:
- 分支:fix/r6-5-session-durable-identity;
- 提交:9762f2a;
- PR:pikasTech/agentrun#351。
- UniDesk:
- 分支:fix/r6-5-session-durable-identity;
- 提交:eb63823b;
- PR:pikasTech/unidesk#1921。
- 两个 PR 均保持 open,未合并、未部署。
验证
- UniDesk:
- bun test scripts/src/agentrun.test.ts;
- 22 tests、461 assertions 全部通过;
- 新增 cancelled durable session 自动继承,以及显式 project 冲突不进入 render/send 的回归;
- 同步最新 master 后已重新运行通过;
- git diff --check 通过。
- AgentRun v0.2:
- bun run self-test 76-aipod-spec 通过;
- 覆盖 cancelled session 实际创建同 session 新 turn、tenant/project/sessionRef 保持一致;
- 覆盖显式 project 冲突 fail closed 且 session lastRunId 不变;
- bun run self-test 66-session-turn-admission 通过;
- git diff --check 通过。
后续验收
- 先审查 AgentRun v0.2 PR #351,再审查 UniDesk PR #1921;两者没有运行时强依赖,但应保持同语义。
- 经主代理授权合并并等待受控自动 CI/CD 上线,本任务不自行合并或部署。
- 原 selfmedia session 无 active turn 后,从正式入口发送同 session Artificer continuation。
- 验证直接创建新 turn、tenantId=unidesk、projectId=pikainc/selfmedia、conversation/thread identity 延续,并且不再出现 tenant-policy-denied。
- 将 task、run、command、session 和部署 commitId 证据补充到本报告后,再关闭 R6.5。