fix(deploy): 部署工具的重啟狀態檔路徑改為一支 CLI 一份
What:`tools/deploy.sh` 的 `restart` 那一行改印 `$JSC_HOME/restart-required.d/{CLI 代號}`,檔頭註解一併改寫成「轉呼叫 `restart-gate.sh require` 掛上這支 CLI 的閘門」。`tools/write-guides.sh` 產生的更新指引,狀態檔說明改成一支 CLI 一份、重啟只清自己那份、別支的閘門不受影響。`tools/config-spec.tsv` 的 `$JSC_HOME/restart-required` 那一列改成 `$JSC_HOME/restart-required.d` 目錄,說明改為「該 CLI 那份不存在代表這支沒有待重啟的部署」。
Why:`jsc-hooks` 這一輪把狀態檔改成一支 CLI 一份,路徑從單一檔案變成狀態目錄底下的一份。`deploy.sh` 印的是操作者接下來要看的檔案路徑,印錯就指向一個不存在的檔案;`write-guides.sh` 寫出的更新指引是下一輪部署的依據,留著舊路徑會讓人以為刪掉那個檔案就能解除閘門;`config-spec.tsv` 是 `/jsc-cli:doctor` 比對設定落點的依據,路徑對不上就查不到這份執行期暫態。
How:三處都只跟著改路徑與說明,掛閘門的動作本來就是轉呼叫 `jsc-hooks` 的 `restart-gate.sh require`,這裡不重寫一份判定,也不自己組狀態檔內容——路徑與格式的唯一來源留在 `restart-gate.sh`。`config-spec.tsv` 那一列的型別仍是 `global` 的執行期暫態、備份與還原都維持 `none`,欄位數不變。
Who:`jsc-cli:deploy` 的部署收尾與更新指引,對齊 `jsc-hooks` 一支 CLI 一份的重啟狀態檔。
This commit is contained in:
@@ -50,7 +50,7 @@ $JSC_HOME/models.conf file global no - file ask 各 SDLC 階段的偏好模型
|
|||||||
$JSC_HOME/html-styles.conf file global no - file ask 各類頁面的 HTML 匯出版型與樣式,專案 .jsc/html-styles 可覆寫
|
$JSC_HOME/html-styles.conf file global no - file ask 各類頁面的 HTML 匯出版型與樣式,專案 .jsc/html-styles 可覆寫
|
||||||
$JSC_HOME/update-guide.md file global no - file manual 這台機器的更新指引,由 jsc-cli/tools/write-guides.sh 產生;缺了就重跑 /jsc-cli:deploy
|
$JSC_HOME/update-guide.md file global no - file manual 這台機器的更新指引,由 jsc-cli/tools/write-guides.sh 產生;缺了就重跑 /jsc-cli:deploy
|
||||||
$JSC_HOME/remove-guide.md file global no - file manual 這台機器的移除指引,由 jsc-cli/tools/write-guides.sh 產生;缺了就重跑 /jsc-cli:deploy
|
$JSC_HOME/remove-guide.md file global no - file manual 這台機器的移除指引,由 jsc-cli/tools/write-guides.sh 產生;缺了就重跑 /jsc-cli:deploy
|
||||||
$JSC_HOME/restart-required file global no - none - 部署收尾寫下的重啟狀態檔,執行期暫態;不存在代表沒有待重啟的部署,jsc-hooks 讀它提示重啟
|
$JSC_HOME/restart-required.d file global no - none - 部署收尾寫下的重啟狀態檔目錄,一支 CLI 一份,執行期暫態;該 CLI 那份不存在代表這支沒有待重啟的部署,jsc-hooks 讀它提示重啟
|
||||||
.jsc/models file project no - file ask 本專案的 SDLC 偏好模型鏈,覆寫 $JSC_HOME/models.conf
|
.jsc/models file project no - file ask 本專案的 SDLC 偏好模型鏈,覆寫 $JSC_HOME/models.conf
|
||||||
.jsc/html-styles file project no - file ask 本專案的 HTML 匯出版型與樣式,覆寫 $JSC_HOME/html-styles.conf
|
.jsc/html-styles file project no - file ask 本專案的 HTML 匯出版型與樣式,覆寫 $JSC_HOME/html-styles.conf
|
||||||
.claude/settings.json file project no - file manual claude 的專案層設定;jsc hook 由 plugin 的 hooks.json 接線,這裡不該有 jsc 殘留接線
|
.claude/settings.json file project no - file manual claude 的專案層設定;jsc hook 由 plugin 的 hooks.json 接線,這裡不該有 jsc 殘留接線
|
||||||
|
|||||||
|
+4
-4
@@ -19,9 +19,9 @@
|
|||||||
# kiro 的執行檔是 kiro-cli;先探測這個版本認不認得 plugin 子指令(部分版本已經完全
|
# kiro 的執行檔是 kiro-cli;先探測這個版本認不認得 plugin 子指令(部分版本已經完全
|
||||||
# 移除,例:2.18.1),認得才逐一嘗試、失敗才退回複製,不認得就整批直接走複製,
|
# 移除,例:2.18.1),認得才逐一嘗試、失敗才退回複製,不認得就整批直接走複製,
|
||||||
# 不逐一撞一次「unrecognized subcommand」才退回。
|
# 不逐一撞一次「unrecognized subcommand」才退回。
|
||||||
# install 或 update 全數成功時,收尾寫一行進 $JSC_HOME/restart-required,代表這台機器有一輪
|
# install 或 update 全數成功時,收尾轉呼叫 jsc-hooks 的 restart-gate.sh require,掛上這支 CLI
|
||||||
# 部署還沒重啟。擋人邏輯不在這裡:由 jsc-hooks 讀這個檔案提示使用者重啟,逃生門
|
# 的重啟閘門(狀態檔一支 CLI 一份,落在 $JSC_HOME/restart-required.d/{cli})。擋人邏輯不在
|
||||||
# JSC_RESTART_GATE=off 也由那邊判讀。
|
# 這裡:由 jsc-hooks 讀該 CLI 那一份提示使用者重啟,逃生門 JSC_RESTART_GATE=off 也由那邊判讀。
|
||||||
# 更新指引與移除指引由同目錄的 write-guides.sh 產生,一輪部署跑一次,不在這支腳本裡:
|
# 更新指引與移除指引由同目錄的 write-guides.sh 產生,一輪部署跑一次,不在這支腳本裡:
|
||||||
# 這支腳本的職責是「對單一 CLI 部署」,指引寫的是整台機器的樣貌。
|
# 這支腳本的職責是「對單一 CLI 部署」,指引寫的是整台機器的樣貌。
|
||||||
# 環境變數:
|
# 環境變數:
|
||||||
@@ -93,7 +93,7 @@ mark_restart() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
if JSC_CLI="$CLI" sh "$rg" require "$MODE" $DOMAINS </dev/null; then
|
if JSC_CLI="$CLI" sh "$rg" require "$MODE" $DOMAINS </dev/null; then
|
||||||
printf 'restart\t%s\n' "${JSC_HOME:-$HOME/.jsc}/restart-required"
|
printf 'restart\t%s\n' "${JSC_HOME:-$HOME/.jsc}/restart-required.d/$CLI"
|
||||||
else
|
else
|
||||||
printf 'note\t%s\t%s\n' "$CLI" "restart-gate.sh require 失敗,這次沒有掛上重啟閘門"
|
printf 'note\t%s\t%s\n' "$CLI" "restart-gate.sh require 失敗,這次沒有掛上重啟閘門"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ write_update_guide() {
|
|||||||
printf '1. 重新接線 hooks:`/jsc-hooks:hooks-install`。plugin 換版後接線檔會過期。\n'
|
printf '1. 重新接線 hooks:`/jsc-hooks:hooks-install`。plugin 換版後接線檔會過期。\n'
|
||||||
printf '2. 關閉目前的工作階段並重新啟動。新的技能內容要重開工作階段才載入得到。\n'
|
printf '2. 關閉目前的工作階段並重新啟動。新的技能內容要重開工作階段才載入得到。\n'
|
||||||
printf '3. 體檢一次:`/jsc-cli:doctor`。確認版本、接線與設定都對得上。\n\n'
|
printf '3. 體檢一次:`/jsc-cli:doctor`。確認版本、接線與設定都對得上。\n\n'
|
||||||
printf '`%s` 這個檔案存在,就代表有一輪部署還沒重啟。重啟提示由 `jsc-hooks` 判讀,逃生門是 `JSC_RESTART_GATE=off`。\n\n' "$JSC_HOME/restart-required"
|
printf '`%s/{cli}` 這份檔案存在,就代表那一支 CLI 有一輪部署還沒重啟。狀態檔一支 CLI 一份,重啟只清自己那份,別支的閘門不受影響。重啟提示由 `jsc-hooks` 判讀,逃生門是 `JSC_RESTART_GATE=off`。\n\n' "$JSC_HOME/restart-required.d"
|
||||||
printf '## 移除\n\n'
|
printf '## 移除\n\n'
|
||||||
printf '要整組移除看 `%s`。\n' "$REMOVE_GUIDE"
|
printf '要整組移除看 `%s`。\n' "$REMOVE_GUIDE"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user