手冊首頁 / Release Notes / Guidant AI v1.4.0 Release Note

Guidant AI v1.4.0 Release Note

項目 內容
版本 1.4.0(功能版號;含 FR-032 / FR-033 兩個 feature)
發布日期 2026-06-08
上一版本 1.3.1(2026-05-31)
涵蓋區間 2026-06-01 ~ 2026-06-08
規模 2 feature(系統資產盤點 / 稽核事件埋點)+ DB 架構整理(搬表 + log 分區)+ main code review 修正(BE + jedi 跨套件)+ auth token 修正 + 套件重刻漂移收斂 + 7 個 jedi-* 套件升版,跨 BE + FE + jedi monorepo
適用部署 dev / staging / poc / prod(含 DB migration,app 與 DB 須同版上線

1. 概述

v1.4.0 是 v1.3.1 之後累積的功能 + 修正批:

  • 兩個新功能:FR-032 系統資產盤點(資訊系統作為資產納入 SSP inventory)、FR-033 專案進度稽核事件埋點(語意事件寫 system_logs)。
  • DB 架構整理:12 張表跨 schema 搬遷(module_frame / workflow 系列 → compliance、drive 三表 → public)+ log 表月分區。
  • 兩份 main code review 落地:BE review(Critical/Important,防禦式編碼 / 角色守門 / silent-fail / Reflected XSS)+ jedi-* review(跨 6 套件)。
  • auth token 機制修正:登入持久化、JWT 錯誤 401 不再變 500。
  • 套件重刻漂移收斂:盤點主專案重刻外部套件已有功能的案例並收斂(死碼移除 / 去重修正 / 預設對齊)。
  • 7 個 jedi- 套件升版並推 Nexus*。

2. 重點新功能

2.1 FR-032 — 系統資產盤點

  • 資訊系統作為資產納入 SSP inventory,採 hybrid soft-ref(複製欄位 + 選填 ref_type/ref_id,BE 從 master snapshot 單向凍結)。
  • 新增 asset_type 與設備並存;EA Excel 匯入匯出 round-trip。
  • 從主專案抽出 jedi-information-system 外部套件(jedi-auth 解耦,dependency inversion)。
  • migration:2026-06-04-fr032-inventory-asset-type.sql

2.2 FR-033 — 專案進度稽核事件埋點

  • 任務完成 / 指派 / 退回 + 問卷狀態變更寫 system_logs(語意 event_code,180 天保留)。
  • 兩套 log 並存:api_logs(HTTP 全自動 90 天)vs system_logs(語意事件)。
  • helper common/util/audit_log.py;查詢 runbook 見 FR-033 文件。

2.3 DB 架構整理

  • 搬表:12 張表跨 schema 搬遷(module_frame / workflow 系列 → compliance、drive 三表 → public)+ 跨 schema FK 限定。migration 2026-06-01-schema-reorg-move-tables.sql
  • log 分區api_logs / system_logs 改 RANGE(act_time) 月分區 + BRIN + maintain_log_partitions()。migration 2026-06-03-log-tables-partitioning.sql
  • ERD 中文註解:ORM comment 灌進 DB COMMENT。migration 2026-06-02-erd-chinese-comments.sql

3. 重要修補

3.1 main code review 落地

  • BE review(Critical/Important):SSP 匯入匯出角色守門、OAuth callback Reflected XSS、防禦式 None-guard、silent-fail 移除、DDD 分層架構債(I2/I23/I29 實修)、error code 語意。
  • jedi- review*(跨 6 套件):Critical 16 + Important 11,落在 oscal / flow-engine / survey / auth / login / issue。

3.2 auth token 機制

  • 登入 token / session 持久化修正。
  • JWT 錯誤 loader 改 return response(修 token 401 變 500 無 CORS)。
  • jedi-login:logout 只撤當前 session token、I13 token 撤銷 fail-closed;密碼過期/變更時間比較 UTC-aware 正規化。

3.3 套件重刻漂移收斂(本批)

  • party clone 跨呼叫去重start_oscal_project 重跑安全)+ regression pytest(5 cases)。
  • 移除參與者 metadata.parties 屬性名 bugparty_uuiduid,修 500)+ E2E regression。
  • 死碼移除OscalConvertService + convert route(被 POST /module-frame 取代)、domain/upload_file/ 孤兒死碼。
  • SC placeholder 預設對齊(MF 系統特性 security_sensitivity_level 對齊 SSP high)。
  • jedi-bulletin auth 時間過濾運算子方向 bug
  • flow-engine 收斂 feasibility 結論(方案 c 文件化,BE 版架構合規,不合併)。

3.4 其他

  • survey:clone 翻譯表重複(選單列兩次)、checkpoint serializer 容忍完整 entity、資料夾切換競態。
  • evidence-classify:歷史清單改以 DB 為主來源、分類器 container image 重建。
  • summary-report PDF 模板路徑 500;api-log middleware teardown / before_request;main_socketio 啟動 create_all crash。

4. Breaking Changes

  • DB 搬表(schema reorg):12 張表換 schema。app 與 DB 必須同版上線——舊版 app 配新 schema(或反之)會炸 UndefinedTable。任何 image 內自帶 SQL 的 container/sidecar 也要 rebuild(見 changelog 2026-06-08-...、memory feedback_rebuild_docker_image_after_schema_move)。
  • log 表分區api_logs / system_logs 改 RANGE 分區。排程未接(pg_cron 未裝;分區預建至 ~2026-09 + DEFAULT 兜底)。
  • OscalConvertService 移除POST /oscal-framework-version/convert/module-frame/<uid> 端點移除(已被 POST /module-frame 取代,FE 無 live 呼叫)。

5. DB Migration(按序套用)

⚠️ 依賴順序 ≠ 檔名日期erd-chinese-comments 內容會 COMMENT ON COLUMN asset_type必須在 fr032-inventory-asset-type 之後套(檔名日期 06-02 早於 06-04 但實際依賴相反)。下表為實際正確順序

順序 migration 內容
1 2026-06-01-schema-reorg-move-tables.sql 12 表跨 schema 搬遷 + FK 限定
2 2026-06-04-fr032-inventory-asset-type.sql FR-032 inventory asset_type
3 2026-06-02-erd-chinese-comments.sql ORM comment 灌 DB COMMENT(依賴 asset_type,須在 #2 後)
4 2026-06-03-log-tables-partitioning.sql log 表月分區 + BRIN + maintain_log_partitions()
5 2026-06-07-surveys-trans-dedup-unique.sql surveys_trans 去重 + unique
6 2026-06-08-schema-version-tracking.sql DB 版號 + migration 追蹤(schema_version / schema_migrations),stamp 1.4.0
  • 一律用 cmmgr + psql --single-transaction -v ON_ERROR_STOP=1 -f <檔>(原子套用、失敗即 rollback)。
  • DEV / STG / POC 三邊已全數套用並 stamp schema_version=1.4.0(2026-06-08);PROD 上線時補齊
  • 查環境版號:SELECT version FROM public.schema_version ORDER BY set_at DESC LIMIT 1;

6. 相依套件版本(jedi-*,本版升版 7 個)

套件 舊 → 新
jedi-oscal 0.0.20 → 0.0.21
jedi-flow-engine 0.0.30 → 0.0.31
jedi-survey 0.0.21 → 0.0.22
jedi-auth 0.1.19 → 0.1.20
jedi-login 0.0.19 → 0.0.20
jedi-issue 0.0.11 → 0.0.12
jedi-bulletin 0.0.9 → 0.0.10
  • 皆已 poetry publish --build -r nexus 上傳。BE pyproject.toml pin 已更新、path-dep 還原、poetry update 完成。
  • 未升版(已是最新):jedi-common 0.0.25、jedi-device 0.0.11、jedi-information-system 0.0.1、jedi-project 0.0.5 等。

7. 部署順序

  1. jedi- 套件*:7 個已推 Nexus(monorepo commit 63d4e54待 push gitlab)。
  2. DB migration:依 §5 順序套用(cmmgr)。
  3. BE:上 v1.4.0(pin 新套件版本)。與 DB migration 同步(搬表 breaking)。重建含 SQL 的 sidecar image(如 cmmc-classifier)。
  4. FE:對齊 v1.4.0。

8. 已知 follow-up

  • flow_template / ai_dashboard 約 11 個 stale 單元測試(mock 與現行 BE code 不符,非回歸)— 待整批更新。
  • log 分區排程未接(pg_cron 未裝);分區預建至 ~2026-09,之後需補排程或手動。
  • jedi-bulletin 完整收斂(BE 改薄 extend over 套件)— 無 live 影響,defer 到有第二 consumer。
  • D3 權限 review 項(12 條)依指示跳過,列後續。

9. 完整 changelog 索引(docs/changelog/,2026-06-01 之後)

FR-032:2026-06-04-feat-fr032-system-asset-inventory.md...-ea-excel-roundtrip.md...-tweak-fr032-g-jedi-information-system-extract.md2026-06-07-fix-stg-fr032-asset-type-migration.md FR-033:2026-06-04-feat-fr033-audit-event-logging.md DB 架構:2026-06-03-tweak-schema-reorg-move-tables.md...-tweak-log-tables-partitioning.md2026-06-02-tweak-db-erd-tooling-convergence.md2026-06-04-fix-erd-partition-refresh-liam-per-schema.md review:2026-06-07-fix-main-review-be-correctness-security.md...-tweak-main-review-be-arch-debt.md auth:2026-06-07-fix-login-token-session-persistence.md2026-06-08-fix-auth-jwt-token-handling.md 收斂:2026-06-08-fix-party-clone-and-remove-path.md...-fix-bulletin-time-filter-direction.md...-tweak-package-reimpl-convergence.md 其他:2026-06-03-fix-main-socketio-create-all-startup-crash.md2026-06-04-fix-api-log-middleware-teardown-and-before-request.md2026-06-07-fix-summary-report-pdf-template-path.md...-fix-survey-checkpoint-serializer-shape.md...-fix-survey-clone-duplicate-trans.md...-fix-survey-folder-switch-race.md...-fix-evidence-classify-history-db-source.md...-fix-evidence-classify-container-image-rebuild.md


10. 相關文件

  • 收斂分析:docs/analysis/2026-06-08-package-vs-be-reimplementation-convergence.md
  • flow-engine feasibility:docs/features/FR-034-2606-flow-engine-be-package-convergence/design.md
  • jedi-flow-engine 使用地圖:docs/claude/jedi-flow-engine-usage-map.md
  • BE review 報告:docs/review/2026-06-04-main-review-be.md