D-20260725-04|正式 build 可選 runtime 測試策略¶
背景與驅動力¶
D-20260716-01 已定義唯一連線狀態機、
local-ready 能力與線上能力 fail-closed,但尚未定義如何在本機及已部署的同一份 build
中,確定性地選擇純離線、強制連線或正式自動降級路徑。E2E 若以啟動時序或暫時攔截網路
來推測狀態,可能在瀏覽器已完成連線後才斷網,形成競態與假陰性。
考慮過的選項¶
- 以不同 build/environment 檔分離離線與連線測試:容易讓測試產物偏離正式產物,棄。
- 只靠瀏覽器網路攔截與連線時序:不能保證 network assembly 尚未啟動,棄。
- 同一份 build 以不持久化的 URL query 明示 launch policy(採納)。
決定¶
?runtime=local強制不啟動 network assembly,只建立 storage-onlylocal-ready。?runtime=network要求 network assembly 成功;失敗時登入嘗試 fail-closed,不自動假裝 online,也不降級成測試成功。- 省略 query 或
?runtime=auto是正式預設;連線失敗時依既有能力模型安全降級local-ready。 - 未知值、重複的
runtime參數或內部 policy 名稱一律視為auto。 - runtime query 只控制本次啟動,不寫入玩家設定、IndexedDB 或其他持久資料,也不得改變 D-20260716-01 的能力閘。
後果與影響¶
本機與已上線網站可使用完全相同的 production 行為驗證純離線、強制連線及正式自動降級;
E2E 不再依賴瀏覽器與 transport 的競速。公開 URL 多出測試控制面,因此所有非公開 policy
值均 fail-safe 回到 auto,且不得成為繞過線上能力閘的入口。操作權威見
部署資訊.md。