# AgentTeam 统一运行时 TODO

本文只列执行项。设计、门禁与回滚细节以
[`Unified AgentTeam Runtime Architecture`](../../specs/architecture/unified-agentteam-runtime.md)
为准。

## 一、开发

### 统一运行时发版（Stage 0–6）

- [ ] **统一 Agent 创建**：普通创建、复制、Role、运维及自动化入口统一创建 Cloud
  Memory；失败完整回滚，并用静态检查和测试禁止绕过。
- [ ] **统一数据库工具**：AgentTeam core、AGS、MeshX 各自提供初始化/校验能力；
  `agentteam-schema` 按 AgentTeam core → AGS → MeshX 编排三套 DSN，支持独立校验和幂等重试；
  普通服务不得自动迁移。
- [ ] **抽取 MeshX Runtime**：提供 Handler、就绪检查、worker 启停、静默和关闭能力；
  开发期用旧 standalone contract 验证行为等价，并覆盖重复启动等生命周期测试；新发版
  只保留 profile 驱动的进程内 composition。
- [ ] **迁移路由**：盘点 MeshX/AGS 路由并固化本次 supported inventory；workspace API
  与 MCP 使用可信 workspace 识别和错误 owner 拒绝，支持的 AGS REST/raw/Git 固定送
  designated owner 并保留 AGS 原生鉴权；Gateway 使用正向清单，不以 `/api/v3` 或
  `/api/ext/v1` 前缀兜底。split GraphQL、AGS management 与匿名 public-agent 注册明确
  deferred 并稳定返回 404，不为其引入 repo resolver 或多 owner 骨架；最终移除 Central
  forwarder 和 MeshX 依赖。
- [ ] **按 profile 固定拓扑**：`workspace` / `all` 必然内嵌 MeshX/AGS Handler，
  `central` 必然不初始化；删除 resident MeshX Base URL 和
  standalone fallback，并通过接口、鉴权、流式和错误语义测试。
- [ ] **隔离后台 worker**：按 workspace group 限制查询、领取和写入，加入 lease/fence、
  静默排空、过期 owner 拒写和双组隔离测试；任何仍需 singleton 的 worker 都阻断发版。
- [ ] **补齐部署与监控**：覆盖本地 `all`、私有化 combined/split、SaaS workspace group；
  补齐就绪检查、低基数指标和整版本逆序回滚配置。
- [ ] **原子退役旧 resident**：删除 `meshx-server` binary/image、Dockerfile、
  Deployment/Service、standalone compose/端口、服务发现、Central forwarder、旧
  upstream、兼容 adapter、dev 双进程编排与 resident release packaging。
- [ ] 删除旧 migrate/backfill 实现与引用；保留 `agentteam-schema` 的三域迁移和校验能力。
- [ ] 删除退役 worker 的 queue、lease、告警和就绪依赖，确保 singleton 数量为 0。
- [ ] 清理旧 Ops/readiness 入口、环境变量、文档、告警、dashboard、release job、
  runbook 和安全策略。
- [ ] **固化回滚包**：保留不可变的旧 AgentTeam/MeshX images、旧 manifests、路由/worker
  配置和恢复说明；验证当前 schema/仓库格式可由旧版本读取，否则明确恢复一致数据快照。

### 后续 MeshX 模块收敛（必须在 Stage 0–6 完成并验证后）

此项是统一运行时稳定后的独立结构迁移，不与 resident 合并、worker ownership 或生产
切换混在同一变更中。前置门禁是 unified bundle、三种 profile、schema tool、真实
source-mirror、release build/activate 和整版本回滚验证全部通过。

- [x] **统一 Go module 与依赖图**：仓库只保留根 module 与单一依赖版本，不保留嵌套
  module、自依赖、替换规则或第二套依赖图。
- [x] 增加并收敛依赖 guardrail：共享基础包不得反向依赖 runtime 或 resource-server
  composition；API、service、store、database 与 worker 代码直接依赖各自 canonical
  owner，不通过兼容 facade。
- [x] **收敛源码 owner**：runtime、resource server 与各域实现位于根模块下的 canonical
  `internal/**` owner；Docker/build context、release/dev watcher、测试发现、guardrail/
  baseline、生成清单和 canonical docs 均使用 canonical 路径，不保留 alias module、
  过渡 namespace 或兼容 shim。
- [ ] 每一步独立通过根模块全量构建/测试、MeshX 定向测试、profile/lifecycle、真实
  production Runtime mirror、三域 schema init/verify、release build/activate、import
  boundary 和旧路径 residue scan；结构回滚只回退源码，不恢复 standalone topology。

## 二、上线

SaaS 使用一次维护窗口完成全量切换；具体 GitOps/K8s 操作以
`agentteam-saas-delivery/docs/unified-runtime-maintenance-cutover.md` 为准。

- [ ] **Staging 验证**：以最终镜像和 delivery manifests 验证三域 schema、Cloud Memory、
  全路由 identity、错误 owner、unified Runtime、worker fencing，以及用旧 release bundle
  完成完整回滚；新镜像中不得存在 standalone 运行模式。
- [ ] **进入维护**：关闭公网及内部写入口，排空 HTTP/WebSocket/daemon/Git 请求，并静默
  所有 AgentTeam/MeshX/AGS 后台 writer；确认无 in-flight job、持续写入和双 owner。
- [ ] **数据门禁**：在全 writer 静默后生成三套现有数据库与 MeshX NAS 的最终一致恢复点；
  再执行 verify、必要的幂等 migration 和 Cloud Memory backfill，最终 `wouldEnable=0`。
- [ ] **一次切换**：通过 Argo CD 同步最终 Gateway、Central、Workspace unified runtime
  和路由 desired state；开流前 singleton 必须为 0。旧 topology 可在 GitOps 中保持
  scale-to-zero，但其 binary/image/manifest 属于旧 release，不复制进新发版。
- [ ] **离线验证**：开流前验证 Central/Workspace/Gateway readiness、placement、本次
  supported MeshX/AGS route inventory、deferred GraphQL/management/public-agent 注册的
  稳定拒绝、旧客户端、WebSocket/daemon、Git 和 worker ownership。
- [ ] **开放流量**：全部检查通过后一次性恢复公网入口；任一检查失败则先恢复并 ready 旧
  Central + standalone MeshX，再恢复旧 Gateway/Ingress 路由，最后开流。
- [ ] **稳定后清理**：回滚窗口结束后删除旧 GitOps revision / scale-to-zero 资源和临时
  数据恢复物；新发版中的 standalone 代码与构建物已在切换前删除，不留待二次清理。
