本卡屬 FR-114(母卡 CM-2019)。決策者 2026-09-24 裁:本體→agent→LC 順序;本體 1.21.0b1 已出包並在 190 重裝,決策者一邊測本體、agent 同步打包。agent 帶 CM-2052(控制面通行證)與 CM-2085(時鐘偏差)兩筆,與新雲端協定相容、與舊 1.0.0 不相容,所以要出新版。首腦先派唯讀 agent 盤點 v1.0.0↔fix/security-b1 打包差異,本卡依盤點結果一次做完。

要做什麼(白話)

agent 版號從 1.0.0 改成 1.1.0b1(預發版;1.0.0 已出貨,不改會把 188 上已出貨的產物與包蓋掉)。但 Nuitka 規定產品版號只能是純數字,1.1.0b1 會讓編譯第一步就失敗——本體 CM-2135 已修過同一個坑,agent 腳本沒跟上。修完之後在 188 build 機出原生 tarball 與 compose 包,只出包不部署。本體那輪撞到的四類問題(cffi 守門、.mo、探針看不到編進 binary 的模組、擁有者/權限)盤點確認 agent 都不會擋:agent 不編譯清單是空的且產物禁任何 .py、以 root 執行、沒有翻譯檔。

第一段:改 repo(agent worktree)

worktree:/Users/chouraymond/Projects/Billows/Audit-Manager/evidence-agent/.claude/worktrees/wt-fix-security   branch fix/security-b1(HEAD 9edda49,已推 origin)
① scripts/build/build_agent_release.sh:784  --product-version="${BAKED_VERSION}"
   照 BE compliance-manager-be worktree scripts/build/build_release.sh:330-335 抄:在 step_freeze 算
   NUITKA_PRODUCT_VERSION="$(printf '%s' "$BAKED_VERSION" | grep -oE '^[0-9]+(\.[0-9]+){1,3}')",取不到就 fail,
   --product-version 改用它;info 行印出兩個值。烙印版號、目錄名、/agent-info 仍用完整 1.1.0b1。
② pyproject.toml:3  version = "1.0.0" → "1.1.0b1";bump 後 `poetry check --lock`(不要 poetry lock/update;不一致就停下回報)。
③(順手)scripts/build/smoke_agent_release.sh:584 反向檢查清單的 meta.json 改 agent.json(agent 實際寫的是 core/agent_auth.py:35 的 agent.json);:580-581 註解「私鑰在發請求前就寫下」已不成立(ecdc9f3 後改為雲端接受後才寫,core/enroll.py:196),改成現況一兩行。

第二段:188 出包(第一段 push 後接著做,不必停)

188:ssh [email protected],目錄 /opt/guidant-ai-agent。188 上跑著 STG(本體 1.19.0)——不准動任何容器。本體 build 也在這台:先確認沒有本體 build 在跑(編譯互撞會 linker crash)。

開跑前硬性檢查(全部跑完一次看,任一不過就停下回報)

跑

出包後驗(開包驗,每項照實回報)