本卡屬 FR-167(母卡 CM-3241),卡 P1-3c,階段 P1 升級變安全、批 2。只改 BE(主 repo,Repo 欄空著)。依賴:P1-1。
升級前要等正在跑的工作做完,不強制中斷。這張卡寫一個旗標檔讓主系統停接新工作,然後每 10 秒查還有幾件在跑,30 分鐘沒等到就寫一筆提醒,排程時段結束還沒等到就放棄這次。
等待邏輯簡單但邊界多(放棄要恢復接單、不能留旗標)
extend:填 lib/upgrade_drain.sh;計數用 psql 直查 background_jobs 與 Agent 任務表,不另開端點
repo:~/Projects/Billows/Audit-Manager/compliance-manager-be
改既有:scripts/installer/lib/upgrade_drain.sh(P1-1 空殼)
細節在 design.md §5 對應段(~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-167-2610-online-update-channel/design.md,開 design.html 看導覽);本段只列本卡要做到的點:
lib/upgrade_drain.sh:寫 <資料目錄>/upgrade/draining;每 10 秒 psql 查 background_jobs running 數+Agent 任務 dispatched/running 數(表名 grep 現有 worker 與 remote_agent 程式);0 才過。--notice-after(預設 1800 秒)寫一筆 notice 進進度檔;--deadline <epoch> 到就刪旗標、進度檔 skipped、回特定碼 75。guidant.env 讀,不寫死。對 DEV 庫(localhost:5432):塞一筆 running 的 background_jobs 時不往下走;--deadline 到了回特定碼、旗標檔已刪;0 筆立刻過;30 分提醒用 --notice-after 3 秒縮時驗;shellcheck 綠
對照雛形:~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-167-2610-online-update-channel/prototype/index.html(上方「跟著走」)。
docs/claude/domain-capabilities.md。三擇一、預設不新增:reuse → extend 加參數 → 都沒有才新增。回寫列出 reuse 了哪些、新增了哪些、為什麼不能 reuse。