手冊首頁 / Release Notes / Guidant AI v1.10.1 Release Note
Guidant AI v1.10.1 Release Note
| 項目 | 內容 |
|---|---|
| 版本 | 1.10.1(BUG 版號;主軸=資安掃描 arc 全案收官 + Sonar 存量清理 arc 兩 repo 歸零 + 覆核輪 Drive 資料夾修復) |
| 發布日期 | 2026-07-25 |
| 上一版本 | 1.10.0(2026-07-24) |
| 涵蓋區間 | 2026-07-24 ~ 2026-07-25 |
| 規模 | 資安掃描 arc 收官(trivy/semgrep/SonarQube 三工具帳面全零 + Quality Gate 落地)+ Sonar 存量 code smell 清理(BE+FE 合計 1,440 條 open → 0,真修約 396 條)+ 3 筆功能 bug 修復(覆核輪 Drive 資料夾、GitLab 附件刪除、PDF 字型)+ 安全硬化 2 處(docker 參數驗證、PDF img src 限縮),跨 BE + FE + jedi-issue 套件 |
| 適用部署 | dev(已驗);staging / poc / prod 待部署 |
| 部署性質 | 無新增 DB migration。含依賴升版:weasyprint
69.0、Flask-Cors 6.0.0、pytest 9.0.3、jedi-issue 0.0.16、jedi-auth 等 18
套件 pin 放寬後升新版(均已推 Nexus)。BE 需
poetry update + 重啟;FE
需同版部署。部署主機需確認 fonts-noto-cjk 字型與
LibreOffice(見 docs/claude/host-dependencies.md)。 |
1. 概述
v1.10.1 是品質收官版,三條主線:
- 資安掃描 arc 全案終結:trivy / semgrep / SonarQube 三工具 BE+FE 帳面全零(HIGH/MEDIUM 漏洞歸零、hotspots 歸零、semgrep ERROR+WARNING 歸零),SonarQube Quality Gate「Guidant-NewCode」策略落地(new code 零新增 violation 擋版、存量不擋),為掃描流程進 GitLab CI 建立乾淨基線。含 Checkmarx SAST 送測預演(semgrep security-audit ruleset 自掃 + triage 答辯材料)。
- Sonar 存量 code smell 清理:兩 repo open issue 從 1,440 條收斂到 0——真修約 396 條落地(BE 16 commits / FE 11 commits),623 條經逐條裁決標 accept(附裁決 comment 可追溯),82 條查證為 Sonar 誤判標 false positive。清理過程順手挖出並修復多顆潛伏雷(詳 §3)。
- 覆核輪 Drive 資料夾修復:發起覆核建立的新輪次此前不會在 Google Drive 建資料夾,導致第二輪起證據 AI 分類報 404「此 AP 尚未與 Drive 連結」——現發起覆核後自動補跑資料夾初始化(冪等,不影響既有輪次)。
2. 重要修補
功能 bug
- 覆核輪 Drive 資料夾自動建立(CM-905):發起覆核成功後自動 enqueue Drive 資料夾初始化(複用專案啟動既有機制,route 層接線避免模組循環依賴);未連結 Drive 的專案發起覆核不受影響。受影響歷史專案已補資料夾。
- GitLab 附件刪除只刪指定檔案(CM-888):原實作為「全刪」,改檔名定位。
- 摘要報告 PDF 字型修正(CM-893):拔除 Google Fonts
外連,字型改部署環境實際存在的
Noto Sans CJK TC(原Noto Sans TC在主機不存在會 fallback 日文字型排繁中)。
安全硬化
- 證據分類 docker
參數輸入驗證:
evidence_folder_id/framework_id/model進 docker argv 前做字元集白名單驗證(擋-開頭的 flag 注入面,如--privileged)。 - 摘要報告 PDF img src 限縮 data: URI(CM-892):堵伺服器端外抓 SSRF 面。
- 依賴升版收洞:weasyprint 69.0(CVE-2026-49452)、Flask-Cors 6.0.0(CVE-2024-6839/6844/6866)、pytest 9.0.3(CVE-2025-71176)、jedi-issue 0.0.16(移除 wheel 內誤打包的 .env)。
Sonar 清理中挖出的潛伏雷(本無故障回報,掃描驅動修復)
- Google Drive
get_file_metadata實作漏介面第三參數fields(介面違反,呼叫端照契約傳參會 TypeError)。 sub_workflows_countDTO 預設值因多打逗號成 tuple(0,)而非0。- FE 兩元件
defineEmits漏宣告事件(ChatBox close / UserManageUpload reload),行為靠 fallthrough 屬性僥倖正常。 datetime.utcnow()汰換 ×6(Python 3.12 deprecated;含通知sent_at若誤用 aware 版會產生+00:00Z壞格式的邊界)。- pytz → 標準庫 zoneinfo ×2(順手修掉 1937~1979 台灣日光節約時間轉換日會拋未攔截例外的歷史邊界)。
- 裸
except:補 exception class ×11(不再誤吞系統中斷訊號)。
品質批次(節錄)
- 空函式補說明註解 ×62、註解碼死碼清除 ×60+、logging 規範化
×64(
logging.exception/ f-string 修正)、回傳型別註解補 Optional ×20、一行級語法現代化 200+ 條——全數逐條驗證行為等價;有行為疑慮的 12 條經實測後拒改並標 accept(如 structuredClone 對 Vue 響應式物件會拋錯)。
3. Sonar 帳面處置紀錄(治理存證)
| 處置 | BE | FE | 說明 |
|---|---|---|---|
| 真修 | ~200 條 | ~196 條 | code 落地,見 git log
chore(sonar)/fix(sonar) 系列 |
| accept | 463 | 160 | 逐條附裁決 comment(S3776 認知複雜度不重構、FR-038 stub 保留、scripts/ 工具腳本、OOXML 規格命名等) |
| false positive | 34 | 48 | S6019 regex 誤判、S125 中文註解誤判、css
對比度誤報(docs/analysis/2026-07-25-sonar-css-contrast-false-positive.md)等 |
Quality Gate:BE / FE 雙 PASSED。Checkmarx
送測答辯材料:docs/features/security-scan-2607/2026-07-25-semgrep-security-audit-preview-triage.md。
4. Breaking Changes
無。全版行為等價修改 + 依賴升版;docker 參數驗證屬收緊(原可傳任意字串,收緊為修正)。
5. DB Migration
無新增。
6. 相依套件版本
| 套件 | 版本變化 |
|---|---|
| weasyprint | → 69.0 |
| Flask-Cors | → 6.0.0 |
| pytest | → 9.0.3 |
| jedi-issue | 0.0.13 → 0.0.16 |
| jedi-* 系列 | pin 放寬 <10 後升至各自新版(詳
pyproject.toml) |
7. 部署順序
- BE:
git pull→poetry update→ 重啟(main_app.py) - FE:同版 build 部署
- 主機層確認:
fc-match 'Noto Sans CJK TC'回 NotoSansCJK、which libreoffice存在(新機必查,見docs/claude/host-dependencies.md) - classify 容器 image 如未含新依賴需 rebuild
8. 已知 follow-up
- FE 的 semgrep 規則覆蓋僅 40 條(BE 1,144 條),JS/TS 導向 ruleset 補掃待開案。
- CI/CD 掃描接入(Quality Gate 已就緒,等環境)。
- 已 accept 的 623 條為有意識的風險接受決策,日後對應模組重構時可順修。
9. 相關文件索引
- 資安 arc 收官
handoff:
docs/features/security-scan-2607/handoff/2026-07-25-security-arc-close-and-smell-cleanup-handoff.md - Quality Gate
設定:
docs/features/security-scan-2607/sonar-quality-gate-setup.md - weasyprint CVE
論證:
docs/features/security-scan-2607/2026-07-25-weasyprint-cve-2026-49452-resolution.md - 主機層依賴:
docs/claude/host-dependencies.md - Notion cases:CM-886 ~ CM-905