信標改數「真的被註冊的閘」——它一直多報一支樣板
leo 的雲端驗收(2026-08-23)抓到:信標說 44 支,`ls hooks/ | wc -l` 是 49,對不上。
追下去是 `ls "$ROOT"/hooks/*.sh | wc -l`:
把 `pre-write-guard.template.sh`(樣板,不是閘)與兩支沒掛註冊的輔助檔一起算進去。
🔴 這個數字是 leo 判斷「這個 session 到底有沒有閘」的唯一介面——**多報就是假綠**。
改成數 `hooks.json` 裡註冊過的唯一 `.sh`;hooks.json 讀不到才退回檔案數(且排除樣板)。
實測兩向:
正向(真的 plugin 根目錄) → 42(與 hooks.json 註冊數一致)
反向(沒有 hooks.json 的假根) → 2(三個檔裡有一個是 .template.sh,沒算進去)
查過歷史:本檔自 daa1674 建立以來只有那一版,沒有別的分支修過這段。
inkstone/InkStoneCo#57
This commit is contained in:
@@ -17,7 +17,17 @@ ROOT="${CLAUDE_PLUGIN_ROOT:-}"
|
||||
VER="$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' \
|
||||
"$ROOT/.claude-plugin/plugin.json" 2>/dev/null | head -1)"
|
||||
VER="${VER:-未知}"
|
||||
GATES="$(ls "$ROOT"/hooks/*.sh 2>/dev/null | wc -l | tr -d ' ')"
|
||||
# 🔴 數「真的被註冊的」,不是數目錄裡有幾個 .sh(leo 的雲端驗收 2026-08-23 抓到):
|
||||
# 舊寫法 `ls hooks/*.sh` 把 `pre-write-guard.template.sh`(樣板,不是閘)
|
||||
# 與兩支沒掛註冊的輔助檔一起算進去 ⇒ 報 45,實際註冊 42。
|
||||
# 這個數字是 leo 判斷「這個 session 有沒有閘」的唯一介面——**多報就是假綠**。
|
||||
# (查過歷史:本檔自 daa1674 建立以來只有那一版,沒有別的分支修過這段。)
|
||||
GATES="$(grep -oE 'hooks/[a-zA-Z0-9._-]+\.sh' "$ROOT/hooks/hooks.json" 2>/dev/null \
|
||||
| sort -u | wc -l | tr -d ' ')"
|
||||
case "$GATES" in
|
||||
''|*[!0-9]*|0)
|
||||
GATES="$(ls "$ROOT"/hooks/*.sh 2>/dev/null | grep -cv '\.template\.sh$' | tr -d ' ')" ;;
|
||||
esac
|
||||
|
||||
MSG="🟢 ISEP v${VER} 已載入(${GATES} 支閘在 ${ROOT})"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user