檢查日期 2026-09-09|耗時 95 分鐘|對應卡片 CM-1616
工具在這 20 個檔裡沒找到新問題,而且卡片點名要查的兩個重點它一個都沒回答——由首腦自己補查,兩個答案都是好消息。
這個套件對外只開了一個 API:/issue/get_members(取得成員名單)。另外還有「插件裝配」的部分——套件怎麼被主專案掛載起來。
這一棒檢查這 20 個檔案,重點是這扇門有沒有守好。
工具找到的三條全部不在這次的檢查範圍內(工具自己也講明了):
| # | 位置 | 狀態 |
|---|---|---|
| 1 | infra/github.py:22 |
和 I1、I3 重複(同一個 verify=False,這是第三次被撈到) |
| 2 | github_issue_adapter.py:43 |
和 I1、I3 重複 |
| 3 | jedi_issue/.env |
和 I1、I3 重複(CM-1573 舊案) |
工具在範圍內找到的新問題:0 個。
不過第 3 條多給了前面沒有的一項:歷史裡除了那個設定檔,還有兩處直接把密碼寫死在程式碼裡(member_adapter.py 和 github_adapter.py),都已經從最新版移除但留在歷史。已補進 CM-1607 的清理範圍。
開卡時把重點 ②寫成「本棒最重要的一條」,結果報告完全沒提到;重點 ①也沒答。首腦自己查了:
套件的說明文件裡自己寫著:「缺少認證接線時要拒絕掛載,不是跳過——跳過的後果是成員名單變成公開的,任何人都拿得到全站使用者清單,而服務照常起得來、健康檢查照樣綠燈」。
這是套件自己的宣稱,要驗證。 打開 plugin.py 第 222-233 行:
missing = [name for name in ("auth_required",) if getattr(adapters, name, None) is None]
if missing:
raise RuntimeError("jedi-issue:mount_api=True 但認證接線缺少 ...故拒絕掛載。")確實會直接報錯停下來,不是默默掛上去。 同一支檔案第 137 行還寫著「認證設定刻意不給預設值——給預設值會讓『忘記傳』變成一個安靜的洞」。
結論:這個套件在這件事上做對了。
(後來 I5 那棒的檢查員在否決一條候選時,理由之一也是這個——兩邊獨立確認,對上了。)
首腦去查資料庫的權限清單,發現:根本沒有「取得成員名單」這個權限項目。清單裡跟 issue 有關的只有四項(issue-integrate-config 的讀寫增刪),那是**「整合設定頁」的權限,不是「取成員名單」的**。
這跟 FR-079 那次不一樣:那次是「權限項目有定義、有綁在頁面上、還寫進設計文件,卻沒有任何程式碼去檢查它」——那是明確的漏掛。這次是根本沒設計過這個權限。
要不要補是產品決策,不是程式錯誤。
三條都是 3 票全過,12 票全數投出、零漏投。
工具反覆撈同一個範圍外的舊問題,對範圍內零產出。 報告自己也承認「研究員沒有留下逐檔閱讀的紀錄」。
卡片點名要查的兩項,是首腦自己補做的(結論如上,都是好消息)。
所以正確的說法是:「這 20 個檔沒有被工具查出問題」,而不是「這 20 個檔沒問題」。
| 項目 | 數字 |
|---|---|
| 檢查範圍 | 20 個檔案 |
| 派出/回報的研究員 | 2 / 2 |
| 候選問題 → 去除重複 | 4 → 4 |
| 投票數 | 12 |
| 沒投到票的 | 0 |
| 範圍內新問題 | 0 |
| 首腦補查項目 | 2(都有結論) |
| 耗時 | 95 分鐘 |