docs(pikaoa): close test runtime acceptance tasks

This commit is contained in:
Codex
2026-07-15 05:40:22 +02:00
parent ad8f953ab4
commit 4493e5d98a
7 changed files with 83 additions and 70 deletions
@@ -1,41 +1,29 @@
# R1.5.9.10 任务报告
## 状态
## 结论
- 当前状态:`in_progress`
- 关联 issue`pikasTech/unidesk#2092`
- 实现分支:`fix/pikaoa-observability`
- 本阶段仅完成源码、owning YAML、fixture 和定向验证;未执行任何运行面 mutation,未启动 Prometheus、Collector、Tempo PikaOA Pod
- 后续仍需主代理通过受控 observability apply 完成 NC01 trace/metrics 原入口验收后再决定完成状态
- UniDesk PR pikasTech/unidesk#2100 已合并,merge commit 为 35d3a6c1
- PikaOA 测试与生产 OTel endpoint 统一为无 scheme 的 gRPC 4317
- Prometheus selector label 从 platform-infra owning YAML configRef 解析并应用于 API/Worker Pod
- 受控 observability apply 后 Collector、Tempo Prometheus ready
- 新 API/Worker Pod 的旧 OTLP 地址 warning 数量为 0
- outbox handler_not_registered 保持非阻塞并登记到 pikainc/pikaoa#24
## 实现
- `config/pikaoa.yaml`
- 测试与生产 `otlpEndpoint` 统一为无 scheme 的 OTLP gRPC endpoint `otel-collector.platform-infra.svc.cluster.local:4317`
- 删除生产旧字段 `otlpHttpEndpoint`,不保留兼容入口;
- 测试 Prometheus 新增 `configRef`,指向 `config/platform-infra/observability.yaml#metricsBackend.discovery.labelSelector`
- `scripts/src/pikaoa-test-target.ts`
- 复用共享 `scripts/src/ops/config-refs.ts``resolveConfigRef`
- 校验 configRef、OTLP gRPC endpoint 及 Kubernetes label key/value
- 将 selector label 加入 API/Worker Pod templateWeb 不添加;
- 在 plan/status 投影 selector 的 `sourceRef``presence``fingerprint``valuesPrinted=false`
- selector 漂移与 OTel exporter 失败均保持 `blocking=false` warning,不阻塞业务 MVP。
- fixture 与测试:
- 更新 endpoint 与 selector configRef
- 增加非法 label fixture
- 覆盖 endpoint、API/Worker selector label、Web 无 selector、configRef 缺失、引用路径错误、非法 Kubernetes label、旧生产字段删除及 `valuesPrinted=false`
- 删除生产旧字段 otlpHttpEndpoint,不保留兼容入口。
- 测试 Prometheus configRef 指向 config/platform-infra/observability.yaml#metricsBackend.discovery.labelSelector。
- 复用共享 resolveConfigRef,投影 selector sourceRef、presence、fingerprint 与 valuesPrinted=false。
- API/Worker Pod template 增加 unidesk.ai/metrics=trueWeb 不增加
- selector 漂移和 exporter 失败均保持 blocking=false warning。
- 定向测试覆盖 gRPC endpoint、selector label、Web 排除、configRef 缺失/错误和旧字段删除。
- bun scripts/cli.ts check --syntax-only 与 git diff --check 通过。
## 验证
## 真实运行面证据
- `bun --check scripts/src/pikaoa-test-target.ts`:通过
- `bun test scripts/src/pikaoa-test-target-async.test.ts``2 pass, 0 fail`
- `bun scripts/cli.ts check --syntax-only``11 passed, 0 failed`
- `bun scripts/cli.ts pikaoa test-target plan ...` compact text:通过,`mutation=false``valuesPrinted=false`clean Artificer workspace 缺 fixture Secret 时仅显示既有非变更 blocker,不读取或打印 Secret,也不作为本任务运行面门禁
- `git diff --check`:通过
- `scripts/src/pikaoa-test-target.ts`1910 行,低于 2000 行
## 边界与后续
- 用户确认开发初期旧数据可丢;本任务不实现旧数据迁移、兼容或回滚,现有 migration 命名仅表示全新数据库初始化。
- Prometheus 当前未 apply/ready 不阻塞业务 MVP;后续由主代理按受控入口完成 apply、Tempo trace 和 Prometheus metrics 验收。
- 本报告回链 MDTODO `R1.5.9.10`,任务保持进行中。
- API 合同查询 trace 21cf522b075a4f89ca4f6e7e9e034ba0 在 Tempo 中找到 13 spans、0 error
- Worker service pikaoa-test-acceptance-worker 的 trace 可通过 TraceQL 检索
- Prometheusdatabase_ready=1、migration_ready=1
- Prometheuscontracts operations=1、invoice actions=2、worker runs=234
- HTTP request 与 identity login 指标均有数据
- API、Worker、Web 各 1 副本 ReadyPrometheus selector label 仅存在于 API/Worker
@@ -0,0 +1,9 @@
# R1.5.9.11 任务报告
## 结论
- 产品 PR pikainc/pikaoa#21 已合并,merge commit 为 d9d3de2。
- 合同 PL/pgSQL trigger function 已用 Goose StatementBegin/StatementEnd 包裹,避免语句拆分失败。
- NC01 运行的初始化镜像使用完整 commit d9d3de224d53498ed75c07c9a802e5b5bbf2463f。
- PK01 pikaoa_test 全新 schema 真实执行 00001 至 00007 成功,合同版本不可变 trigger 已创建。
- 不承担历史数据迁移;该 SQL 链仅作为当前开发阶段的全新数据库初始化器。
@@ -0,0 +1,10 @@
# R1.5.9.12 任务报告
## 结论
- 产品 PR pikainc/pikaoa#23 已合并,merge commit 为 266901f。
- Web 请求 ID helper 在可用时优先 crypto.randomUUIDHTTP 非安全上下文缺失该函数时使用 crypto.getRandomValues 生成 RFC 4122 UUIDv4。
- NC01 构建并推送 Web 镜像 266901fe621232403794c7187a1781ebc766ef7dregistry digest 为 sha256:98679772537e7602389211edfaf6e422614497025a262b1b74f5038dfe059133。
- 真实 HTTP hostIP 登录返回 200。
- Playwright 桌面 1920×1080 与移动 390×844 均通过伙伴、合同版本历史、发票废弃详情;横向溢出 falseconsole error 为 0。
- 截图证据位于 /root/.unidesk/.state/playwright-cli/pikaoa-live-266901/。
@@ -0,0 +1,8 @@
# R1.5.9.7 任务报告
## 结论
- 产品 PR pikainc/pikaoa#17 已合并,merge commit 为 70e34fe。
- 事件主版本不一致降级为具名 warning,不再阻塞 API/Worker 启动。
- NC01 pikaoa-test 的 API、Worker、Web 均已 Ready,合同、发票和审计 CLI 实测通过。
- 当前阶段不增加完整契约审计门禁;一致性问题继续保持非阻塞 warning。
@@ -0,0 +1,9 @@
# R1.5.9.8 任务报告
## 结论
- 产品 PR pikainc/pikaoa#19 已合并,merge commit 为 68342e3。
- Goose 版本表固定为 pikaoa.goose_db_version,业务表与版本表统一位于 pikaoa schema。
- 主代理明确断言连接身份为 pikaoa_test database/pikaoa_test role 后,仅清空测试 schema;生产 pikaoa database/role 未触碰。
- 全新测试库初始化完成,00001 至 00007 全部成功,Goose version=7。
- 用户确认开发初期旧数据可直接丢;本任务不实现旧数据迁移、兼容或回滚框架。
@@ -1,39 +1,28 @@
# R1.5.9.9 任务报告
## 状态
## 结论
- 当前状态:进行中
- 关联问题:`pikasTech/unidesk#2090`
- 待办:由主代理在真实 `pikaoa-test` 运行面复测后决定是否完成任务
- UniDesk PR pikasTech/unidesk#2096 已合并,merge commit 为 cfc7ffb
- 初始化 Job 由有界短轮询识别 Complete、Failed 与 FailureTarget;失败立即返回具名终态,不再等待 Complete 至超时
- NC01 pikaoa-test 真实全新库初始化以该 runner 完成,Job Complete 后 API/Worker/Web 单步启动成功
- 保留 submit-and-poll 与 Secret/DSN 脱敏;一致性检查仅 warning。
## 实现
- 将 migration runner 从单一 `kubectl wait --for=condition=complete` 改为有界短轮询
- `Complete=True` 时成功结束
- `FailureTarget=True` 时立即返回 `migration-job-failure-target`
- `Failed=True` 时立即返回 `migration-job-failed`
- Job 查询失败时返回 `migration-job-query-failed`
- condition JSON 无法解析时返回 `migration-job-condition-invalid`
- 超过总等待时间时返回 `migration-job-timeout`
- 每轮查询前检查取消请求,查询超时上限收紧为 5 秒,轮询间隔为 1 秒
- 保留异步 submit-and-poll、现有状态文件边界和 Secret/DSN 脱敏行为。
- Complete=True 时成功结束
- FailureTarget=True 时返回 migration-job-failure-target
- Failed=True 时返回 migration-job-failed
- Job 查询失败时返回 migration-job-query-failed。
- condition JSON 解析失败时返回 migration-job-condition-invalid
- 超过总等待时间时返回 migration-job-timeout
- 每轮查询前检查取消请求,单次查询超时上限为 5 秒,轮询间隔为 1 秒
- 失败终态保留有界日志,不读取或打印数据库 DSN
## Target 原入口证据
## 验证
- Target`NC01`
- targetWorkspace`/root/unidesk/.worktree/pikaoa-migration-job-terminal`
- 分支:`fix/pikaoa-migration-job-terminal`
- 基线提交:`47ca9a7cb218528c45fef0f88cb4e4bc51a5b805`
- `bun --check scripts/src/pikaoa-test-target.ts`:通过。
- `bun test scripts/src/pikaoa-test-target-async.test.ts`2 pass0 fail
- 定向测试覆盖 `Complete``Failed``FailureTarget` 和查询失败终态。
- `bun scripts/cli.ts check --syntax-only`11 pass0 fail。
- `git diff --check`:通过。
- `scripts/src/pikaoa-test-target.ts`1818 行,低于 2000 行。
- 未执行运行面 mutation,未删除或重建真实 Job。
## Primary Workspace 轻量准备
- 仅用于读取 runtime resource bundle 中的技能与 `trans` 工具说明。
- 未在 primary workspace 读取、修改或验证目标源码。
- 未将 runner 容器本地结果作为 Target 验证证据。
- bun --check scripts/src/pikaoa-test-target.ts:通过
- bun test scripts/src/pikaoa-test-target-async.test.ts2 pass0 fail
- 定向覆盖 Complete、Failed、FailureTarget、查询失败和取消路径
- bun scripts/cli.ts check --syntax-only11 pass0 fail
- git diff --check:通过。
- 真实初始化执行 00001 至 00007Goose version=7
+6 -6
View File
@@ -111,22 +111,22 @@
##### R1.5.9.6 [completed]
为产品仓库补齐 API、Worker、Web 的 commit-pinned OCI 构建输入,使 NC01 测试运行面和后续 PaC 可构建镜像,执行记录见 [pikainc/pikaoa#14](https://github.com/pikainc/pikaoa/issues/14),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.6_Task_Report.md)。
##### R1.5.9.7 [in_progress]
##### R1.5.9.7 [completed]
降级事件版本一致性校验并解除 MVP 启动阻塞(pikainc/pikaoa#16),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.7_Task_Report.md)。
##### R1.5.9.8 [in_progress]
##### R1.5.9.8 [completed]
修复 PikaOA 独立 schema 下 Goose 首次迁移 bootstrap,使版本表与业务表统一位于 pikaoa schema 并完成 NC01/PK01 真实 migration 验收(pikainc/pikaoa#18),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.8_Task_Report.md)。
##### R1.5.9.9 [in_progress]
##### R1.5.9.9 [completed]
修复 PikaOA 测试 migration Job 进入 Failed/FailureTarget 后异步 runner 仍等待 Complete 至超时的问题,使失败立即以具名终态投影并支持快速单步调试(pikasTech/unidesk#2090),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.9_Task_Report.md)。
##### R1.5.9.10 [in_progress]
##### R1.5.9.10 [completed]
修正 PikaOA 测试与生产 OTel gRPC endpoint 和 Prometheus selector label,并通过受控 observability apply 完成 NC01 trace/metrics 真实验收(pikasTech/unidesk#2092),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.10_Task_Report.md)。
##### R1.5.9.11 [in_progress]
##### R1.5.9.11 [completed]
修复合同迁移中 PL/pgSQL trigger function 的 Goose StatementBegin/StatementEnd 边界并完成 00001-00007 真实迁移验收(pikainc/pikaoa#20),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.11_Task_Report.md)。
##### R1.5.9.12 [in_progress]
##### R1.5.9.12 [completed]
修复 PikaOA HTTP hostIP 测试入口因 crypto.randomUUID 不可用导致 Web 登录失败的问题,并完成桌面与移动端真实入口验收(pikainc/pikaoa#22),完成任务后将详细报告写入[任务报告](./details/pikaoa-enterprise-platform/R1.5.9.12_Task_Report.md)。
##### R1.5.9.13 [in_progress]