歷史記錄 · 2026-07-16¶
重大重構里程碑¶
2026-07-16 ─ 真實 local-ready runtime 與離線能力模型¶
決策檔:D-20260716-01
解鎖成功但 libp2p/OrbitDB/ledger/signaling 無法啟動時,不再顯示假線上資料,而由
App Shell 發布唯一 locked | local-ready | launching | online-ready | reconnecting
狀態與逐能力 flags;頁面不得自行猜測 online。local-ready 可編輯/儲存本機組裝車、
使用本機可讀零件與場地、執行不產生正式結果的本機測試、編輯/匯出本機 UGC;
上鏈、fork、付費操作、多人房、配對、聊天、觀戰與正式參賽全部 fail-closed。登入後
離線沿用同身分的本機資源;連線恢復建立新的 online generation,舊 callback、room、
cache 與 transport 必須 teardown,fake providers 只准 isolated tests。版本仍維持 1,
不為尚未發布的開發資料建立 migration。
2026-07-16 ─ 公開根入口、Race Bench 與靜態多語公告¶
決策檔:D-20260716-02
根路徑 / 定為不讀個人 IndexedDB/車庫/餘額/聲望的公開統一入口,提供遊戲定位、
唯一「開始遊戲」CTA、公告摘要、規範/貢獻/安全入口並可 SSG/SEO;原遊戲工作台移至
/home(Race Bench),登入狀態只改 CTA 目的地,不改公開首頁資料邊界。一般導覽共用
同一結構,只有 race/watch 沉浸路由例外。
公告採 repo 內靜態多語內容,不依賴中心 CMS:public/announcements/<yyyyMMddNN>/
以 manifest 加四語 JSON、同資料夾資產組成;內容使用封閉 block schema,不接受任意
HTML,圖片與附件也由 blocks 引用。標題/摘要/內容留在各語 JSON,單一分類走共用
i18n,tags 使用各語 registry;published/retracted 四語缺一即 build fail。generator
驗 schema、時間、排序、取代/撤回 DAG、路徑、MIME/magic bytes、SVG 安全、尺寸與
總量,再產 catalog、SSG、sitemap 與 bounded service-worker cache;未公開或機密草稿
不得進 public/。無公告時首頁仍保留 50/50 公告區塊,不捏造內容。
2026-07-16 ─ 全遊戲 UI/UX、行動可及性與主題視覺收口¶
核心旅程拆成 onboarding、race/watch、result/rematch、mobile/a11y、UGC/settings 與雙主題視覺四個可獨立驗收批次。助記詞備份改為隨機位置回填驗證;Race/Watch 共用 真實場地 bounds、相機模式與 viewport scene,proxy/fallback 資產仍須可玩;Result 以正式 MatchSummary 呈現並提供安全 rematch。一般頁面共用單一 mobile shell, Race/Watch 保持沉浸;觸控目標至少 44×44、safe area、fixed bar 內容留白、原生表單 label/description/error association 與 320×700/390×844 無水平溢位成為正式門檻。
Default 與「月兔專業工坊」都是正式主題;玩家頁可有 Toon/場景圖,Editor 維持 neutral PBR,主題不得改變 GLB、CID、loadout、物理或配對。場景圖 PNG 母檔留規範美術資料夾, runtime 使用無烘焙文字的 WebP 並逐 role fallback Default。車庫卡片原先曾嘗試把完整 攝影棚/背景連同車體存成快照,因小卡比例怪異且主題重複,最終改採透明組裝車快照, 背景由卡片 CSS/主題提供,不烘入大型車庫背景、HUD 或矩形底板;舊含背景 cache 以 版本化 key 自然失效。不存在預覽時顯示完成的主題化 SVG empty state,不偽裝 loading。