# R1.6.1.3 任务报告

## 任务回链

- MDTODO：`R1.6.1.3`。
- GitHub：`pikasTech/unidesk#2129`、`pikasTech/unidesk#2110`。
- Target：`NC01`。
- 交付边界：本任务只完成生产 release 控制面、只读计划与定向测试，不执行生产 mutation。

## 已完成

- `config/pikaoa.yaml#releaseRuntime.targets.NC01` 成为生产运行面唯一 owning selector：
  - namespace、单副本、resources、附件 PVC、Service、OTel、Prometheus、release source、fresh initializer policy 均由 YAML 声明；
  - Secret 继续引用既有受控 distribution 与 PK01 PostgreSQL export，不打印值；
  - 公网 hostname、FRP port、Caddy/TLS 事实保留在同一生产 delivery 声明。
- `config/platform-infra/pipelines-as-code.yaml` 新增独立 `pikaoa-nc01` Repository/consumer：
  - 只跟随 `release` 与 `refs/unidesk/snapshots/gitea-actions/pikaoa-release-nc01`；
  - 与 `pikaoa-test-nc01/master` 的 Secret、PipelineRun、GitOps branch、Argo application 完全隔离；
  - production sourceArtifact 使用 `pikaoa-release-runtime` renderer 生成 `.tekton/pikaoa-nc01-pac.yaml`。
- test/release 共用 renderer 已修复真实 PaC 缺陷：
  - TaskSpec workspace 声明 `mountPath: /workspace`，step 不再手工挂载 workspace，token Secret mounts 保留；
  - BuildKit metadata 解析允许 JSON 冒号两侧空白，只接受 `containerimage.digest` 的完整 `sha256:<64hex>`；
  - metadata 不可读时使用本地 registry manifest `Docker-Content-Digest` 受控兜底。
- Gitea mirror webhook status 只解析选中 repository 的 credential 与 topology：
  - `--repo pikaoa-nc01` 不再读取未选 `pikaoa-test-nc01` token；
  - 现场状态显示 release commit `07a9a9db3cad` 已 committed。

## 验证证据

- `bun test scripts/src/pikaoa-test-delivery-renderer.test.ts scripts/src/platform-infra-gitea-config.test.ts scripts/src/platform-infra-pipelines-as-code-bootstrap.test.ts`：`24 pass / 0 fail`。
- `platform-infra pipelines-as-code plan --target NC01 --consumer pikaoa-nc01`：识别独立 production Repository、consumer、Tekton 与 Argo 路径。
- `platform-infra gitea mirror webhook status --target NC01 --repo pikaoa-nc01`：`READY=true`，release head、Gitea 与 snapshot 均为 `07a9a9db3cad`。
- source-artifact `plan/check`：desired hash 已生成；产品 `.tekton/pikaoa-nc01-pac.yaml` 尚未写入，符合本任务禁止直接编辑固定产品主 worktree 的边界。

## 主代理后续命令

在 `/root/pikaoa` clean worktree 审核并写入产品 release artifact：

```bash
bun scripts/cli.ts platform-infra pipelines-as-code source-artifact plan --target NC01 --consumer pikaoa-nc01 --source-worktree /root/pikaoa
bun scripts/cli.ts platform-infra pipelines-as-code source-artifact write --target NC01 --consumer pikaoa-nc01 --source-worktree /root/pikaoa --confirm
bun scripts/cli.ts platform-infra pipelines-as-code source-artifact check --target NC01 --consumer pikaoa-nc01 --source-worktree /root/pikaoa
```

产品 artifact 提交、正常 release PR merge 后，由主代理执行只读 bootstrap 计划并按正常入口触发交付：

```bash
bun scripts/cli.ts platform-infra gitea mirror webhook status --target NC01 --repo pikaoa-nc01
bun scripts/cli.ts platform-infra pipelines-as-code plan --target NC01 --consumer pikaoa-nc01
bun scripts/cli.ts platform-infra pipelines-as-code status --target NC01 --consumer pikaoa-nc01
```

交付完成后再按原入口验收 `pikaoa` namespace、initializer、API/Worker/Web、附件 PVC、OTel/Prometheus 与 `https://oa.pikapython.com`；不得人工创建 PipelineRun、Argo refresh 或生产 namespace mutation。
