歷史記錄 · 2026-06-04¶
重大重構里程碑¶
2026-06-04~05 ─ project-resources → 企劃 新舊脫鉤大重構(29 模組 + 3 資料夾慣例 + 去重 audit)¶
決策檔:D-20260604-01、D-20260604-02、D-20260604-03、D-20260604-04、D-20260604-05
動機:[D5(2026-05-31)] 定 企劃/ = canon、project-resources/ = 純歷史,但 canon 內散落 ~120+ 裸指標(詳見 xxx/spec.md)指向已過時的 project-resources 模組 spec(如 protocol_version: number 對 canon 的 string)。本批切斷 canon 對 stale project-resources 的依賴:實作細節遷入新 程式架構/<module>.md(英文檔名、蒸餾 + reconcile)、領域設計留 canon 主檔、re-point 所有指標。一次成立、不因後續規則變動重做。
遷移落點(29 模組):
| 項 | 變動 | 位置 |
|---|---|---|
27 模組 → 程式架構/ |
versioning / ledger / economy / ugc-fork / anti-piracy / dmca / reputation / ugc-rating / moderation / key-manager / security / network-sync / matchmaking / i18n / seo / peer-discovery / pinning-service / signaling-service / pwa-offline / interfaces / testing / physics-engine / spectator / chat-system / settings / builtin-assets / system-constants → 程式架構/*.md(英文檔名對應 src/);各 canon 主檔 re-point、程式架構 §9.1 索引表 |
程式架構/ + 各 canon |
ui-mockups → 美術資源/ |
design/art 性質、非 src/ runtime → 建 美術資源/ 資料夾(繁中檔名)放 設計系統 / 前端技術策略 / 頁面線框 / UGC卡片;HUD 細化救進 賽內機制 §2.4;binary 美術資產複製 final 27MB 至 美術資源/visual-mockups/、原始 + WIP 留 project-resources |
美術資源.md + 美術資源/ |
audio-system → 其他/(待定) |
音樂相關待定(總覽 §82 / 其他 §2),不進 程式架構/ → 建 其他/ 資料夾 + 其他/audio-system.md |
其他.md §2、總覽 §82 |
| physics-engine / system-constants 全 defer | physics-engine.md 只留引擎管線、算式 defer 算式表 §1–§11;system-constants.md 只留套件結構、值 defer 程式參數表(兩者早已是當前權威) | physics-engine.md、system-constants.md |
| ⭐ 3 資料夾新慣例 | 程式架構/ = 已拍板 src/ 實作(英文檔名、程式架構.md 索引);美術資源/ = canon 細化同名資料夾(繁中、美術資源.md 索引);其他/ = 待定/未拍板模組(其他.md 索引) | — |
脫鉤期間裁決(新決定,前述里程碑未涵蓋):
| 裁決 | 內容 | 位置 |
|---|---|---|
| Checkpoint 三同名拆開 | 賽道 Checkpoint_<n>(防抄近路)/ 賽內快照 RaceSnapshotEvent(在場 ⌊N/2⌋+1、physics checksum、ephemeral、每 60s)/ 帳本檢查點 LedgerCheckpointEvent(治理 ⌊2N/3⌋+1、狀態整併·同步·裁剪);兩 quorum 各管各皆正確;跨 ~14 檔正名(CHECKPOINT_* 常數沿用 = 賽內快照) |
資料系統 / ledger.md / 賽內機制 / 程式參數表 等 |
| 退役統一 | 狀態純 derive 吃「自動條件 + 手動 UgcMaintenanceEvent reason:'retire'」;UgcRetireEvent 折進 maintenance;違規走 blacklist |
資料系統 §3/§13、ledger.md §7 |
| fork × 退役分潤正交 | 分潤跟血緣、與可用性狀態(黑名單/退役/unusable/yanked)正交;只需 forkLineage 不需 GLB pin | 版權 §3.4、衍生流程 §8 |
| C1 黑名單純仲裁 | 廢「加權檢舉數 ≥5 直接黑名單」快速路徑 + 舊 reportWeight(0.5/1/1.5);所有檢舉走隨機抽合格仲裁者 → 加權(log10(rep+10))投票 >60% |
信譽系統 §2.4、moderation.md |
| C2 高評分里程碑 per-CID | 每個 voteCount ≥10 且 ≥4.5★ 的 UGC 作者各 +20(awardedCids 去重),取代「累計 5 個」 | 信譽系統 §1/§2.2/§3.4、ugc-rating.md |
| C3 隱式評分整數查表 | 算式表 §19 浮點 min(4.8, 3.0+log10(usage+1)×0.6) → implicitRatingX100 整數查表(0→300 / 1-9→360 / 10-99→420 / 100-999→480 / 封頂 480),消除跨硬體浮點 consensus 不一致 |
算式表 §19 |
| SignedPayload nonce 安全修正 | 簽章涵蓋 payload + timestamp + nonce + signer(原只簽 payload = 可改時戳重放);驗章 ±30s + nonce set 防重放 |
資安規範 §3.4、key-manager.md §9 |
| 配對窗口定案 | ±50 / +10每秒 / ±500 → ±5 / +5每10秒 / ±30(displayRating = μ-3σ 尺度;舊值會秒配所有人) |
賽內機制 §1.2、程式參數表 §6、matchmaking.md |
| 結算簽章協議歸位 | 比賽結算簽章交換協議(SettlementProposal/Signature/Reject/Takeover + buildRaceResultCandidate + reviewAndSignRaceResult + pubsub topic)從 matchmaking 夾帶移到正確的家 ledger.md §5(屬 RaceResultEvent 共識) | ledger.md §5 |
| i18n 複數改 ICU | 手寫 .zero/.one/.other → ICU MessageFormat(語系清單 §8 口徑) |
i18n.md、語系清單 §8 |
| 舊專案名汰除 | mini-4wd → open4wd / open-4wd(bootstrap·relay·repo·CACHE_NAME·idb 名) |
多檔 |
| 廢棄資訊鐵則 | 權威檔(程式架構/ + 所有 spec)絕不留 reconcile/已移除/舊→新/日期等廢棄敘述;歸本檔。2026-06-05 全 21 程式架構/ 檔掃淨 | 全 程式架構/ |
結構慣例(隨脫鉤確立):
| 項 | 內容 | 位置 |
|---|---|---|
| header「對應模組」連實作 | 8 檔 header「對應模組 xxx/」→ 連 [程式架構/xxx.md] |
信譽系統 / 版權 / 部署資訊 / 資安規範 / 語系清單 / 觀戰流程 / 經濟系統 / 程式架構 |
| 流程 §2 diagrams 三分流 | 技術流程圖 → 程式架構/程式流程/(13 檔);業務/遊戲流程留現有 流程/*.md(內容完整、不另遷);混合模組(matchmaking/ugc-fork/spectator/chat-system)拆兩邊;§2 已 0 個 project-resources 指標 |
流程 §2、程式架構/程式流程/ |
去重 audit + 漂移修正(2026-06-05;脫鉤搬遷每棒只查 footprint + 設計主檔、未比對流程/*.md → 產生重複且部分漂移;4 agent 全面 audit):
| 組 | 項 | 變動 |
|---|---|---|
| A 漂移 | 配對窗口 / 重連窗口 | 流程/配對.md 仍舊值 ±50/+10/±500 → 修正 + 砍廢棄 +100 boost;matchmaking.md 重連「30 秒」→ 15 秒 |
| A 漂移 | weapon_trigger → weapon |
8-skill enum 統一(interfaces / ugc-fork / 賽內機制 §2.4 / 頁面線框) |
| A 漂移 | fork tie-break / 版本欄位數 | ledger.md「timestamp 先到」→ lexicographic-checksum;遊戲機制「5 欄位」→ 6 欄位 |
| A 漂移 | 標準化步驟 / CSP / SignedPayload / 快取表分歧 | 版權 §5.2.1(6 步 vs anti-piracy 8)/ 資安 §4 CSP / §3.4 / 部署 §6.2 → trim 成摘要 + 引用權威 |
| B 去重 | 公式類 | Bayesian / 隱式查表 / 評分權重 / derive / voteWeight → 留 算式表 §16–19 權威,impl 引用 |
| B 去重 | 規則 / 介面 / 常數 | CVE 表→資安 §9;仲裁門檻→信譽系統 §8.1;LedgerApi / I18nService / checkCompatibility / HREFLANG → 留 impl / 程式參數表 §16 權威、canon 引用 |
| minor | ROLLBACK_FRAME_BUFFER vs StateBuffer |
非衝突(回滾視窗 7-10 ≠ 緩衝容量 12);程式參數表 §8 加具名 STATE_BUFFER_MAX_FRAMES=12 + 不變式 ≥ 視窗 |
過程 artifact:完整脫鉤進度 / 每棒 reconcile 細節留在維護者本機工作筆記(未入 repo)。Q2③(頻繁斷線信譽懲罰) 仍暫緩(見 2026-06-02 條目)。
2026-06-04 ─ UGC機制 審視(標籤翻正 + Fork ancestors 瘦身 + AI mesh 工作流搬位)¶
決策檔:D-20260604-06
動機:UGC機制.md 逐題審視(8 題)。主線:該檔多處把零件層 / 通用規則誤標為「整車」(屬組裝、不在上鏈範圍)或塞進「場地專屬」(實為零件 / 場地通用)。Q1/Q2/Q4/Q5/Q7 為 2026-06-02 批次;Q6/Q8 為 2026-06-04 批次;Q3 純解釋(watertight 作用)無 edit。
| 項 | 變動 | 位置 |
|---|---|---|
| Stage 1 不擋場地 tris | 移除「整車場景超過 TRACK_TRIANGLE_COUNT_MAX 拒收」(錯標 + 場地走自動 decimate + Stage 3 檢核當後盾,Stage 1 不必擋) | UGC機制 §2.2、UGC上傳流程 §3 |
| 禁止材質剃除而非拒收 | Stage 1 自動剃除違規材質指派 → 變未指派,Stage 2 重指派;Stage 3 仍嚴格拒收殘留 | UGC機制 §2.2 / §4.2、UGC上傳流程 §3 |
| §3.1 拆幾何即算 vs 材質後算 | volume / bbox / surface_area / watertight / decimate 不依賴材質可先算;mass_g / centroid 依賴材質密度(reactive 重算) | UGC機制 §3.1 |
| 移除組裝層約束誤植 | §4.2 刪「整車質量 50–500g / 整車 AABB 250×130×100 / 武器無 chip 但裝載」三列(屬 loadout 層、車輛組裝.md 檢核);mass_g 標籤改「部件質量」;保留「單一零件內多材質密度比 50:1」 | UGC機制 §4.2、UGC上傳流程 §4 |
| ≥1 mesh + 安全性 改通用 | 「至少 1 mesh」「無可執行內容 / 外連 URL」從場地專屬 §9.1 搬到通用 §2.2(零件原本缺這兩道,是漏洞) | UGC機制 §2.2 / §9.1、UGC上傳流程 §3 |
| Fork ancestors 瘦身(Q6) | per-record ancestors 由全鏈收斂為至多 2 筆 = [parent, grandparent](= royalty maxDepth − 1,本人即 record 自身);更深血緣靠 parent 邊逐跳上溯重建(ForkTreeDerivedState) |
UGC機制 §5.2 / §5.3 / §5.4、版權 §3.1 / §4、衍生流程 §1 / §2 / §3、資料系統 §4 |
| 移除 FORK_DEPTH_MAX(Q6) | ancestors 不再隨鏈深增長 → 無儲存膨脹;深鏈受每次 fork 燒幣(50 / 500)經濟設限,毋須深度上限 | 程式參數表 §3、UGC機制 §5.3、版權 §4、衍生流程 §3 |
| AI 單一 mesh 工作流搬位(Q8) | §9.2.1(K-means 切割 / 材質指派)→ 新 §3.7「零件 / 場地共用」、§9.2.2(launch 武器三路線)→ 新 §3.8「零件」;未指派 cluster 預設材質由固定 asphalt 一般化為「該 scope 預設(場地 asphalt / 零件依 type)」;§9.2 留指標、「三階段」筆誤改「四階段」 | UGC機制 §3.7 / §3.8 / §9.2 |
Q6 caveat:治理若調
revShare.maxDepth > 3,舊 record 的曾祖以上層靠parent邊回推補齊即可。 Q2③(頻繁斷線信譽懲罰)暫緩:見 2026-06-02 斷線結算條目,待信譽系統審查時 reconcile。