歷史記錄 · 2026-06-27¶
重大重構里程碑¶
2026-06-27 ─ 變更操作流程定案 + 材質廢止模型重訂(governance-ops-flow 7 題結案)¶
背景:承 2026-06-12 材質 append-only(A7)衍生的「git × 治理多簽 × 推版」操作面三連問,使用者裁定獨立釐清。7 題分四組裁決執行;材質廢止模型經使用者提案 + 評估後簡化(取代 06-12 的兩段式)。
材質廢止模型重訂(取代 06-12「公版先換材質」兩段式):
| 項 | 變動 | 位置 |
|---|---|---|
| ⭐ 廢止不再強制換公版 | 移除「若 builtin 用到 → 先走公版變更」前置;公版用到廢止材質亦變絕版品、照常可玩;清理公版改為獨立可選的公版變更(非廢止前置)。廢止 = 純 client minor、不 bump builtin_assets、不擋配對 |
材質表 §11.1 |
| ⭐ 絕版品行為(新 §11.3) | 含廢止材質的已上鏈舊資產(UGC + 公版)= 絕版品:永久可玩、永不 unusable(≠ B 軸);決定性安全(不碰 const)+ 配對安全(不 bump builtin_assets);房內絕版材質揭露軟提示(玩家件或場地、平衡揭露非降版、續玩 = 認同公平、沿用開賽前無罰退出);fork 絕版品須 Stage 2 換材質才能上鏈;可逆(移出清單即復用、零遷移;復用決策如投票屬外部平台、不在本專案);情境路由(數值不合理 / 引擎調參 → 改值 major;不適遊戲性 → 廢止 minor) |
材質表 §11.3 + 版本規範 §21 註 + 程式參數表 §3 |
| 提示不點名材質 / 理由 | 避免 i18n 膨脹;廢止理由改集中於額外說明文檔(待建、歸屬未定) | 其他.md §9 |
governance-ops-flow 7 題裁決:
| 題 | 裁決 | 位置 |
|---|---|---|
| ① 權威歸屬 | 集中到 升版.md §8(git × PR × 治理 × 上鏈);材質表 / builtin-assets / 治理事件流程 留指標回此 | 升版流程 §8 |
| ② branch protection 明文化 | master 受保護、禁直推、變更走 PR、CI 閘 merge;全 corpus 統一 master(修 builtin-assets §7 誤寫的 main) |
升版流程 §8.2 |
| ③ 簽章工具 | 僅定介面層(比照 economy proposeUpdate)、UI / CLI 留實作 |
升版流程 §8.3 |
| ④ 事件 ↔ PR 互引 | 「建議」升格為規範(rationale 必引 PR / commit、PR 必附事件 CID) | 升版流程 §8.5 |
| ⑤ 上線前 / 後雙軌 | 正式分節:上線前純 git、上線後混合流程 | 升版流程 §8.4 |
| ⑥ 材質廢止要不要治理 | 不走治理(採使用者提案);理由:僅上傳時驗證、零賽中足跡、determinism / 配對皆安全 | 材質表 §11 + 治理事件流程 §6 |
| ⑦ §6 對照表盤點 | 補材質廢止(client minor)+ SANITIZE_WORKER / TEXT_BLACKLIST(protocol major)列;版本規範 §4 path 表補 src/builtin/(major) |
治理事件流程 §6 + 版本規範 §4 |
勘誤(取代 06-12 同主題敘述):06-12「另:」段的「merge 進 main」應為 master;「建議事件 rationale↔PR 互引」已升格規範;「公版若用到 → 先走公版變更」已移除(改絕版品模型)。
同日後續追加 ─ 公版治理移除(混合型取消):使用者進一步指出公版在 git 不在鏈、應可直接推版。評估確認鏈上 BuiltinAssetsUpdateEvent 不 gate 值 / 配對 / 部署(一致性實由 peer 端 builtin-assets CID 比對 + builtin_assets_version 配對閘保證、與事件無關)、純審計裝飾且與 git 歷史重複,且與物理常數 / 材質數值(同 build-time const、純 client 發版、不走治理)不一致 → 公版資產變更改純 client 發版(major bump)、移除 BuiltinAssetsUpdateEvent、消掉「混合型」。CI 機械檢核(spec↔const / GLB schema / src/builtin/ 必 bump)取代人工授權的機械部分、「平衡好不好」歸 PR review(同物理常數標準)。落檔:升版流程 §8.3(混合順序 → 「公版 = 純 client 發版」、§8.4 雙軌併入 §8.1、刪 §8.5 事件互引)+ builtin-assets §7(「治理與維護」→「維護」、改寫 PR+CI、§1/§4/§5 去 signer 校準框架、§8 移除 ledger 事件列)+ 治理事件流程 §6(公版列 ❌治理 / ✅client major)+ 程式流程/ledger.md(移除 BuiltinAssetsUpdateEvent 事件型別)+ 經濟系統 §326 / 程式架構 §283 角色去「治理」。模型收斂兩軌:治理(economy_config 鏈上 runtime)/ client 發版(其餘全部、含公版)。governance-ops-flow item ①(§8 子節結構)與 item 1(公版事件 quorum)連帶更新 / 消失。
同日後續追加 ─ ForkDetectionConfig 治理 wiring + 鏈上配置評估:查證「移除公版後還有哪些混合型」→ 無(兩軌 disjoint)。順帶發現 ForkDetectionConfig 標「治理可調」但未 wired 進治理系統 → 補 wiring:折入 EconomyConfig.forkDetection(沿用 ConfigUpdateEvent + economy_config_version + checkCompatibility,免新增第 7 版本欄位;EconomyConfig 實為「治理 config」傘)。落檔:治理事件流程 §2.5 + §6(門檻 → ConfigUpdateEvent / 演算法 fingerprintVersion → derive_logic 兩列)+ 程式參數表 §17.1/§17.2/§17.3 + ugc-fork §4 repoint(門檻值權威留 ugc-fork)。修正升版流程 §8.1「economy_config 是唯一治理軌」過度宣稱(folded 後 = economy_config 單一傘含 forkDetection 群組)。鏈上配置評估結論:revShare / newcomer / reputation / antiAbuse / signer set / forkDetection 治理皆合適、KEEP;唯一 move-back 候選 = racePrize(settlement timing = 結算協議時序、偏 protocol 非經濟政策)—— 待使用者裁。
2026-06-28 續 ─ racePrize timing move-back(方案 A)+ 反向檢查:settlement_timeout / takeover_wait(consensus-critical 結算協議時序、非經濟政策)從 economy_config.racePrize 移出 → protocol/gameplay 常數 SETTLEMENT_TIMEOUT_SEC(30) / SETTLEMENT_TAKEOVER_WAIT_SEC(5)(程式參數表 §7;改它 = protocol / client 發版、不走治理)。落檔:程式參數表 §17 移除 racePrize 群組 + §7 加兩常數、economy.md race_prize 去兩 timing 欄(經濟欄 base/multipliers/combo 留治理)、比賽結算流程 §8.2 ×4 + matchmaking 程式流程 + system-constants §58 + 升版流程 §8.1 同步改名 / 去 racePrize。反向檢查(有沒有該移上鏈的)結論 = 無 client→治理候選:經濟政策值(upload_costs 50/500/0、race_prize base/multipliers、creator_royalty base_per_use、month_soft_cap、rank_multipliers)已是治理(economy.md EconomyConfig、runtime 讀、非 client 常數)。🔶但撈出 pre-existing 漂移:EconomyConfig 介面拆在兩檔且不重疊 ── 程式參數表 §17(政策群組 revShare/newcomer/reputation/antiAbuse/forkDetection)vs economy.md §205(經濟值群組 month_soft_cap/race_prize/creator_royalty/upload_costs);治理事件流程 §2 也只列前半。✅ reconcile 已執行(同日):程式參數表 §17.1 擴為完整 EconomyConfig(政策群組 + 經濟值群組 month_soft_cap / race_prize / creator_royalty / upload_costs / expansion_costs / sponsorship / hot_race_quarters / ugc_lifecycle)+ §17.2 經濟值預設塊 + §17.3 標單一 authority、釐清 epoch = economy_config_version;economy.md §8 移除重複 interface EconomyConfig 改指 §17;治理事件流程 §2.6 補經濟值群組可治理清單。EconomyConfig 單一 authority = 程式參數表 §17。