跳轉到

歷史記錄 · 2026-08-22

月份索引|歷史記錄

重大重構里程碑

2026-08-22 ─ 人工視覺證據與自動 E2E 分層(issue 000750)

GitHub hosted Ubuntu 兩次在純成功截圖的 Chromium protocol 呼叫間歇失敗後,E2E 改依輸出角色 分層:人工觀看用成功 artifact、viewport helper 契約與完整視覺 inventory 只在非 CI 本機明確 opt-in;Canvas 黑畫面、縮圖透明度、幾何與溢位等可機器判定的產品 gate,以及失敗 screenshot/ trace,仍維持自動化。

決策檔:D-20260822-01

2026-08-22 ─ CI 測試目錄與 Profile 執行架構(issue 000755)

測試 eligibility 收斂到 .ci/test-catalog.json 與 fail-closed resolver。Private 日常只跑 Linux 必要短測試並讓 core/E2E 平行;Public 日常把 common 必要測試留在 Linux 一次,只將平台必要 測試展開到 Ubuntu/Windows/macOS。Linux hosted、Windows/macOS self-hosted 手動 full 與 三平台 hosted release readiness 共用完全相同的 full contract,每個平台只建立一次 E2E 產物。 人工視覺移入 manual profile,可由 full 產生 artifact,但成功不等於人工核准;nightly 清單與 schedule 移除,其獨有 suite 納入 full catalog。一般 Playwright collection 另排除 catalog 專屬 的 canonical/authoring/performance/determinism 檔案,由 specialized config 精確執行,避免 Private 誤收 opt-in 長測試與 full 重複執行;Windows runner 也改由 Node 直接啟動 pnpm entry, 避免 spawn EINVAL,且每次落盤前重建 evidence 父目錄以承受 Playwright 清理輸出。 全鏈重驗另移除 unit/coverage/property/determinism/fuzz/performance 的重複收集:coverage 在 Public daily/full 取代一般 unit run,專屬 partition 各執行一次;core-stage determinism 也會正確 觸發共用 E2E build。Docker Linux 實測 Private daily 維持 core/E2E 雙 job 較快且只建置一次。

決策檔:D-20260822-02

2026-08-22 ─ specs 變更類型對照消費端義務(issue 000769)

專案生命週期的權威與證據一節補上對照表:消費端 CI 會 checkout 鎖定的 specs、執行其中的檢查 腳本並讀取其中的常數與資產 manifest,因此 specs 的變更類型決定消費端是否必須同批更新。文檔 敘述與 runtime 階段狀態不需動作;authoring Release 資源或其 source manifest 變更時,main 必須 把 dependency lock 的四個欄位與自有 authoring manifest join 整組重新推導;specs 檢查腳本或其 runtime 需求變更時,執行該腳本的 repo 在改鎖時同步 workflow 的 runtime 與相依安裝;規則登錄與 常數類權威資料不改鎖不會失敗,但會形成靜默過時。同段並寫明 dependency lock 是 specs commit、 authoring Release tag 與三個 digest 加上 main 自有 join 的聯合快照,只換 commit 會讓採用檢查以 漂移中止。