docs: 改为 Monitor 空库切换
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / platform-infra-gitea-nc01- Success
Pipelines as Code CI / unidesk-host- Success

This commit is contained in:
Codex
2026-07-13 07:16:51 +02:00
parent a83fd9d0af
commit 48aa08bf73
2 changed files with 30 additions and 6 deletions
@@ -0,0 +1,24 @@
# R2.4.1 任务报告
## 结论
[UniDesk #1888](https://github.com/pikasTech/unidesk/issues/1888) 的 migration Job failure envelope 可见性已修复并通过真实运行验收。实现由 [PR #1897](https://github.com/pikasTech/unidesk/pull/1897) 合并,merge commit `2f4522db`;后续自动发布 source `2fdadce835b8` 已包含该修复。
## 根因与修复
- `sentinelPayloadFromLogs` 在返回 nested `data` 时丢失外层 `command`
- JSON 扫描器把 pretty envelope 内嵌 `data` 误当作最后完整对象。
- 修复后保留顶层 envelope,并继承外层 command;默认 failure 投影返回失败 container、phase、exitCode、语义化 code/message 与日志下钻,保持脱敏。
- 37 个定向测试通过。
## 真实 Job 验收
Job `hwlab-web-probe-monitor-migration-2fdadce835b8-mrirnjg7` 的 import 失败被直接投影为:
- `container=import`
- `phase=Failed`
- `exitCode=1`
- `code=payload_hash_conflict`
- `message=ingest identity already has a different terminal envelope`
不再返回 result-missing,也没有依赖临时 dump。用户随后明确放弃 SQLite 历史迁移,因此该冲突不再继续修复或作为 Release B 门禁。
@@ -42,26 +42,26 @@ PR 合并后只等待自动发布链,使用受控 Web sentinel 原入口产生
### R2.4 [in_progress]
按 [#1868](https://github.com/pikasTech/unidesk/issues/1868) 已冻结规格推进实施:先并行完成 [#1875](https://github.com/pikasTech/unidesk/issues/1875) Host PG 前置和 [#1874](https://github.com/pikasTech/unidesk/issues/1874) 中心 service(实际实现由其子任务 [#1876](https://github.com/pikasTech/unidesk/issues/1876) 跟踪);前置合并后完成 [#1872](https://github.com/pikasTech/unidesk/issues/1872) runner ingest/迁移工具;最后完成 [#1873](https://github.com/pikasTech/unidesk/issues/1873) 数据迁移、中心 API/UI/CLI 原子切换、自动 CI/CD 与原入口验收,并退役旧 SQLite/runner dashboard,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.4_Task_Report.md)。
按 [#1868](https://github.com/pikasTech/unidesk/issues/1868) 已冻结规格推进实施:Host PG、中心 service、runner ingest 与新 Monitor 工作台基础均已完成;按 [#1873 最新决策](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4954659225) 不迁移 SQLite 历史数据,最后完成 Monitor 专属 PG 空库验证、Release B 中心 API/UI/CLI 原子切换、自动 CI/CD 与原入口验收,并退役旧 SQLite/runner dashboard,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.4_Task_Report.md)。
#### R2.4.1 [in_progress]
#### R2.4.1 [completed]
修复 [#1873](https://github.com/pikasTech/unidesk/issues/1873) 与 [#1888](https://github.com/pikasTech/unidesk/issues/1888) 的 one-shot migration Job 失败可见性:正确解包外层 command 与 nested data.error,默认有界返回失败 container、phase、exit、语义化 code/message 和日志下钻,不输出 Secret、不依赖临时 dump,也不改变迁移执行语义,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.4.1_Task_Report.md)。
### R2.5 [in_progress]
按 [#1873 运行面证据](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4953413607) 处理迁移前已不可恢复的 2 runs/5 artifacts:以 owning YAML 精确列出 runId、stateDir、artifactCount 与 report SHA,导入结构化事实并写入 `legacy-artifact-bytes-missing-before-migration` timeline/finding,不制造 locator或声称已验证 bytes;任何未列明缺口继续 fail closed,完成 PG verify、Release B 原子切换和旧 SQLite/dashboard 退役后关闭,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5_Task_Report.md)。
按 [#1873 用户最新决策](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4954659225) 放弃全部 SQLite 历史数据迁移,以空 Monitor Host PG 从新数据开始;先清空并验证 Monitor 专属数据库/schema,再完成 Release B 原子切换SQLite、legacy gap 与 migration 不进入运行路径,不双写、不回读、不补洞,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5_Task_Report.md)。
#### R2.5.1 [in_progress]
按 [#1873 证据](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4953413607) 在 owning YAML 精确声明仅有的 2 runs/5 artifacts 历史缺口;export/import/verify 导入结构化事实和 missing-before-migration finding,不制造 locator,任何未声明缺口继续 fail closed,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5.1_Task_Report.md)。
按 [#1873 最新决策](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4954659225) 冻结空库切换边界:取消 legacy gap、SQLite export/import/verify 和 payload conflict 作为门禁,确认只清空 Monitor 自有 Host PG database/schema,不影响共享 Host PG 其他服务,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5.1_Task_Report.md)。
#### R2.5.2
Release A 自动上线后通过受控 one-shot Job 完成 freeze/snapshot/import/PG verify,核对完整 run/finding/metadata/payload/latest identity 与精确历史缺口,并把真实运行证据写回 [#1873](https://github.com/pikasTech/unidesk/issues/1873),完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5.2_Task_Report.md)。
通过 YAML-first 受控入口按 [#1873 最新决策](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4954659225) 清空或重建 Monitor 专属 Host PG database/schema,验收 schema ready、业务数据 0 行且不读取 SQLite,再允许 Release B,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5.2_Task_Report.md)。
#### R2.5.3
迁移验证通过后实施 [#1873](https://github.com/pikasTech/unidesk/issues/1873) Release B 原子切换,并与 R2.6 / [#1887](https://github.com/pikasTech/unidesk/issues/1887) 的 Monitor 前端重写同步收口:中心 service 成为唯一 writer/query authorityWeb/CLI/scheduler 只读中心 API,删除旧 SQLite/query/dashboard/fallback 与旧页面只观察自动 CI/CD并完成 CLI、Monitor Web 原入口验收,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5.3_Task_Report.md)。
空 Host PG 验证通过后实施 [#1873](https://github.com/pikasTech/unidesk/issues/1873) Release B,并与 R2.6 / [#1887](https://github.com/pikasTech/unidesk/issues/1887) 的 Monitor 前端重写同步收口:中心 service 成为唯一 writer/query authority新数据从切换后开始;删除或屏蔽旧 SQLite/query/dashboard/fallback 与旧页面只观察自动 CI/CD 并完成 CLI、Monitor Web 原入口验收,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.5.3_Task_Report.md)。
### R2.6 [in_progress]