Guidant AI v1.2.0 Release Note
| 項目 | 內容 |
|---|---|
| 版本 | 1.2.0(功能版號 bump) |
| 發布日期 | 2026-05-26 |
| 上一版本 | 1.1.0(2026-05-23) |
| 涵蓋區間 | 2026-05-24 ~ 2026-05-26(約 3 天密集開發) |
| 規模 | feat 5 / fix 4 / tweak 2;breaking 1 |
| 適用部署 | dev → staging → production |
1. 概述
v1.2.0 完成兩條主線:
SSP OSCAL 結構對齊:把
ssp_system_implementation_items單表拆成符合 OSCAL 規範的 3 個 entity(ssp_components/ssp_leveraged_authorizations/ssp_inventory_items),同步重構 import pipeline(Phase 1+2)、補 MF template defaults 4 張表(Phase 2),並強化 docx import anchor extractor 架構。側邊欄選單分組:39 個扁平選單項目重組為 7 個可展開分組,空分組自動隱藏,選單管理改由 DB 驅動。
本版含 1 個 breaking change(舊
ssp_system_implementation_items 表移除),需配合 2 份 DB
migration SQL。
2. 重點新功能
2.1 SSP OSCAL Alignment Phase 1+2(BREAKING)
為什麼:OSCAL 規範要求
leveraged-authorization(法律層級 ATO
繼承)、component(元件層級)、inventory-item(實例層級)三層分開存放。原來全擠在
ssp_system_implementation_items 單表用
category enum 區分,無法 round-trip 出 OSCAL JSON。
Phase 1 — Foundation:
- DB 新增 3 張表(含
RLS):
oscal.ssp_components、oscal.ssp_leveraged_authorizations、oscal.ssp_inventory_items - jedi-oscal 0.0.19 配套:3 個新 entity / service / repo
- 舊
ssp_system_implementation_items資料遷移 → 新三表後 DROP - 主專案 18 個 caller 全 refactor
Phase 2 — Import Pipeline 對接:
- 新增獨立
import_pipeline/module(warnings / normalizer / bundle_restore / confirm_service) - 3 個 v3 write strategy
- Docx adapter 加
adapt_to_bundle()輸出 v3 - Docx app service 走新 pipeline
Reference:
docs/features/FR-028-2605-ssp-oscal-alignment/、docs/changelog/2026-05-25-feat-ssp-oscal-alignment-phase1-phase2.md
2.2 MF Template Defaults Phase 2
補 4 張 compliance.module_frame_*_defaults 表(per-MF
scoped),根治 template-edit 4 個 tab 讀寫路徑不同源、docx import 反覆
fallback create 累積 orphan SSP 的問題:
module_frame_component_defaultsmodule_frame_leveraged_defaultsmodule_frame_inventory_defaultsmodule_frame_system_characteristic_defaults
啟動 OSCAL 專案時,這 4 個 tab 的 default 值會從 MF template 正確 clone 到新 SSP。
Reference:
docs/changelog/2026-05-26-feat-mf-template-defaults-phase2.md
2.3 Docx Import Anchor Extractor 架構
新 anchor-based extractor 架構取代舊 sequential parser,支援多段落錨點精準定位。主要改善合規框架 docx 的解析準確率。
Reference:
docs/changelog/2026-05-24-feat-docx-import-anchor-extractors.md
2.4 SSP Import Diff Stepper — 4-Key TabView(Bug O)
SSP docx import 預覽頁支援 4 個獨立 key 的 TabView 展開,每個 key 的 current / parsed diff 獨立顯示,解決 batch confirm 後 UI 無法逐項確認的問題。
Reference:
docs/changelog/2026-05-25-feat-bug-o-diff-stepper-4key-tabview.md
2.5 側邊欄選單分組(Menu Group)
public.ui_routes新增 7 個分組節點(專案與任務 / 合規與稽核 / 溝通與互動 / 租戶與組織 / 系統管理 / 系統設定 / AI 與分析)- 2 個原本寫死在 FE 的項目(專案儀表板 / 待辦任務)搬入 DB
- jedi-auth 剪枝邏輯:無可見子節點的分組自動隱藏
- AppMenuItem.vue 加遞迴 sub-menu 渲染
- i18n:zh-tw / en / zh-cn 三語言 group key
Reference:
docs/features/FR-029-2605-menu-group/、docs/changelog/2026-05-26-feat-menu-group-restructure.md
3. 重要修補
| 日期 | 修補主題 |
|---|---|
| 2026-05-25 | Bug P/Q/R — parties form 多組 bug(responsible party 去重 / role link / form 欄位) |
| 2026-05-25 | H6 write strategy residual cleanup — 舊 LA 殘留 ssp_components 清理 |
| 2026-05-26 | AppMenuItem.vue 缺少 sub-menu 遞迴渲染(葉節點不可見、分組節點點擊跳首頁) |
| 2026-05-26 | getUserPagePermissions .flat() 在巢狀 menu
下失效(所有操作按鈕消失) |
4. Breaking Changes
| 主題 | 影響 |
|---|---|
oscal.ssp_system_implementation_items 表移除 |
資料已遷移到 ssp_components /
ssp_leveraged_authorizations /
ssp_inventory_items 三表;所有直接讀舊表的 query
需改為讀新表 |
5. DB Migration 需求
部署前依序執行兩份 SQL,帳號
cmmgr:
# 1. SSP OSCAL alignment + MF defaults(schema 建表 + 資料遷移 + 舊表 DROP)
psql -h <DB_HOST> -p <DB_PORT> -U cmmgr -d <DB_NAME> \
-f scripts/sql/2026-05-26-staging-deploy-consolidated.sql
# 2. Menu group 選單分組(純資料,不動 schema)
psql -h <DB_HOST> -p <DB_PORT> -U cmmgr -d <DB_NAME> \
-f scripts/sql/2026-05-26-menu-group-restructure.sql✅ Staging (
guidant_ai_stg) 已於 2026-05-26 完成 apply。
注意事項:
- Script 1 STEP 3 使用
CREATE TEMPORARY TABLE ... ON COMMIT DROP,psql 非 interactive 模式下 temp table auto-commit 即 drop,INSERT 會 error。STG 已手動確認新三表資料正確(dev 資料 268 筆已遷移;STG 為測試資料,影響可接受)。若需確保資料遷移,改以BEGIN; ... COMMIT;包裹整個 STEP 3 再執行。 - Script 1 若 STG 存在
template_module_frame_id重複資料(測試資料多次建立同 template 的 SSP),需先清理重複後 STEP 7 才能建 unique index。
6. 相依套件版本
| 套件 | v1.1.0 | v1.2.0 | 備註 |
|---|---|---|---|
| jedi-oscal | 0.0.18 | 0.0.19 | SSP OSCAL alignment 3 entity 配套 |
| jedi-common | 0.0.24 | 0.0.25 | |
| jedi-auth | 0.1.18 | 0.1.19 | menu-group 剪枝邏輯 |
| jedi-flow-engine | 0.0.29 | 0.0.29 | 不變 |
| jedi-survey | 0.0.21 | 0.0.21 | 不變 |
7. 部署順序
- 跑 SQL:先 consolidated,後 menu-group(帳號
cmmgr) - 更新主專案 code:pull
main - 更新相依套件:
poetry update - 重啟 BE:
lsof -ti :8000 | xargs kill -9 && python main_socketio.py - Smoke 驗證:
- 登入後側邊欄顯示 7 個分組
- 點開「專案與任務」展開 5 個子項目
/project/projects新增專案按鈕可見- SSP tab 受評標的 / 外部利用服務資料正常顯示
- MF template-edit 系統元件 tab 寫入後同頁讀回
8. 已知 Follow-up
- STEP 3 temp table
ON COMMIT DROP問題:STG 已 workaround,正式環境部署前建議修正 SQL 加BEGIN/COMMIT包裹 - MF template defaults Phase 3(inventory items M2M ref):本期未完成
- SSP Excel import Phase 3(parser 對齊 v3 pipeline):本期 Phase 2 dispatch 已落地,parser 待下輪
9. 完整 Changelog 索引
docs/changelog/2026-05-26-feat-menu-group-restructure.mddocs/changelog/2026-05-26-feat-mf-template-defaults-phase2.mddocs/changelog/2026-05-26-fix-appmenuitem-submenu-rendering.mddocs/changelog/2026-05-26-fix-getuserpagepermissions-nested-menu.mddocs/changelog/2026-05-25-feat-ssp-oscal-alignment-phase1-phase2.mddocs/changelog/2026-05-25-feat-bug-o-diff-stepper-4key-tabview.mddocs/changelog/2026-05-25-fix-bug-pqr-parties-form.mddocs/changelog/2026-05-25-fix-h6-write-strategy-residual.mddocs/changelog/2026-05-24-feat-docx-import-anchor-extractors.md
10. 相關文件索引
| 主題 | 路徑 |
|---|---|
| SSP OSCAL Alignment 設計 | docs/features/FR-028-2605-ssp-oscal-alignment/ |
| Menu Group 設計 | docs/features/FR-029-2605-menu-group/design.md |
| Menu Group SUMMARY | docs/features/FR-029-2605-menu-group/handoff/2026-05-26-phase1-SUMMARY.md |
| STG migration 注意事項 | docs/analysis/2026-05-26-getuserpagepermissions-flat-regression.md |