docs: record phase 7.6 watchdog go-live
This commit is contained in:
@@ -336,6 +336,38 @@ powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-w
|
||||
|
||||
计划任务默认不固化管理员密码,也不把 Webhook URL 写入产物。Webhook URL 只能通过运行时参数或 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL` 注入;完整 release gate 仍应由人工或受控流水线在当前进程临时注入管理员密码后执行。
|
||||
|
||||
真实上线值守任务:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode RegisterTask -RequireWebhook -NotifyOnStatus WarnOrFail
|
||||
```
|
||||
|
||||
查看值守任务:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode ShowTask
|
||||
```
|
||||
|
||||
暂停值守任务:
|
||||
|
||||
```powershell
|
||||
Disable-ScheduledTask -TaskName AIContractProductionWatchdog
|
||||
```
|
||||
|
||||
恢复值守任务:
|
||||
|
||||
```powershell
|
||||
Enable-ScheduledTask -TaskName AIContractProductionWatchdog
|
||||
```
|
||||
|
||||
删除值守任务:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode UnregisterTask
|
||||
```
|
||||
|
||||
真实外部告警联调前,必须在运行环境中设置 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL`。该值不得进入 Git、脚本、文档或计划任务命令。
|
||||
|
||||
列出可回滚的 frontend 备份:
|
||||
|
||||
```powershell
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
| 阶段 4:试点运行监控与安全加固 | PASS | `project-docs/阶段4-试点运行监控与安全加固执行记录-2026-05-01.md` |
|
||||
| 阶段 5:生产运行、安全、监控、备份与依赖治理 | PASS | `project-docs/阶段5-生产运行安全监控备份与依赖治理执行记录-2026-05-01.md` |
|
||||
| 阶段 6:生产运营自动化与发布门禁固化 | PASS | `project-docs/阶段6-生产运营自动化与发布门禁固化执行记录-2026-05-01.md` |
|
||||
| 阶段 7:生产运营常态化与一键发布 | PASS | `project-docs/阶段7-一键前端Docker发布执行记录-2026-05-01.md`、`project-docs/阶段7.2-一键回滚与生产巡检门禁执行记录-2026-05-01.md`、`project-docs/阶段7.3-容量治理与备份保留策略执行记录-2026-05-01.md`、`project-docs/阶段7.4-日常巡检与告警门禁执行记录-2026-05-01.md`、`project-docs/阶段7.5-定时巡检与告警投递执行记录-2026-05-01.md` |
|
||||
| 阶段 7:生产运营常态化与一键发布 | PASS | `project-docs/阶段7-一键前端Docker发布执行记录-2026-05-01.md`、`project-docs/阶段7.2-一键回滚与生产巡检门禁执行记录-2026-05-01.md`、`project-docs/阶段7.3-容量治理与备份保留策略执行记录-2026-05-01.md`、`project-docs/阶段7.4-日常巡检与告警门禁执行记录-2026-05-01.md`、`project-docs/阶段7.5-定时巡检与告警投递执行记录-2026-05-01.md`、`project-docs/阶段7.6-真实值守上线与告警联调执行记录-2026-05-01.md` |
|
||||
|
||||
阶段 1 已完成源码闭环与生产入口闭环,生产无人 E2E `18/18` 通过。阶段 2 已完成 Review 重试、Knowledge Base 文档重试、Review -> Chat -> Contract 上下文联动、首页交付工作台和阶段 2 自动化无人闭环,本地与生产 E2E 均 `7/7` 通过。阶段 3 已完成系统 readiness、试点交付准备页、默认账号说明、演示样本数据、依赖健康门禁和阶段 3 自动化无人闭环,本地与生产 E2E 均 `5/5` 通过。
|
||||
|
||||
当前后续重点已从“生产运营自动化与发布门禁固化”推进到“生产运营常态化与一键发布”:阶段 7 首批一键发布闭环已完成,阶段 7.2 一键回滚与生产巡检门禁也已完成首批闭环。阶段 7.3 容量治理已完成,备份保留策略、Docker build cache/旧镜像清理和磁盘告警阈值已固化;服务器磁盘从 `89%` 降至 `67%`。阶段 7.4 日常巡检与告警门禁已完成,将 ops check、capacity governance dry run 和可选 release gate 聚合为统一生产值守入口,完整值守验证 `PHASE7_PRODUCTION_WATCHDOG_PASS`。阶段 7.5 已完成定时任务包装和 Webhook dry-run 告警投递,最终调度门禁 `PHASE7_WATCHDOG_SCHEDULER_PASS`。
|
||||
当前后续重点已从“生产运营自动化与发布门禁固化”推进到“生产运营常态化与一键发布”:阶段 7 首批一键发布闭环已完成,阶段 7.2 一键回滚与生产巡检门禁也已完成首批闭环。阶段 7.3 容量治理已完成,备份保留策略、Docker build cache/旧镜像清理和磁盘告警阈值已固化;服务器磁盘从 `89%` 降至 `67%`。阶段 7.4 日常巡检与告警门禁已完成,将 ops check、capacity governance dry run 和可选 release gate 聚合为统一生产值守入口,完整值守验证 `PHASE7_PRODUCTION_WATCHDOG_PASS`。阶段 7.5 已完成定时任务包装和 Webhook dry-run 告警投递,最终调度门禁 `PHASE7_WATCHDOG_SCHEDULER_PASS`。阶段 7.6 正在推进真实计划任务上线与告警联调;当前外部告警到人需要运行时提供 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
# 阶段 7.6:真实值守上线与告警联调执行记录(2026-05-01)
|
||||
|
||||
> 当前目标:把阶段 7.5 的 dry run 变成真实上线值守,并验证告警投递链路可以完成真实 HTTP 发送。
|
||||
|
||||
---
|
||||
|
||||
## 一、当前执行结论
|
||||
|
||||
| 主线 | 状态 | 备注 |
|
||||
|---|---|---|
|
||||
| gstack 安装校验 | PASS | 已返回 `GSTACK_OK` |
|
||||
| 阶段 7.6 方案 | READY | 已新增阶段 7.6 方案文档 |
|
||||
| Webhook 运行时配置 | BLOCKED | 当前进程未配置 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL` |
|
||||
| 计划任务上线 | PASS | `AIContractProductionWatchdog` 已注册 |
|
||||
| 计划任务状态验证 | PASS | 任务状态 `Ready` |
|
||||
| 本地真实 POST 烟测 | PASS | 临时 HTTP 接收器收到真实 POST 并返回 200 |
|
||||
| 外部告警到人验证 | BLOCKED | 需要真实 Webhook URL |
|
||||
| 最终门禁 | PENDING | 待执行 |
|
||||
|
||||
---
|
||||
|
||||
## 二、执行口径
|
||||
|
||||
正式注册计划任务:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode RegisterTask -RequireWebhook -NotifyOnStatus WarnOrFail
|
||||
```
|
||||
|
||||
查看计划任务:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode ShowTask
|
||||
```
|
||||
|
||||
最终门禁:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode RunOnce -RequireCleanWorktree -FailOnWarn -SkipWebhook
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、计划任务上线
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode RegisterTask -RequireWebhook -NotifyOnStatus WarnOrFail
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
```text
|
||||
PHASE7_WATCHDOG_SCHEDULER_PASS D:\ai-contract-platform\project-docs\qa-artifacts\phase7.5-watchdog-scheduler\2026-05-01T13-40-03-817
|
||||
```
|
||||
|
||||
计划任务配置:
|
||||
|
||||
```text
|
||||
TaskName=AIContractProductionWatchdog
|
||||
State=Ready
|
||||
stores_admin_password=false
|
||||
stores_webhook_url=false
|
||||
```
|
||||
|
||||
注册命令包含:
|
||||
|
||||
```text
|
||||
-RequireCleanWorktree -FailOnWarn -RequireWebhook -WebhookUrlEnvVar "AI_CONTRACT_WATCHDOG_WEBHOOK_URL" -WebhookKind generic -NotifyOnStatus WarnOrFail
|
||||
```
|
||||
|
||||
结论:真实值守任务已上线。任务不会保存管理员密码,也不会保存 Webhook URL。若后续生产值守出现 WARN/FAIL,任务会要求运行环境中存在 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL`。
|
||||
|
||||
---
|
||||
|
||||
## 四、计划任务状态验证
|
||||
|
||||
命令:
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode ShowTask
|
||||
```
|
||||
|
||||
结果:
|
||||
|
||||
```text
|
||||
PHASE7_WATCHDOG_SCHEDULER_PASS D:\ai-contract-platform\project-docs\qa-artifacts\phase7.5-watchdog-scheduler\2026-05-01T13-40-12-173
|
||||
```
|
||||
|
||||
结论:`ShowTask` 查询 PASS,Windows Task Scheduler 中 `AIContractProductionWatchdog` 状态为 `Ready`。
|
||||
|
||||
---
|
||||
|
||||
## 五、本地真实 POST 烟测
|
||||
|
||||
方式:启动临时 `127.0.0.1` HTTP 接收器,执行非 dry-run Webhook 投递。
|
||||
|
||||
结果:
|
||||
|
||||
```text
|
||||
PHASE7_6_LOCAL_WEBHOOK_SMOKE_PASS D:\ai-contract-platform\project-docs\qa-artifacts\phase7.6-real-webhook-smoke\2026-05-01T13-40-43-497
|
||||
SCHEDULER_EXIT_CODE=0
|
||||
```
|
||||
|
||||
接收器日志:
|
||||
|
||||
```text
|
||||
LISTENING 127.0.0.1:53537
|
||||
RECEIVED_AND_RESPONDED
|
||||
```
|
||||
|
||||
收到 payload:
|
||||
|
||||
```text
|
||||
project=ai-contract-platform
|
||||
event=production_watchdog
|
||||
status=WARN
|
||||
severity=warning
|
||||
```
|
||||
|
||||
结论:告警投递链路已完成真实 HTTP POST 验证。本次使用本地临时接收器,不等同于外部人员已收到。
|
||||
|
||||
---
|
||||
|
||||
## 六、外部告警到人阻塞点
|
||||
|
||||
当前进程检查结果:
|
||||
|
||||
```text
|
||||
WATCHDOG_WEBHOOK_ENV_MISSING
|
||||
```
|
||||
|
||||
因此本轮不能声明“外部告警已经送到人手里”。要完成该项,需要在运行环境中注入真实 Webhook:
|
||||
|
||||
```powershell
|
||||
$env:AI_CONTRACT_WATCHDOG_WEBHOOK_URL = '<真实告警机器人或通知通道 URL>'
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\run-production-watchdog-scheduler.ps1 -Mode RunOnce -RequireCleanWorktree -NotifyOnStatus All
|
||||
Remove-Item Env:\AI_CONTRACT_WATCHDOG_WEBHOOK_URL
|
||||
```
|
||||
|
||||
安全要求:Webhook URL 不得写入 Git、脚本、文档、计划任务命令或产物。
|
||||
@@ -0,0 +1,47 @@
|
||||
# 阶段 7.6:真实值守上线与告警联调方案(2026-05-01)
|
||||
|
||||
> 前置状态:阶段 7.5 已完成定时巡检包装、Webhook dry run 和计划任务 dry run。阶段 7.6 的目标是把 dry run 推进为真实上线值守,并验证告警投递链路可以完成真实 HTTP 发送。
|
||||
|
||||
---
|
||||
|
||||
## 一、阶段目标
|
||||
|
||||
1. 正式注册 Windows 计划任务 `AIContractProductionWatchdog`。
|
||||
2. 计划任务默认执行 `RunOnce -RequireCleanWorktree -FailOnWarn`。
|
||||
3. 计划任务不保存管理员密码、不保存 Webhook URL。
|
||||
4. 使用本地 HTTP 接收器验证非 dry-run Webhook POST 链路。
|
||||
5. 若运行环境提供 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL`,执行真实外部告警投递验证。
|
||||
6. 若未提供真实 Webhook URL,明确记录为运行时阻塞,不伪造“送达人手”的结论。
|
||||
|
||||
---
|
||||
|
||||
## 二、交付范围
|
||||
|
||||
| 主线 | 目标 | 交付物 |
|
||||
|---|---|---|
|
||||
| A. 计划任务上线 | 注册真实定时任务 | Windows Task Scheduler task |
|
||||
| B. 任务状态验证 | 查询任务状态和命令 | `ShowTask` 产物 |
|
||||
| C. 投递链路验证 | 本地 HTTP 接收器真实接收 POST | `received-webhook.json` |
|
||||
| D. 外部告警联调 | 使用运行时 Webhook URL 真实投递 | 仅在 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL` 存在时执行 |
|
||||
| E. 文档闭环 | 固化查看、暂停、恢复和手动运行方式 | 运维手册与执行记录 |
|
||||
|
||||
---
|
||||
|
||||
## 三、安全口径
|
||||
|
||||
1. 管理员密码不得写入计划任务。
|
||||
2. Webhook URL 不得写入计划任务命令、Git、文档或产物。
|
||||
3. 真实外部 Webhook 只从 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL` 读取。
|
||||
4. 本地 HTTP 烟测只使用 `127.0.0.1` 临时接收器,不代表外部人员已收到。
|
||||
5. 若没有真实 Webhook URL,阶段可以完成“值守上线”和“投递链路可用”,但不能声明“已送达到人”。
|
||||
|
||||
---
|
||||
|
||||
## 四、验收标准
|
||||
|
||||
1. `AIContractProductionWatchdog` 计划任务已注册。
|
||||
2. `ShowTask` 可查询任务状态。
|
||||
3. 任务命令不包含管理员密码和 Webhook URL。
|
||||
4. 本地真实 Webhook POST 烟测 PASS。
|
||||
5. clean worktree 下 scheduler gate PASS。
|
||||
6. 若 `AI_CONTRACT_WATCHDOG_WEBHOOK_URL` 存在,真实外部投递 PASS。
|
||||
Reference in New Issue
Block a user