diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.10_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.10_Task_Report.md index a0ada990..c163e5ff 100644 --- a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.10_Task_Report.md +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.10_Task_Report.md @@ -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 template,Web 不添加; - - 在 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=true;Web 不增加。 +- 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 检索。 +- Prometheus:database_ready=1、migration_ready=1。 +- Prometheus:contracts operations=1、invoice actions=2、worker runs=234。 +- HTTP request 与 identity login 指标均有数据。 +- API、Worker、Web 各 1 副本 Ready;Prometheus selector label 仅存在于 API/Worker。 diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.11_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.11_Task_Report.md new file mode 100644 index 00000000..6f9d3058 --- /dev/null +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.11_Task_Report.md @@ -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 链仅作为当前开发阶段的全新数据库初始化器。 diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.12_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.12_Task_Report.md new file mode 100644 index 00000000..0028b6a6 --- /dev/null +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.12_Task_Report.md @@ -0,0 +1,10 @@ +# R1.5.9.12 任务报告 + +## 结论 + +- 产品 PR pikainc/pikaoa#23 已合并,merge commit 为 266901f。 +- Web 请求 ID helper 在可用时优先 crypto.randomUUID;HTTP 非安全上下文缺失该函数时使用 crypto.getRandomValues 生成 RFC 4122 UUIDv4。 +- NC01 构建并推送 Web 镜像 266901fe621232403794c7187a1781ebc766ef7d,registry digest 为 sha256:98679772537e7602389211edfaf6e422614497025a262b1b74f5038dfe059133。 +- 真实 HTTP hostIP 登录返回 200。 +- Playwright 桌面 1920×1080 与移动 390×844 均通过伙伴、合同版本历史、发票废弃详情;横向溢出 false,console error 为 0。 +- 截图证据位于 /root/.unidesk/.state/playwright-cli/pikaoa-live-266901/。 diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.7_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.7_Task_Report.md new file mode 100644 index 00000000..66ef97ad --- /dev/null +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.7_Task_Report.md @@ -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。 diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.8_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.8_Task_Report.md new file mode 100644 index 00000000..ff47c402 --- /dev/null +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.8_Task_Report.md @@ -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。 +- 用户确认开发初期旧数据可直接丢;本任务不实现旧数据迁移、兼容或回滚框架。 diff --git a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.9_Task_Report.md b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.9_Task_Report.md index b081a8ba..9ffb2d7f 100644 --- a/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.9_Task_Report.md +++ b/docs/MDTODO/details/pikaoa-enterprise-platform/R1.5.9.9_Task_Report.md @@ -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 pass,0 fail。 -- 定向测试覆盖 `Complete`、`Failed`、`FailureTarget` 和查询失败终态。 -- `bun scripts/cli.ts check --syntax-only`:11 pass,0 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.ts:2 pass,0 fail。 +- 定向覆盖 Complete、Failed、FailureTarget、查询失败和取消路径。 +- bun scripts/cli.ts check --syntax-only:11 pass,0 fail。 +- git diff --check:通过。 +- 真实初始化执行 00001 至 00007,Goose version=7。 diff --git a/docs/MDTODO/pikaoa-enterprise-platform.md b/docs/MDTODO/pikaoa-enterprise-platform.md index 98747a05..662ed57b 100644 --- a/docs/MDTODO/pikaoa-enterprise-platform.md +++ b/docs/MDTODO/pikaoa-enterprise-platform.md @@ -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]