建議 model:opus/effort:medium — 發版不可逆、pin 還原後要重打全部端點驗證,且 wheel 與 editable 的假綠陷阱要逐支實查。

本卡屬 FR-107(母卡 CM-1843)第 .6 棒(子需求卡 CM-1849),子任務 T-6.2:把兩支套件正式發版,主專案的相依改回正式版本號,並盤點出貨相關的待辦。

這張卡做什麼(白話)

整案開發期間,主專案是用 path dependency(直接指向本機的套件原始碼目錄)在跑的,這樣改套件不用發版就立刻生效。收口時要把它改回正式版本號(pin),並把套件真的發版推到內部的套件倉庫(Nexus)。

🔴 發版要決策者明示才做(本卡不可以自己發)。卡片派下來時若沒有明確授權,先做前置檢查與版號建議,回寫問決策者。

另外三件收口事:

動哪些檔

套件(發版,🔴 決策者明示才做)
~/Projects/Jedicogy/module/jedi-python-package/jedi-file-upload/            ← 版號 bump
~/Projects/Jedicogy/module/jedi-python-package/jedi-evidence-classification/ ← 版號 bump
  發版流程見 .claude/skills/jedi-package-dev/SKILL.md 末段

主專案
pyproject.toml
  :75 "jedi-evidence-classification==1.1.0"   ← 改成新版號,取消註解
  :76 "jedi-file-upload==1.1.2"               ← 改成新版號,取消註解
  :126 path dependency(jedi-evidence-classification) ← 🔴 註解回去
  :127 path dependency(jedi-file-upload)             ← 🔴 註解回去
然後 poetry update jedi-file-upload jedi-evidence-classification
  🔴 一律指定套件名,裸跑會升整棵相依樹

五支 migration 清單(出貨基線待重產,本卡彙整回報)
  scripts/sql/packages/jedi_file_upload/00N-upload-files-tenant-owner-rls.sql        (T-1.1)
  scripts/sql/packages/jedi_evidence_classification/00N-evidence-batches.sql         (T-1.2)
  scripts/sql/packages/jedi_evidence_classification/00N-runs-attach-batch.sql        (T-3.1)
  scripts/sql/2026-MM-DD-fr107-job-evidences-ai-classified.sql                       (T-4.1)
  scripts/sql/packages/jedi_evidence_classification/00N-classification-profiles.sql  (T-5.1)
  (實際檔名以各棒落地的為準,本卡逐一列出真實檔名)

🔴 假綠陷阱:path dependency 期間過的不算數

開發期是 editable 安裝(直接讀原始碼目錄),還原 pin 之後變成從 Nexus 裝的 wheel。兩者可能不一樣——例如某個檔沒有被 package 進 wheel、某個資源檔沒進 MANIFEST、版號相依寫錯。這個 repo 有過三次「舊 wheel 假綠」的案例。

所以本卡的驗收是:還原 pin、poetry update 之後,逐支實查 .venv 裡兩支套件是 wheel 不是 editable,然後重新打過全部新端點。

怎麼做(逐步)

python -c "import jedi_evidence_classification as m; print(m.__file__)"
python -c "import jedi_file_upload as m; print(m.__file__)"
# 路徑應該在 .venv/lib/.../site-packages/ 底下
# 🔴 若指向 ~/Projects/Jedicogy/... 就是還在 editable,pin 沒生效
pip show jedi-evidence-classification jedi-file-upload   # 版號要是新發的