Files
pikasTech-unidesk/docs/MDTODO/web-sentinel-runtime-reliability.md
T
Codex ec3c645f9a
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
docs: track monitor frontend rewrite
2026-07-13 04:59:33 +02:00

8.7 KiB
Raw Blame History

Monitor / Web 哨兵运行时与持久化

  • 范围:Monitor / Web Sentinel 的需求与架构、调度、runner 执行、observe/analyze 终态、报告产物、统一持久化、查询 API、monitor-web 与运行时可靠性。
  • 权威路径:遵循 YAML-first;每个阶段只保留一个调度权威和一个持久化/查询权威,不建立旁路 scheduler、永久双写、fallback store 或补洞入口。

R1 [in_progress]

解决 UniDesk #1861:修复 NC01/v03 Web 哨兵控制面与 cadence 正常但 latest 报告长期不更新的问题,只修既有调度→observe/analyze→产物→SQLite/index→latest 路径,不扩展次生问题,完成任务后将详细报告写入任务报告

R1.1 [in_progress]

单步定位 #1861 中新 run 未进入 latest 的唯一断点,区分调度、终态、产物、索引和查询层,完成任务后将详细报告写入任务报告

R1.2

#1861 边界内实现最小修复和定向测试,由 Artificer 创建独立 PR,不新增旁路或补洞,完成任务后将详细报告写入任务报告

R1.3

PR 合并后只等待自动发布链,使用受控 Web sentinel 原入口产生新 run,并验收 latest 返回新鲜非空 run.id/status/updatedAt,完成任务后将详细报告写入任务报告

R1.4 [in_progress]

核对 #1861 的小时级实际探测 cadence 与 10 分钟 scheduler heartbeat/扫描间隔;若只读报告语义误导则纠正字段和文档,若 owning YAML 未生效则修正渲染,验收 CronJob 与报告明确区分二者,完成任务后将详细报告写入任务报告

R2 [in_progress]

推进 UniDesk #1868:按当前多 runner、全局查询与 Dashboard 复杂度重构 Monitor 平台,评估并实施分散 SQLite 到 NC01 YAML-first Host PostgreSQL 的统一迁移;P0 先冻结架构、数据模型和切换边界,再实现、自动发布和原入口验收,不以迁移掩盖 #1861,不保留永久双写或第二权威,完成任务后将详细报告写入任务报告

R2.1 [completed]

完成 #1869 的需求演进、组件职责与复杂度失效边界审计,形成目标架构 must/should/out-of-scope 和候选方案,完成任务后将详细报告写入任务报告

R2.2 [completed]

完成 #1871 的 SQLite 实例、schema、数据规模与生命周期盘点,设计 NC01 Host PG schema、YAML role/database/export、一次性迁移、校验、切换和回滚,完成任务后将详细报告写入任务报告

R2.3 [completed]

完成 #1870 的 service/scheduler/runner API/monitor-web 调用链审计,冻结中心 Monitor 服务拆分、唯一写入/查询权威和故障隔离边界,完成任务后将详细报告写入任务报告

R2.4 [in_progress]

#1868 已冻结规格推进实施:先并行完成 #1875 Host PG 前置和 #1874 中心 service(实际实现由其子任务 #1876 跟踪);前置合并后完成 #1872 runner ingest/迁移工具;最后完成 #1873 数据迁移、中心 API/UI/CLI 原子切换、自动 CI/CD 与原入口验收,并退役旧 SQLite/runner dashboard,完成任务后将详细报告写入任务报告

R2.4.1 [in_progress]

修复 #1873 one-shot migration Job 失败时 CLI 只返回 phase=failed/result={} 的可见性缺口:默认有界返回失败 container、phase、exit、语义化 message 和日志摘要/下钻,不输出 Secret、不依赖临时 dump,也不改变迁移执行语义,完成任务后将详细报告写入任务报告

R2.5 [in_progress]

#1873 运行面证据 处理迁移前已不可恢复的 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 退役后关闭,完成任务后将详细报告写入任务报告

R2.5.1 [in_progress]

#1873 证据 在 owning YAML 精确声明仅有的 2 runs/5 artifacts 历史缺口;export/import/verify 导入结构化事实和 missing-before-migration finding,不制造 locator,任何未声明缺口继续 fail closed,完成任务后将详细报告写入任务报告

R2.5.2

Release A 自动上线后通过受控 one-shot Job 完成 freeze/snapshot/import/PG verify,核对完整 run/finding/metadata/payload/latest identity 与精确历史缺口,并把真实运行证据写回 #1873,完成任务后将详细报告写入任务报告

R2.5.3

迁移验证通过后实施 #1873 Release B 原子切换,并与 R2.6 / #1887 的 Monitor 前端重写同步收口:中心 service 成为唯一 writer/query authorityWeb/CLI/scheduler 只读中心 API,删除旧 SQLite/query/dashboard/fallback 与旧页面;只观察自动 CI/CD并完成 CLI、Monitor Web 与原入口验收,完成任务后将详细报告写入任务报告

R2.6 [in_progress]

解决 UniDesk #1887:完整重写 monitor.pikapython.com 前端工作台,不在旧页面骨架继续叠功能;页面只消费 central Monitor API,以 run/timeline 为主、详情面板承载 finding/artifact/诊断,支持筛选、深链和刷新恢复,Release B 一次性替换并删除旧页面/query/fallback,完成任务后将详细报告写入任务报告

R2.6.1 [in_progress]

#1887 冻结新 Monitor 工作台的信息架构、central API view model、URL/deep-link 状态、1920x1080 与 960x600 布局和一次性替换边界,明确不复用旧页面级状态堆叠/补丁式 CSS,完成任务后将详细报告写入任务报告

R2.6.2

由 Artificer 按 #1887 在独立 PR 实现全新 Monitor 页面组件、状态模型和样式,只消费 central Monitor API,覆盖筛选、timeline、详情、loading/empty/error/freshness 与刷新恢复,并运行最小前端定向测试,完成任务后将详细报告写入任务报告

R2.6.3

与 R2.5.3 的 Release B 协同合并 #1887:删除旧页面组件、旧 query/dashboard/fallback 和废弃 CSS,只观察自动 CI/CD,先 internal 后 public 原入口做 1920x1080/960x600 web-probe、深链刷新和截图验收,完成任务后将详细报告写入任务报告