docs(logbook): record cd 188 sync deploy [skip ci]
This commit is contained in:
@@ -1,3 +1,66 @@
|
||||
## 2026-05-07 | CD 188 ops 腳本同步修復,移除 scp 不支援參數
|
||||
|
||||
**背景**:手動檢查 Gitea CD log 時發現 `Sync Ops Scripts to 188` 步驟雖然被標成非致命,但實際上 `scp` 收到 `ssh` 專用的 `-n` 參數後會報 `scp: unrecognized option: n`,導致 `docker-health-monitor.sh` 與 `pg-backup.sh` 無法同步到 188。這會讓 188 ops 腳本版本漂移,後續監控與備份治理難以信任。
|
||||
|
||||
**本次修補**:
|
||||
- `.gitea/workflows/cd.yaml` 將 188 連線參數拆成 `SSH_188_COMMON_OPTS`、`SSH_188_OPTS` 與 `SCP_188_OPTS`。
|
||||
- `ssh` 保留 `-n`,避免非互動式 job 卡 stdin。
|
||||
- `scp` 改用不含 `-n` 的 `SCP_188_OPTS`。
|
||||
- 加上繁體中文註解,明確記錄 `scp` 不支援 `ssh -n` 的原因。
|
||||
|
||||
**驗證**:
|
||||
- `ruby -e 'require "yaml"; YAML.load_file(".gitea/workflows/cd.yaml")'` → `yaml ok`。
|
||||
- `git diff --check` → clean。
|
||||
- Gitea Code Review `#1859` success。
|
||||
- 因 workflow-only push 不會自動觸發 CD,已用 `workflow_dispatch` 手動補跑 CD `#1860`。
|
||||
- CD `#1860` 三個 job 全部成功:
|
||||
- `tests` → success。
|
||||
- `build-and-deploy` → success。
|
||||
- `post-deploy-checks` → success。
|
||||
- 188 同步步驟實際輸出:
|
||||
- `docker-health-monitor.sh 已同步`。
|
||||
- `pg-backup.sh 已同步`。
|
||||
- `權限設定完成`。
|
||||
- 未再出現 `scp: unrecognized option: n`。
|
||||
- CD deploy marker:`6ae3a55a chore(cd): deploy 94e680a [skip ci]`。
|
||||
- K8s live image:
|
||||
- `awoooi-api` → `192.168.0.110:5000/awoooi/api:94e680add4125077bb3587a926ada2ab2398b4e4`。
|
||||
- `awoooi-web` → `192.168.0.110:5000/awoooi/web:94e680add4125077bb3587a926ada2ab2398b4e4`。
|
||||
- `awoooi-worker` → `192.168.0.110:5000/awoooi/api:94e680add4125077bb3587a926ada2ab2398b4e4`。
|
||||
- K8s rollout:`awoooi-api` / `awoooi-web` / `awoooi-worker` 均 successfully rolled out。
|
||||
- HTTP smoke:`/api/v1/health` → 200,`/zh-TW/awooop/runs` → 200。
|
||||
|
||||
判讀:這次是 CD 治理修補,不改 runtime 業務邏輯;但它會影響 188 ops 腳本是否能被穩定下發。修復後,188 健康監控與備份腳本同步恢復可信。
|
||||
|
||||
## 2026-05-07 | AwoooP 審批詳情回接 Run Timeline,避免決策後狀態斷裂
|
||||
|
||||
**背景**:Run Detail / Action Panel 已能從 `waiting_approval` 導向審批頁,但審批頁仍依賴 `/approvals` 列表資料,Approve / Reject 完成後也只回列表。值班者無法自然回到同一個 Run 的完整 timeline,容易造成 Telegram、Approval Queue 與 AwoooP Run 狀態各看各的。
|
||||
|
||||
**本次修補**:
|
||||
- `/zh-TW/awooop/approvals/[run_id]` 改以 `GET /api/v1/platform/runs/{run_id}/detail` 作為 source of truth。
|
||||
- 只有 `run.state === "waiting_approval"` 時才顯示 approve / reject 操作。
|
||||
- 若 Run 已不在等待審批,頁面改顯示「目前不需要人工決策」,並提供回 Run Timeline 的入口。
|
||||
- Approve / Reject 成功後導回 `/awooop/runs/{run_id}?project_id=...`,讓操作者立刻看到後續 step、outbound message 與 audit 脈絡。
|
||||
- 視覺改成目前 AwoooP 白底邊框 operator-console 風格,不再延續舊版暗色卡片。
|
||||
- 所有可見字串移到 `awooop.approvalDecision` i18n namespace,補齊 `zh-TW` 與 `en`。
|
||||
|
||||
**驗證**:
|
||||
- `node -e "JSON.parse(...zh-TW.json); JSON.parse(...en.json)"` → messages ok。
|
||||
- `pnpm --filter @awoooi/web lint -- --file 'src/app/[locale]/awooop/approvals/[run_id]/page.tsx'` → No ESLint warnings or errors。
|
||||
- `pnpm --filter @awoooi/web typecheck` → success。
|
||||
- `NEXT_PUBLIC_API_URL='https://awoooi.wooo.work' pnpm --filter @awoooi/web build` → success,`/[locale]/awooop/approvals/[run_id]` route 存在。
|
||||
- `rg "192\\.168|10\\.42\\.|NEXT_PUBLIC_API_URL.*192" ...` → no match。
|
||||
- Gitea Code Review `#1858` success,CD `#1857` success。
|
||||
- CD deploy marker:`4810125e chore(cd): deploy 3df2311 [skip ci]`。
|
||||
- K8s `awoooi-api` / `awoooi-web` / `awoooi-worker` 已 rollout 到 image tag `3df23112ef8071147560f4fd5bbfdac41522d8de`。
|
||||
- Production smoke:
|
||||
- `/zh-TW/awooop/approvals/018f2d04-4c37-7a18-b764-df0df0cbe111` → 200。
|
||||
- `/en/awooop/approvals/018f2d04-4c37-7a18-b764-df0df0cbe111` → 200。
|
||||
- `/zh-TW/awooop/runs/018f2d04-4c37-7a18-b764-df0df0cbe111` → 200。
|
||||
- Production log 短窗口未看到 `IntlError`、`MISSING_MESSAGE`、`run_detail`、`platform_operator` 或 Traceback。
|
||||
|
||||
判讀:審批決策頁已回到 Run Timeline 這條主線,AwoooP 的人工閘門不再是孤立頁面。下一步應把審批決策結果與 Telegram 原告警卡狀態更新綁得更緊,讓群組只收摘要,完整操作脈絡留在 Console。
|
||||
|
||||
## 2026-05-07 | AwoooP Run Detail 新增下一步判斷 Action Panel
|
||||
|
||||
**背景**:Run Detail 已可看到完整時間線,但值班者仍需要在同一頁快速判斷「AI 還在做」、「等待人工審批」、「已完成可稽核」或「AI 無法閉環需人工接手」。若只呈現 timeline,仍然會回到 Telegram 訊息洗版與人工判讀負擔。
|
||||
|
||||
Reference in New Issue
Block a user