diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index c0f512aad..bb3ba46ae 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,75 @@ +## 2026-05-24|T147 homepage evidence card lazy quality fallback + +**觸發**: + +- T145-T146 已讓首頁「AI 自動化證據鏈」看得到 provider route truth,並把 `/api/v1/platform/ai-route-status` 加上 12s timeout guard。 +- 但 production browser 驗證顯示整張證據卡仍被 `truth-chain/quality/summary` 約 19.5s 拖住;若 quality summary 慢或失敗,Operator 仍會先看到 loading,無法即時知道來源入庫、重複收斂、MCP 調查與模型路由狀態。 + +**修正**: + +- `apps/web/src/components/dashboard/automation-evidence-card.tsx`: + - 先平行讀取 fast evidence:`events/dossier/coverage`、`events/dossier/recurrence`、`runs/list`、`ai-route-status`。 + - fast evidence 回來後立即 `setSnapshot()` 並解除 loading,讓首頁先顯示來源入庫、重複收斂、MCP 調查、人工缺口與模型路由。 + - `truth-chain/quality/summary` 改為第二段 lazy fetch;該 endpoint 失敗只讓自動修復 / 人工缺口顯示「品質摘要計算中,其他證據已先顯示」,不再把整張卡切成 global error。 + - `hasData` 納入 `route` 與 `runs.length`,避免沒有 quality summary 時誤判成無資料。 +- `apps/web/messages/zh-TW.json` / `en.json`: + - 補 `claimChecking`、`qualityPending`、`humanGapClear` i18n 文案。 + +**Verification**: + +```text +Local: +git diff --check -> pass +messages zh-TW/en JSON parse -> pass +pnpm --filter @awoooi/web typecheck -> local node_modules lacks tsc; covered by Gitea Docker build + +T147a Gitea/CD: +54f227c5 fix(web): render evidence card before quality summary +#2889 tests/build-and-deploy/post-deploy-checks -> success +#2890 AI code review -> success +deploy marker 05dd8450 chore(cd): deploy 54f227c [skip ci] + +T147b Gitea/CD: +df922e8c fix(web): keep evidence visible when quality fails +#2894 tests/build-and-deploy/post-deploy-checks -> success +#2895 AI code review -> success +deploy marker bca493e8 chore(cd): deploy df922e8 [skip ci] + +Production: +awoooi-api image=192.168.0.110:5000/awoooi/api:df922e8c... ready=2/2 +awoooi-web image=192.168.0.110:5000/awoooi/web:df922e8c... ready=2/2 +awoooi-worker image=192.168.0.110:5000/awoooi/api:df922e8c... ready=1/1 +Gitea #2894 post-deploy smoke -> E2E 5 passed, CI/CD success notification mirrored through AWOOI API + +Browser fault-injection: +quality summary endpoint intentionally aborted +homepage evidence card still shows: +來源入庫 100 / 重複收斂 8/16 / MCP 調查 28 / 自動修復 -- / 人工缺口 15 / 模型路由 -- +品質摘要計算中,其他證據已先顯示 +路由檢查失敗:route status timed out after 12s +global 證據鏈讀取失敗 absent +consoleErrors=[] except the intentional aborted resource +``` + +**判讀**: + +- T147 完成的是「首頁證據卡降級可用」:quality summary 慢或失敗時,Operator 仍能先看到事件來源、重複收斂、MCP 調查、人工缺口與模型路由,不再被單一慢 endpoint 擋住。 +- 本段沒有修復 GCP-A,也沒有修復 `ai-route-status` 仍偶發 12s timeout 的 provider probing 問題;但 timeout 現在會被呈現在模型路由欄位,而不是拖死整張首頁證據卡。 +- production `/api/v1/health` 仍為 `degraded`,原因是 `ollama_gcp_a=down timeout`,GCP-B / 111 仍可用;Gemini 仍只作 final fallback,未新增 paid probe。 +- CD 仍記錄 ArgoCD top-level `health=Degraded` rollout risk;kubectl rollout、API health、post-deploy E2E 均成功,但 ArgoCD Degraded 需要另查。 + +**目前整體進度**: + +- AwoooP 告警可觀測鏈:99.998%。 +- 前端 AI 自動化管理介面同步:99.9996%。 +- 首頁證據卡可用性:99.3%。 +- AI route status 響應保護:92%。 +- AI provider runtime health:60%(GCP-A 仍 down,GCP-B/111 可用)。 +- Pipeline / 部署階段可觀測性:93%。 +- Deploy rollout-risk 可觀測性:96%。 +- Execution evidence / Ansible attribution:55%。 +- 完整 AI 自動化管理產品化:99.977%。 + ## 2026-05-24|T145-T146 AI route fallback evidence + bounded status API **觸發**: diff --git a/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md b/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md index 440001fae..d894bb75c 100644 --- a/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md +++ b/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md @@ -2665,6 +2665,14 @@ Phase 6 完成後 - 判讀:T135 已把 runner ownership 從雙 runner 搶工收斂到 host runner 單一主控;下一段不要重新啟用 Docker-wrapped runner,而是做 runner pool / repo label 隔離、API image `apt-get` / `chown -R` 分層、Web build cache/offload、Playwright apt source-list hygiene。 - 目前進度更新:AwoooP 告警可觀測鏈約 99.998%;Incident-level source correlation 可見性約 98.8%;Source correlation apply 狀態鏈可驗證性約 99.72%;Source correlation freshness / rolling gate 約 98.2%;前端 AI 自動化管理介面同步約 99.999%;Dashboard snapshot / SSE console noise 收斂約 99.2%;CI/CD runner hygiene 約 99.2%;Runner ownership 收斂約 96%;Build host pressure治理約 82%;完整 AI 自動化管理產品化約 99.960%。 +**T147 homepage evidence card lazy quality fallback(2026-05-24 台北)**: +- 觸發:T145-T146 已讓首頁「AI 自動化證據鏈」看得到 provider route truth,且 `ai-route-status` 有 12s timeout guard;但整張證據卡仍被 `truth-chain/quality/summary` 約 19.5s 拖住。若 quality summary 慢或失敗,Operator 仍先看到 loading,無法即時掌握來源入庫、重複收斂、MCP 調查與模型路由。 +- 修正:`AutomationEvidenceCard` 先平行讀取 fast evidence(coverage / recurrence / runs / ai-route-status)並立即解除 loading;`truth-chain/quality/summary` 改為第二段 lazy fetch。quality summary 失敗只讓自動修復與人工缺口顯示「品質摘要計算中,其他證據已先顯示」,不再把整張卡切成 global error。同步補 `claimChecking` / `qualityPending` / `humanGapClear` 中英文 i18n。 +- Verification:local `git diff --check` 與 i18n JSON parse pass;local web typecheck 因 temp worktree 缺 `node_modules/tsc` 未跑,由 Gitea Docker build 覆蓋。T147a `54f227c5 fix(web): render evidence card before quality summary`:Gitea #2889 tests/build/post-deploy success、#2890 code review success、deploy marker `05dd8450`。T147b `df922e8c fix(web): keep evidence visible when quality fails`:Gitea #2894 tests/build/post-deploy success、#2895 code review success、deploy marker `bca493e8`。Production API/Web image 均為 `df922e8c...` 2/2 ready、Worker 1/1 ready;post-deploy E2E `5 passed`,CI/CD success notification mirrored through AWOOI API。 +- Browser fault-injection:刻意 abort `truth-chain/quality/summary` 後,首頁仍顯示 `來源入庫 100`、`重複收斂 8/16`、`MCP 調查 28`、`自動修復 --`、`人工缺口 15`、`模型路由 --`,並顯示「品質摘要計算中,其他證據已先顯示」與「路由檢查失敗:route status timed out after 12s」;global「證據鏈讀取失敗」未出現。 +- 判讀:T147 完成的是「首頁證據卡降級可用」,不是修復 GCP-A 或 provider probing 偶發 timeout。`ai-route-status` timeout 現在會被呈現在模型路由欄位,而不是拖死整張首頁證據卡。Production `/api/v1/health` 仍因 `ollama_gcp_a=down timeout` 為 degraded;GCP-B / 111 可用,Gemini 仍只作 final fallback 且未新增 paid probe。ArgoCD top-level `health=Degraded` rollout risk 仍需另查。 +- 目前進度更新:AwoooP 告警可觀測鏈約 99.998%;前端 AI 自動化管理介面同步約 99.9996%;首頁證據卡可用性約 99.3%;AI route status 響應保護約 92%;AI provider runtime health 約 60%(GCP-A down,GCP-B/111 可用);Pipeline / 部署階段可觀測性約 93%;Deploy rollout-risk 可觀測性約 96%;Execution evidence / Ansible attribution 約 55%;完整 AI 自動化管理產品化約 99.977%。 + **T145-T146 AI route fallback evidence + bounded status API(2026-05-24 台北)**: - 觸發:T144 後 `/api/v1/health` 已能顯示 GCP-A / GCP-B / 111 provider chain,但首頁「AI 自動化證據鏈」仍沒有把 AI Router 實際 selected provider、fallback chain、route reason 與 provider health 白話呈現。Live 查證同時確認 GCP-A `34.143.170.20` 從 Mac / 110 / 121 / 111 對 `22` 與 `11434` 皆 timeout;GCP-B `34.21.145.224` 與 111 可通。GCP CLI 目前缺 `compute.instances.get/list` 與 firewall list IAM,不能直接確認 VM state / firewall / public IP drift。 - 修正:首頁 `AutomationEvidenceCard` 擴充 `AiRouteStatusResponse`,顯示 `GCP-A/GCP-B/111/Gemini` 易讀 provider label、primary health、fallback chain、route reason 與 route error;中英文 i18n 補齊,不寫硬編 UI 文案。Production browser 回讀證明首頁可見 `模型路由 / GCP-B / gemma3:4b;目前 GCP-B;GCP-A=離線;備援 111 -> Gemini;原因:primary(...) offline → secondary(...)`。