釋出:拿排程條目記下的 CLI 清單比對,少跑一支就點名 #39

Merged
admin merged 3 commits from develop into master 2026-09-07 01:50:11 +00:00
Member

摘要

  • 需求描述:把 develop 累積的變更釋出到 master。無人值守那一輪報「對 4 支 CLI 都跑過,全部成功」,而這台機器裝了 5 支。報告讀起來完全正常,因為沒有東西知道該有幾支。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

這一批的內容

排程條目多記一個變數,記下安裝當下偵測到哪幾支 CLI;執行那一支拿它比對,少了哪一支就點名。

版號 0.2.8 到 0.2.9。

為什麼原本看不出來

偵測 CLI 那一支純看 PATH,分不出「裝了但執行檔不在 PATH 上」。而條目帶的 PATH 是安裝當下拍的:

現在的 shell        claude codex copilot antigravity kiro   (5 支)
條目帶的 PATH 底下  claude codex antigravity kiro           (4 支)

少的那一支裝在帶行程編號與時間戳的多殼層目錄底下,重開機就不在了。

而少一支的後果不是報錯:那一輪照樣把偵測到的每一支都跑過、照樣全部成功、照樣回報「都跑過了」。沒有基準,就沒有東西比得出差額。

這件事先前只預言了一半

組 PATH 那一支的註解寫過:那種路徑下一次開機就不在了,重跑一次安裝就會重新拍一份。

預言對了,但漏了一句:沒有任何東西會提醒該重跑。

判法照既有那一套

條目記 CLI 代號的判法照組 PATH 那一套逐支 command -v,不另叫外部腳本。安裝那一刻本來就用同一套判過一次,再叫一支等於同一件事兩套實作;而那一支拿得到的資訊跟這裡一樣多,多繞一層沒有換到任何東西。

只報不修

那條路徑本質上是暫時的。真正的解法是那支 CLI 該裝在穩定位置,或者重跑一次排程安裝重新拍快照——兩件都不是程式該替人決定的。所以只點名、只指路。

舊條目安靜通過

沒有那個變數時不警告。那一種情況分不出「沒少」與「沒基準」,而拿「沒基準」當缺失會讓每一台還沒重裝的機器每輪亮一次紅。

測試結果

情況 結果
基準與實際一致(五支) 不出聲
基準多一支不存在的 點名那一支,印警告
完全沒設基準(舊條目) 不警告
  • 真機情境重現:拿條目實際帶的那條 PATH 在清空環境裡跑,確實抓到「記著五支、這一輪只偵測到 4 支」。
  • 條目那一行加了這個變數之後 774 字元,仍在 crontab 的長度上限內。
  • 四支檢核腳本都回結束碼 0。
  • 全程用乾跑與隔離環境,沒有動到正式的排程與待辦簿。

部署之後還要多做一步

條目的環境快照是安裝當下拍的,所以部署完要重跑一次排程安裝,那個基準才進得了條目。那一步同時會把那支 CLI 現在的路徑重新拍進去。

前置 Push Request

  • 無
## 摘要 - 需求描述:把 develop 累積的變更釋出到 master。無人值守那一輪報「對 4 支 CLI 都跑過,全部成功」,而這台機器裝了 5 支。報告讀起來完全正常,因為沒有東西知道該有幾支。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 這一批的內容 排程條目多記一個變數,記下安裝當下偵測到哪幾支 CLI;執行那一支拿它比對,少了哪一支就點名。 版號 0.2.8 到 0.2.9。 ## 為什麼原本看不出來 偵測 CLI 那一支**純看 `PATH`**,分不出「裝了但執行檔不在 `PATH` 上」。而條目帶的 `PATH` 是安裝當下拍的: ``` 現在的 shell claude codex copilot antigravity kiro (5 支) 條目帶的 PATH 底下 claude codex antigravity kiro (4 支) ``` 少的那一支裝在帶行程編號與時間戳的多殼層目錄底下,重開機就不在了。 而少一支的後果不是報錯:那一輪照樣把偵測到的每一支都跑過、照樣全部成功、照樣回報「都跑過了」。**沒有基準,就沒有東西比得出差額。** ## 這件事先前只預言了一半 組 `PATH` 那一支的註解寫過:那種路徑下一次開機就不在了,重跑一次安裝就會重新拍一份。 預言對了,但漏了一句:**沒有任何東西會提醒該重跑。** ## 判法照既有那一套 條目記 CLI 代號的判法照組 `PATH` 那一套逐支 `command -v`,不另叫外部腳本。安裝那一刻本來就用同一套判過一次,再叫一支等於同一件事兩套實作;而那一支拿得到的資訊跟這裡一樣多,多繞一層沒有換到任何東西。 ## 只報不修 那條路徑本質上是暫時的。真正的解法是那支 CLI 該裝在穩定位置,或者重跑一次排程安裝重新拍快照——兩件都不是程式該替人決定的。所以只點名、只指路。 ## 舊條目安靜通過 沒有那個變數時不警告。那一種情況分不出「沒少」與「沒基準」,而拿「沒基準」當缺失會讓每一台還沒重裝的機器每輪亮一次紅。 ## 測試結果 | 情況 | 結果 | | --- | --- | | 基準與實際一致(五支) | 不出聲 | | 基準多一支不存在的 | 點名那一支,印警告 | | 完全沒設基準(舊條目) | 不警告 | - **真機情境重現**:拿條目實際帶的那條 `PATH` 在清空環境裡跑,確實抓到「記著五支、這一輪只偵測到 4 支」。 - 條目那一行加了這個變數之後 774 字元,仍在 `crontab` 的長度上限內。 - 四支檢核腳本都回結束碼 0。 - 全程用乾跑與隔離環境,沒有動到正式的排程與待辦簿。 ## 部署之後還要多做一步 條目的環境快照是安裝當下拍的,所以部署完要重跑一次排程安裝,那個基準才進得了條目。那一步同時會把那支 CLI 現在的路徑重新拍進去。 ## 前置 Push Request - 無
jiantw83 added 3 commits 2026-09-07 01:47:16 +00:00
偵測 CLI 那一支純看 PATH,分不出「裝了但執行檔不在 PATH 上」。而條目帶的
PATH 是安裝當下拍的,其中某些 CLI 裝在會過期的目錄底下——這台機器實測就有
一支裝在帶行程編號的多殼層目錄,重開機之後那條路徑就不在了。

少了基準的後果不是報錯,是安靜地少做一支。那一輪照樣把偵測到的每一支都跑
過、照樣全部成功、照樣回報「都跑過了」,因為它不知道該有幾支。實測那一輪報
「對 4 支 CLI 都跑過,全部成功」,而機器上裝了 5 支——報告讀起來完全正常。

所以條目多記一個變數,記下安裝當下偵測到哪幾支,作為往後每一輪的參照基準。
判法照組 PATH 那一套逐支 command -v,不另叫外部腳本:install 那一刻本來就用
同一套判過一次,再叫一支等於同一件事兩套實作,而那一支拿得到的資訊跟這裡
一樣多,多繞一層沒有換到任何東西。

讀的那一邊比對之後印 cli_missing= 並點名少了哪一支,同時明說「全部成功不代表
全部跑過」。只報不修:那條路徑本質上是暫時的,真正的解法是那支 CLI 該裝在
穩定位置,或者重跑一次排程安裝重新拍快照——兩件都不是這一支該替人決定的。

舊條目沒有那個變數時安靜通過,不誤報:那一種情況分不出「沒少」與「沒基準」,
而拿「沒基準」當缺失會讓每一台還沒重裝的機器每輪亮一次紅。

實測三種情況:基準與實際一致時不出聲;基準多一支不存在的會點名那一支;完全
沒設基準時印減號、不警告。另外拿條目實際帶的那條 PATH 在清空環境裡重現真機
情境,確實抓到少了那一支。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
巡檢步驟五的記錄清單補上那個欄位,並寫明它是唯一看得出「少跑一支」的地方
——每一支偵測到的目標都跑過、都通過,那一輪也照樣回報都跑過了。

回報要求也寫進去:點名少了哪幾支、講明乾淨通過不等於完整通過、指出重跑排程
安裝才會重新拍快照。

三份 manifest 版號 0.2.8 升到 0.2.9。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reviewed-on: #38
admin approved these changes 2026-09-07 01:50:08 +00:00
admin merged commit ebcfaa387c into master 2026-09-07 01:50:11 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/assist#39