feat: add web probe sentinel cicd visibility (#897)

Co-authored-by: Codex <codex@noreply.local>
This commit is contained in:
Lyon
2026-06-25 22:46:46 +08:00
committed by GitHub
parent 46205321bf
commit 2da1c97e0d
8 changed files with 745 additions and 24 deletions
@@ -96,7 +96,7 @@ Web哨兵必须遵循 UniDesk YAML-first ops。目标 node/lane、public origin
| PJ2026-0106050803 | 常驻服务 | 本规格 6.3 | scheduler、scenario runner、PVC/SQLite、health、metrics、maintenance API | Wrapper边界、YAML配置 | dashboard、CI/CD |
| PJ2026-0106050804 | 报告视图 | 本规格 6.4 | report/dashboard 渐进读取、分页、redaction、trace-frame | observe collect/analyze、Workbench唯一投影 | issue evidence、值守页面 |
| PJ2026-0106050805 | 发布集成 | 本规格 6.5 | CI/CD、GitOps、Argo、maintenance、targetValidation、publicExposure | 发布流水、源码同步、公开入口 | 发布恢复判定 |
| PJ2026-0106050806 | Canary验收 | 本规格 6.6 | dsflash-go 十轮工具调用、24 小时 dry-run 和 profile/fallback 边界 | Agent编排、Workbench、web-probe | 生产巡检收口 |
| PJ2026-0106050806 | Canary验收 | 本规格 6.6 | dsflash-go 十轮工具调用、24 小时 dry-run 和 profile 结构化失败边界 | Agent编排、Workbench、web-probe | 生产巡检收口 |
| PJ2026-0106050807 | 安全隔离 | 本规格 6.7 | Secret/prompt/provider redaction、NetworkPolicy、public dashboard auth | 用户管理、平台运维 | 安全 closeout |
| PJ2026-0106050808 | 代码引用 | 本规格 6.8 | SPEC 头部标注和生成/配置追溯 | 规格治理 | 后续 PR 审计 |
@@ -270,23 +270,21 @@ sequenceDiagram
哨兵自身 rollout 只验证哨兵服务健康、配置装载、PVC/SQLite 可写、metrics、dashboard 和调度循环;它不能把另一个哨兵当作 HWLAB Web 业务观察对象。
### 5.7 纯 CLI fallback 时序图
### 5.7 哨兵不可用结构化失败时序图
```mermaid
sequenceDiagram
participant CI as CI/CD targetValidation
participant Sen as Sentinel service
participant CLI as web-probe observe CLI
participant Ana as observe analyze
participant Log as Structured closeout evidence
CI->>Sen: validate or maintenance/stop
Sen-->>CI: unavailable or first-install
CI->>CLI: observe start/status/command quick verify
CLI->>Ana: observe analyze
Ana-->>CI: report SHA, findings, fallback=true
CI->>Log: missing service/config/health detail
Log-->>CI: failed targetValidation and retry command
```
Fallback 只能退回原纯客户端 `web-probe observe` CLI,不得退回裸 Playwright、私有 API、reload repair、读侧补洞或手工浏览器判断
哨兵不可用、首次安装未完成或配置未就绪时,CI/CD 必须结构化失败并输出缺失项、恢复建议和可重试命令;不得自动切换到第二执行通道。人工排障仍可显式运行原 `web-probe observe` CLI,但该人工动作不属于 CI/CD targetValidation 的自动通过路径
## 6. 原子需求
@@ -352,7 +350,7 @@ Web哨兵自身必须纳入受控 CI/CDTekton 构建,GitOps 发布,ArgoCD
HWLAB runtime 发布 Pipeline 应在 Argo sync 前调用当前哨兵 `maintenance/start`,进入观察不告警模式;sync 完成且业务 Deployment Ready 后调用 `maintenance/stop`,触发同一 observe CLI quick verify 和 analyze。targetValidation 不能只因 Argo `Synced/Healthy` 通过而绿;还必须包含 quick verify 结果、analysis report SHA、finding 摘要、public origin、scenario id 和 observer/run id。
哨兵服务不可用首次安装时,CI/CD 必须退回原纯客户端 `web-probe observe start/status/command/collect/analyze` quick verify,并把 fallback 事实写入 closeout。Fallback 不得使用裸 Playwright、私有 API、read-side repair、reload 循环或 session repair
哨兵服务不可用首次安装未完成或配置未就绪时,CI/CD 必须结构化失败并输出缺失项、恢复建议和可重试命令;不得自动回退到原纯客户端 CLI、裸 Playwright、私有 API、read-side repair、reload 循环或 session repair 形成第二执行路径。人工排障可以显式运行原 `web-probe observe start/status/command/collect/analyze`,但不能被 targetValidation 当作自动通过证据
### 6.6 OPS-SENTINEL-REQ-006 dsflash-go 十轮 canary