跳轉到

Guidant AI v1.24.1 Release Note

項目 內容
版本 1.24.1(BUG 版號;主軸=FR-126 資安修正收尾——前門 CSP 改正式擋、出貨公鑰只認正式簽發站、容器加固)
發布日期 2026-10-04
上一版本 1.24.0(2026-10-04)
涵蓋區間 BE v1.24.0..本版進版 commit;FE v1.24.0..本版進版 commit
涵蓋需求 FR-126 資安測案擴充與修正(母卡 CM-2384):CM-2460/2461/2464/2465/2466
規模 jedi-license-runtime 1.1.4→1.1.5;主線與套件 migration 皆無新增;服務組成不變
適用部署 先升 190 e2e 專機跑部署檢查;STG/POC 待決策者放行
部署性質 第一個由正式簽發站(189)簽章出包的版本,封包守門驗 PROD 鑰自然通過;配套檔案 Agent 1.3.0

為什麼是 BUG 版號:全是資安修正收尾,無新功能、無 DB 變更;行為變化(CSP 擋行內樣式、只認一把簽發鑰)都是把既有要求做到位。


0. 發版前回歸 gate

本版不在發版前跑 site-regression。把關改在部署 190 之後跑部署檢查(deploy-checks.sh),API 層沿用 CM-2463 的全套結果(本版無 API 行為變更),決策者已知。

1. 概述

  • 前門 CSP 改正式擋:1.24.0 以 Report-Only 觀察後,違規來源只剩 PrimeVue 提示框與編輯器貼上;兩處修掉後切為正式 Content-Security-Policy,策略不含 unsafe-inline 與 *。
  • 授權與完整性簽章只認正式簽發站:出貨程式內建的公鑰表只剩 189 簽發站一把(標 PROD);授權檔與防竄改 manifest 都由它簽。
  • 容器加固:api/socketio/worker/sandbox 四個產品容器 cap_drop: ALL、no-new-privileges,並加記憶體與行程數上限。
  • 開通精靈:找回設定碼的指令字樣改為實際 CLI 名 sudo guidantai setup-token。

2. 修正清單

卡號 修了什麼
CM-2464 落地版前門四處 CSP 由 Report-Only 改正式擋;PrimeVue 提示框的行內樣式改走 CSSOM;公告等 HTML 內容的 style 屬性在解析前改名,「對齊」轉為 class、其餘樣式捨棄;編輯器貼上同樣處理
CM-2465 jedi-license-runtime 1.1.5:公鑰表只留 189 正式簽發鑰(kid f3b562a6d9755527);build 機送簽站改 189
CM-2466 四個產品容器加固:cap_drop: ALL+no-new-privileges;三個 BE 容器只保留 entrypoint 降權所需四項 capability;新增記憶體/行程上限
CM-2460 CI 出包:smoke 遇 STG 落後本版 migration 時自動改連「STG 複本+本版 migration」臨時庫;build-init 改等 build-be 攤平完成
— 開通精靈「找回設定碼」指令字樣 guidant → guidantai

3. 升級須知(必讀)

  1. 前門 CSP 改正式擋。 既有公告等 HTML 內容若含行內樣式,顯示時只保留「對齊」(轉成 class),字色、字級等其他行內樣式會被拿掉。內容本身不改,只影響顯示。
  2. 授權檔必須由正式簽發站(189)簽發。 本版程式只認一把簽發鑰;STG 等由舊簽發鑰簽授權的環境,升級前須先從 189 重簽授權並匯入,否則升級後授權顯示「未知的 kid」、進入無照狀態。查目前授權的 kid:授權頁,或資料庫 config.tenant_licenses.kid。
  3. 四個產品容器新增資源上限設定(選填)。 不寫即用預設值,要調照 .env.example 抄:
變數 預設
GUIDANT_API_MEM_LIMIT/GUIDANT_API_PIDS_LIMIT 6g/512
GUIDANT_SOCKETIO_MEM_LIMIT/GUIDANT_SOCKETIO_PIDS_LIMIT 3g/256
GUIDANT_WORKER_MEM_LIMIT/GUIDANT_WORKER_PIDS_LIMIT 3g/256(每一份 worker 各自)

撞頂的症狀是行程被核心 OOM 殺掉、容器重啟、請求 502,log 只見「Killed」。api 記憶體跟 GUNICORN_WORKERS 成正比,調 worker 數要連這裡一起調。 4. 開通精靈找回設定碼:sudo guidantai setup-token。

4. Breaking Changes

  • 舊簽發鑰(DEV/188 STG)簽的授權檔與完整性 manifest 不再被接受(見升級須知 2)。

5. DB Migration

無(主線與套件皆無新增),99-stamp.sql 只隨版號重生 marker。

6. 相依套件版本

套件 v1.24.0 本版
jedi-license-runtime 1.1.4 1.1.5

其餘不變。配套檔案 Agent 1.3.0:以非 root(uid 1000)執行並加固,公鑰表同樣只認 189;升級會自動把資料 volume 擁有者改為 1000,主機板 UUID 改由安裝程式複製進安裝目錄的 host-id/(指紋不變)。

7. 部署順序

  1. 授權:目標環境的授權若非 189 簽,先從 189 重簽並匯入(升級前做,舊版程式同時認得新舊鑰)。
  2. 188 build 機:/opt/guidant-ai-be 跟 main;.env 的 LICENSE_ACTIVATION_SERVER_URL 指 189;出包不帶 --skip-prod-key-check。
  3. 開包驗:版本烙印 1.24.1;完整性 manifest kid=f3b562a6d9755527;FE nginx 為正式 Content-Security-Policy。
  4. 190 e2e:scripts/build/deploy_e2e.sh 1.24.1;檔案 Agent 以 sudo guidant-agent-compose upgrade guidant-agent-compose-1.3.0.tar.gz 升級。
  5. 跑部署檢查;STG(188)/POC(189)等決策者放行,升級有人用的機器先停 api 再 --upgrade。

8. 同期其他改動

  • 資安報告站:需求文件把客戶責任移出量測範圍、修正前後對照頁更新(CM-2462/2463/2467)。
  • 守衛測試:jwt_only 白名單對齊、容器加固形狀守衛。

9. 已知限制與 follow-up(不擋本版)

  • 81 條 SR 中 04.12(問卷共編)待裁改測,仍屬人工驗證。

10. 相關文件

  • Notion:CM-2384(母卡)、CM-2460/2464/2465/2466、發版 CM-2468
  • docs/features/FR-126-2610-security-taxonomy-expansion/
  • 資安報告站 docs/security-report/