diff --git a/docs/MDTODO/details/artificer-runtime-capabilities/R6.5_Task_Report.md b/docs/MDTODO/details/artificer-runtime-capabilities/R6.5_Task_Report.md new file mode 100644 index 00000000..178bfc78 --- /dev/null +++ b/docs/MDTODO/details/artificer-runtime-capabilities/R6.5_Task_Report.md @@ -0,0 +1,60 @@ +# 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](https://github.com/pikasTech/agentrun/pull/351)。 +- UniDesk: + - 分支:fix/r6-5-session-durable-identity; + - 提交:eb63823b; + - PR:[pikasTech/unidesk#1921](https://github.com/pikasTech/unidesk/pull/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。