# FR-063 Nuitka 落地版打包 — STATE（living，只描述此刻）

> 最後更新：2026-08-15 晚（第三任首腦收案交棒：**FR-063 全案 Done、image 已出貨 Harbor**；戰線移交 FR-064）
> 本檔為 STATE/LOG 雙檔制的 living 檔；脈絡與決策軌跡見同資料夾 `FR-063-LOG.md`（16 blocks）

## 🧭 Arc 定位（WHY）

產品進入落地版（on-premise）交付階段——**客戶主機上不可再出現一行可讀業務原始碼**。本案把 BE 整包用 Nuitka standalone 編成機器碼 binary、包進 Linux Docker image 交付，與 FR-062 license 執法構成雙保險。

- **三階段戰線第一棒**：FR-063 Nuitka 編譯（本案，母案 CM-1187，✅ Done）→ FR-064 防竄改（母案 CM-1188，**決策者親做中**）→ FR-065 Installer + Windows（母案 CM-1189）。

## 角色定位

本 arc 首腦 session = **分析決策 / 協調者**：只做需求釐清、拍板、拆棒開卡、派工 prompt、驗收抽查；一切實作走 runner session。**本案已收案**——接手本檔者的工作是「戰線延續」（見下方待辦），不是 FR-063 本身。

## 當前狀態（2026-08-15 晚，全案收口）

**FR-063 全數完結**：.1 七卡＋.2 四卡＋.3＋.4＝13 工作卡＋CM-1190/1191 兩子需求卡＋母案 CM-1187 全 Done。場外衍生 CM-1206（socket 共編存檔 bug）一併修復收 Done。

| 項目 | 最終狀態 |
|---|---|
| **交付物** | Harbor `192.168.50.171`（=`harbor.jedicogy.com.tw:8081`，188 /etc/hosts 有映射）專案 `guidant-ai`：`guidant-ai-be:1.14.0`＝`latest`（digest `sha256:bba0449d…`，壓縮 0.55GB） |
| **產物身分** | commit bake `cc7714d2`（含 CM-1206 socket 修復＋CM-1192 全部修正）；業務 `.py`=0；翻譯 en/zh_Hant_TW 均 65/65（100%）；摘要報告範本由 build script 自動收 |
| **起服務** | `docker run … guidant-ai-be:1.14.0`（RUN_MODE=api→8000／socketio→8002，單 image 雙模式）；環境變數清單 `docs/features/FR-063-2608-nuitka-packaging/deployment-env.md` |
| **Build 管線** | `build_release.sh`（穩態 ~12m，dry-run 預檢＋完整性斷言＋i18n --statistics）→ `build_image.sh` → `probe_container.sh`（七項探針，上輪 PASS=11 FAIL=0） |
| Push 狀態 | BE 與 origin 同步至 `2834cf4c`（user 已推）；FE `967e67b` 已推；jedi 無新異動 |

## 關鍵座標

| 素材 | 路徑 |
|---|---|
| 設計文件 | `docs/features/FR-063-2608-nuitka-packaging/design.md`（D1–D11＋§5） |
| 部署環境變數清單 | 同資料夾 `deployment-env.md`（必填/一般/功能模組＋jedi-* 16 項＋掛載表＋交付前 checklist） |
| Notion 母案 CM-1187（Done，末段有全案收口摘要） | https://app.notion.com/p/FR-063-Nuitka-Linux-3bc346da4cd0814582fbdb74185bd1b0 |
| Notion CLI | `python3 scripts/notion_case.py get/status/append/query`；開卡走 API 直打（見 memory reference_notion_case_cli） |
| Build 機 188 | `/opt/guidant_ai`（工作樹乾淨、gitlab SSH 金鑰**可用**——前 runner 說無金鑰是誤判，同步一律 git pull）；Harbor login 已存（certs.d＋insecure-registries 既存設定） |

## 待辦地圖（戰線延續，2026-08-15 晚定稿)

| 序 | 待辦 | 備註 |
|---|---|---|
| 1 | **FR-064 防竄改（CM-1188）** | **決策者親做**，非派工項；首腦待命支援 |
| 2 | **CM-1207（FR-065.0 DB 初始化基線）盤點棒** | 卡已開、派工 prompt 已交 user（LOG Block 16）；盤點棒唯讀可先行；**實作棒等 FR-064 完成後**才派 |
| 3 | FR-065 installer（CM-1189） | 前置＝FR-064＋CM-1207 都齊；FE image／產品 compose 明確劃入此案（2026-08-15 拍板：compose 形狀由 installer 決定，不提早做） |
| 4 | ~~FR-063 文件類收尾~~ ✅ 已完成（2026-08-15 晚，user 下令後 subagent 執行） | SUMMARY `handoff/2026-08-15-FR-063-SUMMARY.md`（0e7368a0）＋analysis 兩篇 `docs/analysis/2026-08-15-nuitka-*.md`（feccea4e）＋memory feedback（起遠端 build 先 pgrep）。spec／使用手冊不觸發（build 基建無終端使用者操作變更） |
| 場外 | CM-1204（手冊下載死碼端點）待排程 | 不掛任何 FR |

## 環境紀律提醒

- 🔴 開發只動 DEV；STG/POC 寫入類異動一律等決策者當次明示。
- 🔴 **部署機程式碼一律走 git pull**（2026-08-15 新立 memory）：禁 rsync/scp/直接編輯；188 金鑰實測可用，無藉口。
- STG 188 兩服務（8000/8002）跑的是**舊產物 `36708b35`**（非最終版），去留／是否換新 image 由決策者定。
- 188 `/opt/guidant_ai/.build/` 有產物與快取（dist 809MB＋nuitka-out）；`~/certs/` 有 proxy.csr/key（8/13 nginx 實驗遺留，已從 repo 樹搬出）。
- `.env.bak` / `.env.bak-20260814-pre1g` 為 user 自留備份，不入版控不清。

## 本 session 遺留待辦（第三任交棒，2026-08-15 晚）

- CM-1207 盤點棒 prompt 已交 user，等 user 擇時派出（新 session）。
- 文件收尾已完結（上表第 4 項）；本機 commits 待 push（f7d8c316→feccea4e 共 4 筆 docs/chore）。
- zh_Hant_TW 翻譯已 100%（死條目 non_existent_key 清除，非漏翻——jedi-system-config 測試 fixture 被 extract 誤收）。
