1. 最終帳面(issue 條數,per 2026-07-25「以 issue 為主」紀律)
3. 行為差異(對 user 可見的)
- 覆核輪(第二輪起)證據 AI 分類不再 404;新發起的覆核自動建 Drive 資料夾
- AI 助理對話框關閉鈕、批次上傳使用者後清單刷新:從「靠 fallthrough 僥倖」轉正
- 證據分類 API 傳非法 folder ID(如
--privileged)會被擋(安全硬化)
- 其餘 ~390 條修改全部行為等價(每批驗證:import 不炸 + login 煙霧 + BE 全測試 before/after 失敗清單相同)
4. 規範文件
- Release note:
docs/release_notes/v1.10.1.md(+ spec 站鏡射 + _overview.md 列表)
- Spec 快照:
docs/specs/v1.10.1/(current 複製,HTML 重 build 零 nav 警告)
- Checkmarx 答辯:
docs/features/security-scan-2607/2026-07-25-semgrep-security-audit-preview-triage.md
- 掃描 JSON 佐證:
docs/security-reports/2026-07-25/(本機留存)
- 頁面 spec:本 arc 無頁面行為變更(CM-905 屬 bug 修復回歸既定行為),不觸發 spec 更新
5. 已知 follow-up
- FE semgrep 覆蓋缺口:security-audit 掃 FE 只吃到 40 條規則(BE 1,144),JS/TS 導向 ruleset 補掃待開案(CM-903 runner 發現)
- CI/CD 掃描接入:Quality Gate 已就緒,等環境(既有 case CM-CI 那條)
- 已 accept 623 條 = 有意識風險接受,對應模組重構時可順修
- Semgrep Pro engine 限制:Community 版無跨檔 taint 分析,Checkmarx 可能報本次掃不到的路徑(答辯材料已載明)
6. 部署 handover(v1.10.1)
- BE:
git pull → poetry update(weasyprint 69.0 / Flask-Cors 6.0.0 / jedi-* 升版)→ 重啟
- FE:同版 build 部署
- 主機:
fc-match 'Noto Sans CJK TC' 回 NotoSansCJK + which libreoffice(見 docs/claude/host-dependencies.md)
- classify image 如未含新依賴需 rebuild
- 無 DB migration、無 breaking
7. 本 arc 方法論教訓(已入 memory)
feedback_sonar_issue_centric_workflow(新增):Sonar 工作以 issue 清單為主體(規則×條數前後對照),不繞評級/維度敘事;真修與 accept 分開報;主 session 角色=逐條 triage「能不能修/需不需要修」三分法
reference_security_scan_tooling(更新):semgrep 一律加掃 p/security-audit ruleset(Checkmarx 預演常規化),指令與已知限制已載明
- Runner「實測後拒改」紀律再次證明價值:CM-904 拒改 12 條全部有實測依據(structuredClone/頭像 hash/FR-038 stub),照單全收會出貨真 bug