狀態 2026-06-16(凌晨自主收尾完成,real-DB HTTP smoke 待 user 明早驗收)。 ⚠️ 本檔誠實標註驗證狀態:已驗 = 單元/整合測試 + BOOT + baseline 零回歸;未驗 = 起服務的真實 HTTP smoke(user 明早做)。未標任何 FIXED/verified。
把 FR-011.2「SSP Update Diff」整套(上傳 → 逐項差異 → 接受/保留決策 → 人員三層自動比對 → 未匹配段落手動指派 → 寫入更新)從舊 jedi_oscal 接回 jedi_oscal_v2,驅動目標達成:專案 SSP 可匯入更新(docx 走 FE project_ssp / excel 走 scoped route);資源庫重複匯入 by-product 一起通。架構 W2(dict-merge + 單一 import_ssp(update))。
| # | 內容 | 狀態(測試層級) | 主要 commit |
|---|---|---|---|
| P1 | 套件 import_ssp(mode='update') 子物件 upsert |
✅ 套件單元測 17 | dc11572 09e56ac |
| P2 | 套件 build_ssp_snapshot |
✅ 套件單元測 | ab29117 |
| P3 | 專案 SSP 可匯入(Model C)+ scoped route + 權限 app service 層 gate | ✅ app service 測 16 | 60e472a3 0931bef1 dd7e17c7 |
| P4 | diff 標注(4 status×7 section)+ 逐項 decision merge | ✅ 33 測 | d9841ba4 a4c61d99 8b02adf7 |
| P5 | 人員/組織三層比對接 v2 + match 存 props soft-ref | ✅ 13 測 | 6b4bd722 |
| P6 | 未匹配段落手動指派(docx) | ✅ 11 測 | 7548e993 |
| P7 | party 比對改變顯示為 changed(diff 補完) | ✅ 42 測 | 6388a1dc |
| D1 | 🔧 docx 專案匯入 source_type 接受 FE project_ssp(真 FE 契約 bug) |
✅ 16 測 | acc72361 |
| D3 | 🔧 by-component 敘述更新被丟(核心 bug,整合測試抓到) | ✅ 套件 17 + 整合 4 | pkg bdfe780 / main 93df50b4 |
| — | rollback-isolated 端到端整合測試 | ✅ | dcaa6e6d |
D1/D3 是過夜自主作業抓到並修的真實 bug —— 若沒修,明早 smoke 會踩(docx 422 / 敘述匯入回成功但沒更新)。決策推理見
analysis、時序見decision-log。
sys.setrecursionlimit(5000) + eventlet + GITLAB dummy)—— 親驗多次。comm -13 空(少的 6 條是 stage_advance flaky 排序,非本弧)。jedi_oscal 進 boot graph(final reviewer import-probe 8/8 clean)。/ssp-{docx,excel}-import/<uid>/confirm → 403(upload+confirm 都驗)。project_ssp(D1):FE docx 專案匯入頁實際送 project_ssp → 不再 422、走 Model C update。controls_with_aos_diff 預覽 → decisions → update。pyproject.toml pin 還原(dev path-dep 未 commit,維持 working tree)handoff/2026-06-16-overnight-autonomous-decision-log.mddocs/analysis/2026-06-16-ssp-import-restore-w2-architecture-and-bugs.mddocs/changelog/)log/app.log(grep 關鍵字 / Traceback)。