Merge remote-tracking branch 'origin/master' into fix/web-probe-memory-guard

This commit is contained in:
Codex
2026-07-13 08:42:51 +02:00
50 changed files with 5966 additions and 197 deletions
@@ -59,7 +59,7 @@
主代理 review/合并后只观察自动 CI/CD;用新 Artificer canary 验证 active steer 后 backend retry 无需重发仍继续最新指令,并确认 workspace/resource bundle/tool credential 保持正确,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R4.3_Task_Report.md)。
## R5 [in_progress]
## R5 [completed]
解决 [AgentRun #346](https://github.com/pikasTech/agentrun/issues/346):由 owning Aipod YAML 提示词明确当前 Artificer 是执行者并禁止递归创建或派发 Artificer;由原生子代理做最小修复,不改变模型、provider、SecretRef、workspace、credential 或 resume 语义,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5_Task_Report.md)。
@@ -67,10 +67,10 @@
由原生子代理按 [AgentRun #346](https://github.com/pikasTech/agentrun/issues/346) 修改 config/aipods/artificer.yaml 的单一 prompt authority 并补 render 定向测试,禁止 Artificer 递归修自己,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5.1_Task_Report.md)。
### R5.2 [in_progress]
### R5.2 [completed]
主代理 review/合并 [AgentRun #346](https://github.com/pikasTech/agentrun/issues/346) 的最小 PR,只观察自动 CI/CD,不新增代码默认值或第二 prompt authority,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5.2_Task_Report.md)。
### R5.3
### R5.3 [completed]
自动上线后执行最短 Artificer canary,确认直接处理业务任务且没有创建第二 task,并记录 task/run/session 证据,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5.3_Task_Report.md)。
@@ -130,3 +130,11 @@
### R8.4 [completed]
补齐合并后验收发现的 [UniDesk #1890](https://github.com/pikasTech/unidesk/issues/1890) 残余:gh issue 默认 Next、readCommands、help、skill 与 reference 必须把 trans gh:/owner/repo/issue/<number> cat 作为人工正文读取首选,结构化 JSON/full/raw 仅作为显式机器披露,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R8.4_Task_Report.md)。
## R9
解决 [UniDesk #1905](https://github.com/pikasTech/unidesk/issues/1905):收敛 Artificer 一次性 GitHub 正文输入,直接使用 quoted heredoc stdin,不再被旧参考误导为先写临时正文文件;保持既有可复用 --body-file 能力,不扩大到 Monitor 主线,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R9_Task_Report.md)。
### R9.1
按 [UniDesk #1905](https://github.com/pikasTech/unidesk/issues/1905) 清理冲突的 reference/skill/Next,并在 Artificer YAML prompt/resource bundle 内明确支持 stdin 时禁止一次性 /tmp 正文;补最小 render/行为测试后独立交付,当前只登记不执行,完成任务后将详细报告写入[任务报告](./details/cli-output-progressive-disclosure/R9.1_Task_Report.md)。
@@ -0,0 +1,22 @@
# R5.2 任务报告
## 结论
主代理已独立 review 并合并 [AgentRun PR #347](https://github.com/pikasTech/agentrun/pull/347)。merge commit 为 `4155132aa7e8de1936b2bf447ea889a607ee59d7`
## Review 证据
- `git diff --check` 通过。
- 定向运行 `81-artificer-nonrecursive-prompt``76-aipod-spec``80-artificer-model-selection`,全部通过。
- 规则唯一位于 owning YAML;通用 renderer 仅拼接 YAML 默认提示和用户 prompt。
- 未改变模型、reasoning、provider、SecretRef、workspace、resource bundle、Git identity 或 session resume。
## 自动交付证据
未执行人工 mirror、PipelineRun、sync、refresh、trigger 或 rollout。PaC watcher 临时恢复后,已有自动事件自行继续:
- PipelineRun`agentrun-nc01-v02-ci-4155132aa7e8de1936b2bf447ea889a607ee5glss5`
- PipelineRun`Succeeded`47 秒,3 个 TaskRun 全部成功;
- GitOps`fcb77f4cf8e1520003b81928eaef9177d439cfe6`
- Argo`Synced / Healthy`revision `fcb77f4cf8e1`
- runtime manager source`4155132aa7e8``1/1 ready`
@@ -0,0 +1,19 @@
# R5.3 任务报告
## 结论
自动上线后的最短 Artificer canary 通过。当前 Artificer 直接完成任务,没有调用工具,也没有创建或派发第二个 AgentRun/Artificer task。
## 证据
- task`qt_147d7694b83b4a62a99a6bcefa19eb11`
- run`run_795aaea568dc44898654ce25d35099bd`
- command`cmd_0ab1266c1c5c48048266efdb74edd324`
- session`sess_artificer_fc1728414554120dad66f19a`
- runner`rjob_954e449ac40f4b26bd6bd74a9cecc3f1`
- terminal`completed``OK=true`、authoritative
- 唯一结果:`ARTIFICER_NONRECURSIVE_OK`
事件 1 显示 YAML 默认提示已在用户业务提示之前进入实际初始 prompt。事件 21-32 只有 thread/turn 状态、单条 assistant message 和 terminal 状态,没有 tool call、AgentRun create/apply/dispatch 或 Code Queue 操作。canary 前后活动 task 视图未出现第二个新增任务。
本次 canary 为只读任务,未修改文件或外部状态。
@@ -0,0 +1,7 @@
# R5 任务报告
[AgentRun #346](https://github.com/pikasTech/agentrun/issues/346) 已完成。禁止 Artificer 递归派单的职责提示由 `config/aipods/artificer.yaml#spec.payloadDefaults.prompt` 单一控制;通用 renderer 只做默认提示与用户提示合成,没有第二规则权威。
实现已由 [AgentRun PR #347](https://github.com/pikasTech/agentrun/pull/347) 合并,并通过自动 PaC、GitOps、Argo 和 runtime 发布。上线后真实只读 canary `qt_147d7694b83b4a62a99a6bcefa19eb11` 直接返回 `ARTIFICER_NONRECURSIVE_OK`,完整事件中没有任何 tool call 或第二 task 派单。
默认模型和运行事实保持 `gpt-5.6-sol`、reasoning `medium`、backend profile `gpt-pika`workspace、resource bundle、credential、Git identity 和 session resume 均未改变。
@@ -0,0 +1,20 @@
# R1.12 任务报告
## NC01/v03 原入口交付
- HWLAB PR [#2520](https://github.com/pikasTech/HWLAB/pull/2520) 与 follow-up [#2521](https://github.com/pikasTech/HWLAB/pull/2521) 已合并到 `v0.3`,最终源码提交为 `5970ae77ed8bf74882b05cfa96577f2e67c0d7ba`
- PaC 自动交付使用 PipelineRun `hwlab-nc01-v03-ci-poll-vgrwx`,生成 GitOps 提交 `a4afa56c7b0e`NC01/v03 Argo 状态为 `Synced/Healthy`
- 固定正式入口为 `https://hwlab.pikapython.com`,未用裸 IP 或本地开发页替代验收。
## 页面与状态验证
- HWPOD 浏览器验证覆盖 1920×1080、960×600、390×844:设备与 Node 卡片/列表、路径实体深链 Drawer、筛选/游标切换、reduced-motion、节点接入 artifact 元数据及六阶段 readiness 均通过,无 document 级横向溢出。
- 非 HWPOD 固定 Playwright 烟测覆盖 19 个路由 × 960/3905/5 通过;专项 4/4 覆盖 OpenCode retry、三栏 separator 键盘调整、Projects 公共 Workbench Launch、R205 深链与 101→201→205 增量加载。
- HWPOD 后端 17/17、共享前端 5/5;页面主 PR `bun run check` 114/114、后端合同 8/8、Vitest 11/11MDTODO follow-up 后端 13/13、Vitest 2/2、Playwright 3/3、TypeScript 与构建通过。
- typed read model 覆盖一 node 多设备、离线 node、在线无 spec、invalid spec、capability mismatch、busy/in-flight、更新元数据、readiness 与脱敏诊断;partial/stale/restricted/error 不会被 ready 状态吞没。
## Web observe 证据与处置
- observer `webobs-mriq0nci-aaf44f` 在正式 MDTODO 深链采样 20 次;Project Management 相关 API 均返回 200,任务树、正文和公共 Workbench Launch 可见。
- 该次所选任务本身没有 report link,因此没有把“报告预览”误记为线上成功;projection-only 报告与报告交互由专项回归覆盖。
- analyzer 对任务树贴底事实栏的误报已由 UniDesk PR [#1899](https://github.com/pikasTech/unidesk/pull/1899) 修复;observer 随后已受控 force-stop,目标 PID 与独立 Chrome session 均复核为空。
@@ -0,0 +1,23 @@
# R5.1 任务报告
## 结论
[UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 的直接断点不是 PR、Pipeline 定义或 AgentRun,而是 NC01 的 `pipelines-as-code-watcher` 未启动。GitHub merge、Gitea mirror/webhook 和 PaC 创建 PipelineRun 均正常;唯一负责把 `queued/PipelineRunPending` 推进为 `started` 的 watcher 不可用,因此自动链停在 0 TaskRun。
## 运行面证据
- watcher Deployment`replicas=1``ready=0``unavailable=1`
- 故障 Pod`pipelines-as-code-watcher-7f6c87497c-h2dzz`UID `7fe65fbe-a18e-4513-89f2-5fac37ae0b71`
- projected ServiceAccount token 被 node authorizer 拒绝:`node requested token bound to a pod scheduled on a different node` / `no relationship found between node`
- 同一控制面恢复窗口创建的 `tempo``todo-note` Pod 出现相同错误;稍后新建 Pod 已能正常挂载 token,排除 watcher ServiceAccount RBAC 和 AgentRun Pipeline 定义。
- AgentRun merge commit `4155132aa7e8de1936b2bf447ea889a607ee59d7` 的 PipelineRun 已由 PaC 创建并标记 `queued`,但长期 `startTime=null`、0 TaskRun。
## 有界临时恢复
在 issue 和 MDTODO 建立后,只删除上述精确 Pending watcher Pod,由既有 Deployment/ReplicaSet 自动重建。未修改、删除或重跑任何 PipelineRun,也未执行 mirror、sync、refresh、trigger 或 rollout。
新 Pod `pipelines-as-code-watcher-7f6c87497c-7lhfh` 随后 Ready,并接管 leader lease;既有 #347 PipelineRun 自动从 `queued` 进入 `Running`,产生 TaskRun。该证据证明恢复仍由原 PaC 自动权威完成。
## 长期归属
长期修复归 [#1900](https://github.com/pikasTech/unidesk/issues/1900) 的 NC01 k3s node-authorizer / Pod 生命周期恢复。不得把本次精确 Pod 重建固化为额外 delivery actor、补跑入口或自动围栏。
@@ -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 门禁。
@@ -0,0 +1,11 @@
# R2.5.1 任务报告
## 结论
- 已按 [#1873 最新决策](https://github.com/pikasTech/unidesk/issues/1873#issuecomment-4954659225) 冻结为空库切换:旧 SQLite 历史允许全部丢弃,不执行 export/import/verify,不把 legacy gap 或 payload conflict 作为门禁。
- #1873 正文与 MDTODO 已同步为“从新数据开始”,后续 Artificer 不再收到迁移旧数据的冲突要求。
- 切换只允许处理 Monitor 专属 `web_probe_monitor` database/schemaAgentRun、Decision Center 等 Host PG sibling database 不在 mutation 范围。
## 边界
不双写、不回读 SQLite、不补洞,也不新增迁移兼容层、合同、租约、安全机制或围栏。R2.5.2 仅负责受控空库与 schema 就绪证据。
@@ -0,0 +1,18 @@
# R2.5.2 任务报告
## 结论
- [PR #1903](https://github.com/pikasTech/unidesk/pull/1903) 已合并,merge commit 为 `0213fe0196515e99ceba2b2f84adfad90acbe7c2`,提供 YAML-first 的 Monitor 专属 Host PG `plan/status/reset --confirm` 受控入口。
- owning YAML 精确限制 database=`web_probe_monitor`、owner=`web_probe_monitor`、schema=`monitor`CLI 不接受任意 database 或 SQL 参数。
- 空库操作已将 Monitor 业务行从 938 清为 0;未导入或读取 SQLite 历史。
## 验证
- 持久化 CLI 实测:`databaseExists=true``schemaReady=true``empty=true``ready=true``businessRows=0`schema version=`2026-07-12-p17-3`
- sibling OID 摘要保持为 `agentrun_v02:59744,decision_center:119248`,证明未重建这两个数据库。
- 独立定向测试 `8 pass / 0 fail``check --syntax-only``11/11``git diff --check` 通过。
- 审查发现并修复 `status` 假绿:`ready=false` 现在同时让远端 shell、JSON `ok` 和上层命令退出失败。
## 后续
只允许 R2.5.3 / R2.6.3 从该空库实施 Release B,开始接收新数据;禁止再次清库或恢复 SQLite 历史。
+5 -1
View File
@@ -59,6 +59,10 @@
依赖 R1.4-R1.10,完成迁移收口:删除所有已被新设计系统替代的旧页面 shell、私有 Panel/Table/Dialog/Viewer、字段名猜测、名称去重、关键事实前端拼装、重复 CSS 和阻碍最新目标的兼容入口;把 Workbench 与普通页面样式按职责拆分,所有源码文件满足体积治理。保持稳定业务 ID、API、权限、Secret、深链和 Workbench 用户主路径无回退,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.11_Task_Report.md)。
### R1.12
### R1.12 [completed]
依赖 R1.4-R1.11,在 NC01/v03 YAML-selected Cloud Web 原入口完成全量验收:覆盖 1920x1080、960x600、约 390px、键盘/焦点/ARIA、reduced-motion、深链刷新/前进后退、卡片/列表语义一致、loading/refreshing/partial/empty/error/ready、大表/长树/长日志性能和权限差异。用 web-probe observe/analyze 留存证据;HWPOD 覆盖一 node 多设备、离线 node、在线无 spec、invalid spec、mismatch、busy、更新和诊断错误,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.12_Task_Report.md)。
### R1.13 [in_progress]
补强 WebProbe 全浏览器入口与 Web 哨兵资源治理(子 issue [pikasTech/unidesk#1907](https://github.com/pikasTech/unidesk/issues/1907)):所有会创建浏览器的人工入口只以 /proc/meminfo 的 MemAvailable 判定真实物理内存,未满足 owning YAML 策略时先阻断并要求受控 GC 后复核;哨兵未满足策略时不创建 observer/Chrome,跳过本轮等待下一 cadence。将阈值、锁、TTL、样本、截图、性能、历史、响应体和终态关闭上限收敛到 owning YAML,保证成功、失败、timeout、signal 全路径关闭 browser/context,并在 NC01/v03 验证 12GiB swap 不计入资格,完成任务后将详细报告写入[任务报告](./details/hwlab-web-product-experience/R1.13_Task_Report.md)。
@@ -68,11 +68,11 @@
解决 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900):修复 NC01 PaC watcher 因 ServiceAccount token 的 node/pod 关系失败而 Pending,恢复 GitHub PR merge 驱动的唯一自动交付链,禁止人工补触发、第二权威或旁路,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5_Task_Report.md)。
### R5.1 [in_progress]
### R5.1 [completed]
只读定位 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 的唯一根因,核对 watcher Pod、ServiceAccount token、node/pod 关系、owning YAML 与最近控制面变更,不改运行面,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.1_Task_Report.md)。
### R5.2
### R5.2 [in_progress]
按 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 实施最小持久化修复和定向验证,不新增第二交付权威、合同、租约、安全机制或围栏,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.2_Task_Report.md)。
+10 -10
View File
@@ -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]
#### R2.5.1 [completed]
按 [#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
#### R2.5.2 [completed]
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
#### R2.5.3 [in_progress]
迁移验证通过后实施 [#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]
@@ -75,6 +75,6 @@ Release A 自动上线后通过受控 one-shot Job 完成 freeze/snapshot/import
由 Artificer 按 [#1887](https://github.com/pikasTech/unidesk/issues/1887) 在独立 PR 实现全新 Monitor 页面组件、状态模型和样式,只消费 central Monitor API,覆盖筛选、timeline、详情、loading/empty/error/freshness 与刷新恢复,并运行最小前端定向测试,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.6.2_Task_Report.md)。
#### R2.6.3
#### R2.6.3 [in_progress]
与 R2.5.3 的 Release B 协同合并 [#1887](https://github.com/pikasTech/unidesk/issues/1887):删除旧页面组件、旧 query/dashboard/fallback 和废弃 CSS,只观察自动 CI/CD,先 internal 后 public 原入口做 1920x1080/960x600 web-probe、深链刷新和截图验收,完成任务后将详细报告写入[任务报告](./details/web-sentinel-runtime-reliability/R2.6.3_Task_Report.md)。