docs: 记录 Artificer 会话身份修复
This commit is contained in:
@@ -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。
|
||||
Reference in New Issue
Block a user