跳轉到

D-20260809-03|Bootstrap 清單權威收斂

背景與驅動力

D-20260705-06 曾建立主 repo bootstrap/list.txt 與執行期 GitHub raw 讀取語意;該部署模型已由 D-20260706-02 整體取代,但未接線的檔案仍留在 repo。 其後 D-20260803-06 已建立五份 community registry、玩家來源選擇、快取與 build snapshot 降級鏈,形成可運作的現行 bootstrap 發現模型。

同時保留舊文字清單會留下兩個格式與兩條權威路徑,而且舊檔目前沒有任何 production、build 或 deployment consumer。需要把實體 artifact 與現行 canon 收斂,避免日後誤接回已淘汰的 raw 讀取路徑。

考慮過的選項

  • 補接 bootstrap/list.txt 的 raw URL 讀取:會繞過 registry schema、玩家模式、快取與 build snapshot,形成第二套發現協定,否決。
  • 保留未接線檔案作歷史提示:歷史理由應留在 ADR,不應由貌似可用的 production artifact 承擔,否決。
  • 以 community registry 作唯一專案隨附來源並刪除舊檔:沿用既有完整消費鏈,採納。

決定

  • public/community/bootstrap.json 是專案隨附 bootstrap listing 的唯一檔案權威;其 schema、 loader、玩家選擇、最後成功快取與 build snapshot 語意維持 D-20260803-06。
  • 玩家手動 entry 與已接受的 session multiaddr 仍是獨立、較高優先的使用者授權來源,不構成 第二份專案清單。
  • 移除未接線的 bootstrap/list.txt,不建立 raw URL compatibility shim。舊檔從未成為已發布 client 契約,現階段不需要 migration 或 dual-read。
  • D-20260705-06 本文保留為歷史;本決策不改寫其既有 superseded 鏈,只消除後續仍殘留的實體 artifact 與語意歧義。

後果與影響

Bootstrap provider 的專案收錄、驗證、快取與離線降級只剩一條可測試路徑。社群更新改動 bootstrap.json,玩家仍可用 manual-only/offline 模式控制是否使用 registry;刪除舊檔不改變 現有 runtime 行為,並降低日後把已淘汰 raw GitHub 讀取重新接入的風險。