本卡屬 FR-114(母卡 CM-2019)。決策者 2026-09-24 裁:「不要殘留東西,還有什麼要修的一起處理,之後再發新的一版」。本卡收齊所有剩餘小修;本卡不 bump 版號、不發版,發版由 CM-2110 在本卡驗收後一次做。併入並取代 CM-2121(心跳測試)與 CM-2133(jedi-iam .mo)。
資安修正的主體都做完了,但一路上累積了幾件「順手看到、先記著」的小事,加上 jedi-iam 一天發了三版才把翻譯檔弄對。決策者要在真正出版前把這些全部收乾淨,只發最後一次。九件事都很小,一個 runner 做完。
套件 /Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/.claude/worktrees/jedi-wt-fix-security branch fix/security-b1
BE /Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/.claude/worktrees/wt-fix-security branch fix/security-b1
🔴 主 checkout 給掃描線讀,絕不動。你被鎖在 BE worktree,所有指令以 worktree 為工作目錄;跑 shell 測試腳本放 worktree 內 .claude/ 下用 bash <檔>,不要 bash -c。開工先 git status+git log --oneline -3 兩個工作區,確認沒有別人未 commit 的改動(CM-2110 已暫停)。
.gitignore:55 寫 *.mo,jedi-iam pyproject:64-68 又要把 .mo 打進 wheel,所以 wheel 有沒有 .mo 看發版機器當下有沒有編過——1.4.0/1.4.1 從 git 開出的 worktree 發就缺了,188 build 被擋。.gitignore 對 jedi-iam/jedi_iam/translations/**/*.mo 開例外(! 規則,放在 *.mo 之後);在 jedi-iam 跑 pybabel compile -d jedi_iam/translations 產生 en/zh_Hant_TW 兩支 .mo 並 git add。jedi-integrity/jedi_integrity/infra/tamper_event_repo.py:97 def exists(self, event_uid):首腦 grep 全套件與 BE 零呼叫(開機查鎖改由宿主短命連線做)。刪掉;它若在 port/interface 有宣告一併刪。跑 jedi-integrity 全部 tests。_require_participant 收攏app/service/assessment_result_app_service.py:118
app/service/audit_round_app_service.py:139
app/service/poam_app_service.py:95
既有共用守門:jedi_compliance_audit/common/guard.py:48 assert_project_role(participant_domain_service, project_id, user_id, ...)
poetry lock(在各套件目錄、env -u VIRTUAL_ENV),只 add poetry.lock。lock 若解出與 BE 現行版本明顯不同的第三方主版號,回寫列出,不必處理。