From 2f43ecc346f6f9d6846d2fd9c4b6115e6e1efd3e Mon Sep 17 00:00:00 2001 From: richblack Date: Sun, 23 Aug 2026 21:02:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=A1=E6=A8=99=E8=87=AA=E5=B7=B1=E8=AC=9B?= =?UTF-8?q?=E3=80=8C=E9=80=99=E4=B8=80=E4=BB=BD=E6=98=AF=E8=AA=B0=E3=80=8D?= =?UTF-8?q?=E2=80=94=E2=80=94vendor=20=E9=82=84=E6=98=AF=20plugin=20?= =?UTF-8?q?=E5=BF=AB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit leo 的雲端驗收整整卡了一輪在這個問題上:同一台機器可能有兩份 ISEP, 兩份都會印信標,版本號一樣時分不出誰在說話。而「閘從哪一份走」正是決定 「另一份能不能拆」的唯一判準。 總管上一版設計的判準(叫雲端跑 env | grep CLAUDE_PLUGIN_ROOT)也是錯的: 那個變數是 hook 呼叫當下才注入的,在 Bash 工具的 env 裡本來就看不到 ⇒ 空輸出不代表沒載入,那個探針從一開始就答不了這題。 改法:讓路徑自己講。快取在 plugins/cache/ 底下,vendor 的在 repo 的 .claude/ 底下。 三向實測: /root/.claude/plugins/cache/inkstone/isep/0.3.9 → 來源:plugin(marketplace 裝的) /home/user/inkstoneco/.claude/isep → 來源:vendor(repo 裡的複製本) 其他路徑 → 來源不明(不假裝知道) inkstone/InkStoneCo#57 --- .claude-plugin/plugin.json | 2 +- hooks/isep-presence-beacon.sh | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 16f4d8f..29f8591 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "isep", "description": "InkStone Environment Plugin —— leo 的 Claude Code 環境唯一真相源:43 支機械閘(53 條註冊,白話盤點見 docs/hooks-inventory.md)、7 支 slash command、2 支 skill、27 支腳本,外加治理規範與標籤真相源。本機與雲端裝同一份,沒有子集。", - "version": "0.3.8", + "version": "0.3.9", "keywords": [ "inkstone", "guardrails", diff --git a/hooks/isep-presence-beacon.sh b/hooks/isep-presence-beacon.sh index cd75f2c..3311a4d 100755 --- a/hooks/isep-presence-beacon.sh +++ b/hooks/isep-presence-beacon.sh @@ -29,7 +29,20 @@ case "$GATES" in GATES="$(ls "$ROOT"/hooks/*.sh 2>/dev/null | grep -cv '\.template\.sh$' | tr -d ' ')" ;; esac -MSG="🟢 ISEP v${VER} 已載入(${GATES} 支閘在 ${ROOT})" +# 🔴 講清楚「這一份是誰」(leo 2026-08-23 的雲端驗收卡在這裡整整一輪): +# 同一台機器上 ISEP 可能有兩份——marketplace 裝的 plugin 快取, +# 與 repo 裡 vendor 進去的複製本。**兩份都會印這一行**,而版本號一樣時分不出誰在說話。 +# 「閘到底從哪一份走」正是決定「另一份能不能拆」的唯一判準 +# ⇒ 讓路徑自己講:快取在 plugins/cache/ 底下,vendor 的在 repo 的 .claude/ 底下。 +# (查過歷史:本檔只有 daa1674 建立、b1f399f 改閘數兩輪,沒有人試過標示來源,也沒有被否決的方案。 +# KBDB 語意搜尋這段開發史:0 命中,該餵。) +case "$ROOT" in + */plugins/cache/*) SRC="plugin(marketplace 裝的)" ;; + */.claude/isep*) SRC="vendor(repo 裡的複製本)" ;; + *) SRC="來源不明" ;; +esac + +MSG="🟢 ISEP v${VER} 已載入(${GATES} 支閘|來源:${SRC}|${ROOT})" printf '%s\n' "{ \"systemMessage\": \"${MSG}\", -- 2.52.0