母案:FR-063 落地版程式碼保護:Nuitka 編譯打包(Linux 容器版)(CM-1187 FR-063 Nuitka 落地版打包)
所屬子需求:FR-063.1 程式整理(清障與程式碼改造)(CM-1190 FR-063.1 程式整理(清障與程式碼改造))
依賴:無(可先行)。🔴 編譯硬前置——產出被 .2c 編譯腳本串接。
這張卡在做什麼(白話)
程式啟動時,要靠一份「零件接線清單」把各個功能模組接起來才能運作。這份清單原本是每次啟動時去資料夾裡現場掃描原始碼檔案整理出來的。問題是:編譯打包後的成品裡沒有原始碼可掃,清單會是空的——系統照樣開起來、不報任何錯,但使用者一點任何功能就整個壞掉,而且要等第一個人真的去用才會發現。這張卡就是把清單改成「打包時先做好一份、直接帶著走」,同時開發階段完全照舊、不影響任何人的日常開發。
做法(白話)
- 新寫一支產生器:打包流程中執行,把「現場掃描的結果」原封不動存成一份固定清單檔
- 雙軌並行:開發模式照舊現場掃描(新增檔案立即生效,開發體驗不變);出貨成品改讀打包當下凍結好的清單
- 一致性保證:清單不是人手另外維護的第二份名單,而是掃描結果的機械複製——兩軌內容天生一致,不會各自走樣
驗收
- 開發模式行為零變化(現場掃描照舊、加檔即生效)
- 產生器做出的清單可正常載入,且接線結果與現場掃描完全相同(逐項比對零差異)
- 既有測試綠
參考
- 設計文件:docs/features/FR-063-2608-nuitka-packaging/design.md(BE repo,D1–D11 決策表+§5 詳細設計+§6 拆分),§5.2 圖 2 雙軌示意
- 技術細節(工程用)
已完成修正(2026-08-14)
做了什麼(白話)
如上所述,把「啟動時現場掃描」改成雙軌:
- 開發模式(現在大家在用的)完全照舊——照樣現掃,新增一支功能檔就自動生效,開發體驗零變化。