9.1 KiB
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 与报告明确区分二者,完成任务后将详细报告写入任务报告。
R1.4.1 [completed]
完成 UniDesk #1919 的 JD01 Web 哨兵临时退役:确认约 10 分钟 Session 来自遗留 quick-verify CronJob,停止并移除 live Argo Application、PaC Repository 及带 JD01 sentinel 标签的运行资源;不要求 YAML-first 永久退役,源码配置保留以便恢复;NC01 小时级巡检保持不变,D518 不在本任务范围,完成任务后将详细报告写入任务报告。
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 已冻结规格推进实施:Host PG、中心 service、runner ingest 与新 Monitor 工作台基础均已完成;按 #1873 最新决策 不迁移 SQLite 历史数据,最后只完成 Monitor 专属 PG 空库验证、Release B 中心 API/UI/CLI 原子切换、自动 CI/CD 与原入口验收,并退役旧 SQLite/runner dashboard,完成任务后将详细报告写入任务报告。
R2.4.1 [completed]
修复 #1873 与 #1888 的 one-shot migration Job 失败可见性:正确解包外层 command 与 nested data.error,默认有界返回失败 container、phase、exit、语义化 code/message 和日志下钻,不输出 Secret、不依赖临时 dump,也不改变迁移执行语义,完成任务后将详细报告写入任务报告。
R2.5 [in_progress]
按 #1873 用户最新决策 放弃全部 SQLite 历史数据迁移,以空 Monitor Host PG 从新数据开始;先清空并验证 Monitor 专属数据库/schema,再完成 Release B 原子切换,SQLite、legacy gap 与 migration 不进入运行路径,不双写、不回读、不补洞,完成任务后将详细报告写入任务报告。
R2.5.1 [completed]
按 #1873 最新决策 冻结空库切换边界:取消 legacy gap、SQLite export/import/verify 和 payload conflict 作为门禁,确认只清空 Monitor 自有 Host PG database/schema,不影响共享 Host PG 其他服务,完成任务后将详细报告写入任务报告。
R2.5.2 [completed]
通过 YAML-first 受控入口按 #1873 最新决策 清空或重建 Monitor 专属 Host PG database/schema,验收 schema ready、业务数据 0 行且不读取 SQLite,再允许 Release B,完成任务后将详细报告写入任务报告。
R2.5.3 [in_progress]
空 Host PG 验证通过后实施 #1873 Release B,并与 R2.6 / #1887 的 Monitor 前端重写同步收口:中心 service 成为唯一 writer/query authority,新数据从切换后开始;删除或屏蔽旧 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 [completed]
在 #1887 冻结新 Monitor 工作台的信息架构、central API view model、URL/deep-link 状态、1920x1080 与 960x600 布局和一次性替换边界,明确不复用旧页面级状态堆叠/补丁式 CSS,完成任务后将详细报告写入任务报告。
R2.6.2 [completed]
由 Artificer 按 #1887 在独立 PR 实现全新 Monitor 页面组件、状态模型和样式,只消费 central Monitor API,覆盖筛选、timeline、详情、loading/empty/error/freshness 与刷新恢复,并运行最小前端定向测试,完成任务后将详细报告写入任务报告。
R2.6.3 [in_progress]
与 R2.5.3 的 Release B 协同合并 #1887:删除旧页面组件、旧 query/dashboard/fallback 和废弃 CSS,只观察自动 CI/CD,先 internal 后 public 原入口做 1920x1080/960x600 web-probe、深链刷新和截图验收,完成任务后将详细报告写入任务报告。