Files
pikasTech-unidesk/docs/MDTODO/details/artificer-runtime-capabilities/R6.5_Task_Report.md
T
Codex e383485d66
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Failed
Pipelines as Code CI / platform-infra-gitea-nc01- Success
Pipelines as Code CI / unidesk-host- Success
docs: 记录 Artificer 会话身份修复
2026-07-13 10:38:58 +02:00

3.2 KiB
Raw Blame History

R6.5 阶段报告

结论

R6.5 的根因修复已在 UniDesk 与 AgentRun v0.2 两端完成、验证、提交并创建 PR。两个 PR 尚未合并或部署,且原 selfmedia session 已出现后续 active run,本轮没有扰动真实业务 session,因此 R6.5 保持进行中,等待上线后 canary。

现场证据与根因

  • 原任务:qt_a72bf757ee5545819adbc62742443e92,状态为 cancelled。
  • 原 sessionsess_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-deniedmanager 策略不是根因,不应放宽。
  • 调查期间原 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
  • UniDesk
  • 两个 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。