fix(deploy): codex 更新補上逐網域 plugin add

What:deploy_codex 的 update 分支在 marketplace upgrade 之後,補上逐網域的
plugin add,與 install 分支一致。

Why:codex 沒有 plugin update 子指令,只有 add、list、marketplace、remove。
marketplace upgrade 只重抓 marketplace 快照,而 jsc 的 marketplace.json 只列各
網域的 git URL、不含版本,內容不會變,codex 一律回「already up to date」並結束碼 0。
已安裝外掛的版本在 plugin add 當下決定,快取不會被連帶重抓。結果是十個網域裡八個
版本完全沒動,指令卻全部成功——只看結束碼會判定成功,是最難察覺的那種失敗。
實機驗證過:更新前 review 是 0.0.2,跑完 marketplace upgrade 仍是 0.0.2。

How:update 分支照 install 的寫法逐網域跑 plugin add。實測 codex 的 add 會就地
升級到快照裡的最新版(review 0.0.2 升到 0.0.5),不需要先 remove。同時在函式上方
寫明這個限制與理由,避免後人再把那一行當成多餘的重複而刪掉。

Who:跨 CLI 技能組批次部署。
This commit is contained in:
2026-08-27 10:28:10 +08:00
parent 581b9de5bc
commit 63d4185a40
+7
View File
@@ -132,6 +132,12 @@ marketplace_cli() { # $1=執行檔
esac esac
} }
# codex 沒有 plugin update 子指令,只有 add、list、marketplace、remove。
# marketplace upgrade 只重抓 marketplace 快照,而 jsc 的 marketplace.json 只列各網域的
# git URL、不含版本,所以那份檔案內容不會變,codex 一律回「already up to date」並結束碼 0。
# 已安裝外掛的版本是 plugin add 當下決定的,快取不會被連帶重抓——換句話說,只跑
# marketplace upgrade 的話,指令全部成功而版本一個都沒動,是最難察覺的那種失敗。
# 正確做法是照樣逐網域 plugin add:codex 的 add 會就地升級到快照裡的最新版。
deploy_codex() { deploy_codex() {
bin=$(cli_bin codex) bin=$(cli_bin codex)
case "$MODE" in case "$MODE" in
@@ -141,6 +147,7 @@ deploy_codex() {
;; ;;
update) update)
run "$bin" plugin marketplace upgrade jsc run "$bin" plugin marketplace upgrade jsc
for d in $DOMAINS; do run "$bin" plugin add "jsc-$d@jsc"; done
;; ;;
uninstall) uninstall)
for d in $DOMAINS; do run "$bin" plugin remove "jsc-$d@jsc"; done for d in $DOMAINS; do run "$bin" plugin remove "jsc-$d@jsc"; done