歷史記錄 · 2026-07-25¶
重大重構里程碑¶
2026-07-25 ─ 版本後繼邏輯核與第一道破壞牆啟用門檻¶
決策檔:D-20260725-01
- 版本後繼 descriptor contract、fold guard、atomic reducer、
successorEdges/lineageNodeByCid與 node-keyed royalty/評分/使用量先以測試 descriptor 落地;舊 fork ancestors 會先解析到同一血緣節點,不新增 fork 層。 - production descriptor catalog 保持空,
asset-version-upgrade仍不在事件 allowlist;第一道真實破壞牆必須同批啟用 descriptor/雙向 migration、live content validation、persistence admission、replay/checkpoint/protocol 相容性與測試,不得只打開 allowlist。 - 可序列化 metadata 成為單一權威並生成公開 manifest,migration 函式留在 TypeScript binding;公開凍結前所有 baseline 版本維持 1,不製造不存在的 checkpoint v2/v3 歷史。
2026-07-25 ─ 文檔工程:程式參數表常數硬比對升為主 repo 硬閘(項 4 方案 C)¶
決策檔:D-20260725-08
- 程式參數表 ↔
@open4wd/system-constants的值比對從工作區報告升為主 repocheck:constants硬閘(移植同一比對器、結果一致:可比 246 列/一致 206/drift 0);硬閘只吃值不一致(drift 紅燈),覆蓋缺口(表有碼無 19/碼有表無 44/無法自動比對 21)只報告不紅、回填另議。 - 材質表側
check:materials(496 欄)早已為硬閘;兩張表的常數面自此由機器接管 drift。 - 方案 C(雙手編+CI 硬比對紅燈先行)落實:改共用常數若漏改另一側,主 repo 驗證鏈即紅。
2026-07-25 ─ 文檔工程:歷史記錄按年分檔(7.5;landing 索引+歷史記錄/2026.md)¶
決策檔:D-20260725-07
- 歷史記錄.md 第 1 節重大重構里程碑(174 條、約 2,500 行)拆入本檔;landing 瘦身為年度索引表+第 2–4 節附錄(廢除欄位/deprecated 規格/資料夾對齊留原處)。
- 拆檔不斷鏈:決策檔靠
D-YYYYMMDD-nnID 互引(非行錨點)、sources只驗非空;check:decisions改掃 landing+歷史記錄/*.md,check:frontmatter加「歷史記錄/→history」資料夾規則。 - 制度先行:2026 為唯一年份、此刻分檔效益為零,但立好結構=2027 起「新增一檔+索引加一列」零摩擦;作為開源範例一開始就完整。
2026-07-25 ─ 文檔工程:方法論頁上線(文檔工程.md,隱性紀律顯性化+貢獻者指南)¶
- 新增 repo 根
文檔工程.md(type: meta)=把散落全 corpus 的文檔紀律寫成一頁:單一權威原則+映射表、現況-歷史分離、圖表規範(指向 流程.md §3 不重複)、ADR 兩層制、機器執法清單、用語鐵則、貢獻者指南;本 repo 同時作為可複用的開源文檔工程範例(ADR+MkDocs〔規劃中〕+graphify 三件套)。 - 每條紀律都指向真實存在的機器看守或權威檔(如單一權威→check:refs/check:rules/check:materials、ADR→check:decisions、用語→o4-terms);用語鐵則節誠實區分「機器看守」(黑名單/封鎖清單、禁 MVP/v1.x)與「約定未機器化」(晶片、衍生、Match/Round/Race 三層)。
- 導覽入口:
type: meta根層檔由pnpm docs:generate自動收入 總覽.md 跨切面區塊與 docs-map;README 貢獻節加指向句。 - 命名採描述性
文檔工程.md(「北極星」定位保留於頁內 H1 與計畫代號層);specs 九件套 exit 0。 - 同輪新增英文對外頁 ABOUT.en.md(
type: meta、authority指向 文檔工程.md=宣告非權威摘要):專案定位、corpus 資料夾分類學、方法論五點摘譯、導航指引;corpus 本身不翻譯,此頁僅放大範例的國際觸及。全英文本體無 CJK=天然通過中英排版 lint。
2026-07-25 ─ 文檔工程:規則→測試追溯上線(主 repo 346 處標註+check:trace;覆蓋 178/198)¶
決策檔:D-20260725-06
- 主 repo 測試側完成三域規則 ID 標註:測試上方一行
// 驗證規則:〔PREFIX-R-nnn〕(與 specs 主錨同括號形、共用 regex),共 346 處、覆蓋 178/198 條規則;對映採嚴格判準(斷言在規則被違反時會 FAIL 才算覆蓋、寧缺勿濫)。 - 主 repo 新增
check:trace(讀本 reporules.json+掃全部*.spec.ts):ghost ID(registry 不存在的標註)硬紅、缺測列報不紅=report-mode 先行;與check:materials同為 sibling 跨 repo 本機檢查。 - 首輪缺測 20 條落帳(工作區內部文件《規則測試追溯報告》、未入 repo):ECON 8/LEDGER 5/MOD 7——多為判別場景缺席(如 MOD-R-041
length!==7拒收分支零覆蓋、MOD-R-029 抽籤點信譽快照不可區分);其中 LEDGER-R-005+ECON-R-023 同指版本後繼→血緣 royalty 映射「無實作亦無測試」=疑似實作缺口、另案追蹤。 - 主 repo CONTRIBUTING 補「共識規則追溯」節=新共識行為需掛規則 ID 標註、跑
check:trace確認無 ghost。
2026-07-25 ─ 首次公開域名與 private 期間部署確認¶
決策檔:D-20260725-02
- private 期間不發布 GitHub Pages;第一個公開 production origin 直接使用
https://open4wd.org/,正式 build 走 root base path,xjustloveux.github.io/open-4wd/只保留為顯式 preview 與災難回復 hosting target、不是 canonical origin。 - 首次公開只執行 DNS/TLS、PWA scope、canonical URL、deep link、
/version.json與部署服務 smoke,不執行 30 天 banner、major 過渡與 301 herding——尚不存在舊 public client、搜尋索引或 origin-bound 玩家資料,遷移條件不成立。 - 域名遷移機制(D-20260704-03)保持原樣,繼續作為未來已有公開 origin 時的遷移裁決;部署組態不再需要
CUSTOM_DOMAIN_FALLBACK。
2026-07-25 ─ checkpoint signer rotation 與 pinning 完整接線 review¶
決策檔:D-20260725-03
- 完整 review 揪出本地 checkpoint 三法與
full-refold會誤讀本代 frontier 折疊後的 signer set,使 signer rotation 形成自我授權(新成員可授權納入自己的事件);改為proposeCheckpoint/覆核/finalize/full-refold/quorum-follow一律以前一個已採納 checkpoint state 的 signer set 驗證本代,第一個 checkpoint 讀 genesis。 - 本代 derived state 內的新 signer set 只授權下一個 checkpoint、不得回頭授權本代,與
ConfigUpdateEvent的prevEpoch治理信任邊界對齊。 - pinning 啟動時把固定排序的
GOVERNANCE_SIGNERS寫入 genesis、runtime 明確切換為quorum-follow;完成 re-vendor 與「來源端包含 pinning replica 未知 reducer」的領域事件窗 E2E,解除 D-20260721-01 記錄的純 core 過渡限制。
2026-07-25 ─ 正式上線、本機離線與連線測試標準確認¶
決策檔:D-20260725-04
- 同一份正式 build 以不持久化的 URL query 明示啟動策略:
?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 的能力閘;E2E 自此不必靠瀏覽器網路攔截與連線時序賽跑,避免「瀏覽器已連上才斷網」的競態假陰性。
2026-07-25 ─ graphify-out 跨 repo 關聯與 Prettier 排除複核¶
決策檔:D-20260725-05
- 複核焦點是能否把
graphify-out/整個加進.prettierignore:可以,但那只界定 formatter 邊界,不改動版控與輸入政策。 .gitignore繼續逐項保留 semantic cache、manifest.json與 labels,不得因 Prettier 排除而改成全目錄忽略——這是 clone 後零 token 重建的跨 repo 契約;.graphifyignore只描述 Graphify 的輸入白名單,不承擔輸出持久化政策。- 已版控的 Graphify semantic cache 與 metadata 不刪除、不重新格式化,其內容更新仍由 Graphify 自身產生與驗證;日後要改變 semantic cache 的持久化政策必須另立裁決,不能藉調整任一 ignore 檔間接達成。