# R2.13 任务报告

## 结果

PK01 Sub2API 已通过 YAML-first 受控入口从 `v0.1.155` 升级到 `v0.1.156`。仅修改 `config/platform-infra/sub2api.yaml` 中 `id: PK01` 的 `image.tag`；账号池 runtime、Codex pool、优先级、代理、外部哨兵、Sub2API 源码和其他服务均未变更。

## 执行证据

- 升级前 `status --target PK01`：`0.1.155`，容器 healthy。
- `plan --target PK01`：policy ok。
- `apply --target PK01 --dry-run`：目标镜像为 `docker.1panel.live/weishaw/sub2api:0.1.156`，dry-run ok。
- 首轮镜像预拉受 PK01 远端会话 60 秒上限中断；未绕过 CLI，改用受控 async job 续拉。job `platform_infra_sub2api_image_prepull_pk01_20260715160302343_10d058` 最终 succeeded。
- apply job `platform_infra_sub2api_apply_pk01_20260715160431915_4cf7e4` succeeded，PK01 exposure 子任务 succeeded。
- 升级后 `status --target PK01`：运行镜像 `docker.1panel.live/weishaw/sub2api:0.1.156`，容器 healthy。
- `validate --target PK01`：app、Redis、PostgreSQL、本地 health 与 PK01 Caddy 公网 health 全部通过。
- 公网 `https://api.pikapython.com/health` 返回 `{"status":"ok"}`。
- 复用既有默认 Codex 消费配置执行最小非流式 Responses smoke：request ID `a5e16029-724f-4eac-8ba1-d941511ed8a3`，HTTP 200，响应状态 `completed`。

## 边界与风险

- 未执行 `codex-pool plan|sync|validate`，避免覆盖手工 runtime 配置。
- 未修改 Sub2API 源码、版本之外的配置或外部哨兵。
- 镜像首次拉取超过 60 秒属于受控 CLI 长任务可见性限制；通过现有 async job 与 Docker 分层续拉完成，不影响最终升级和验收。
