From 5049fc31cdd9a45949f88ea28f57bb4f46f93874 Mon Sep 17 00:00:00 2001 From: "melodic-standards-sync[bot]" <300666570+melodic-standards-sync[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 00:19:37 +0000 Subject: [PATCH] chore: sync standards components (29fa4c8b0f4c26feffb9373153476866c4ec8b67) --- .claude/cloud-bootstrap.sh | 42 +++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/.claude/cloud-bootstrap.sh b/.claude/cloud-bootstrap.sh index 3c88159..18992d5 100755 --- a/.claude/cloud-bootstrap.sh +++ b/.claude/cloud-bootstrap.sh @@ -207,16 +207,34 @@ if [[ -z "$fleet_plugins" ]]; then echo 'cloud-bootstrap: no fleet plugin list in this snapshot; repo declaration is the only source' >&2 fi +# Plugin CLI listings are shared across both sources and the catalog +# inventory. Each `install_plugins_from` used to call `marketplace list` and +# `plugin list` itself, and inventory listed marketplaces again: five CLI +# round-trips on every session, including the warm path where everything is +# already installed. One of each up front is enough to skip; a second +# marketplace list runs only when this session registered a new marketplace +# (so inventory can see its installLocation). New installs are recorded in +# plugin_have so the second source does not re-install them. Bash 3.2: no +# arrays, newline-delimited strings. +plugin_registered='' +plugin_have='' +plugin_mps='' +added_mp=0 + +mp_json=$(claude plugin marketplace list --json 2>/dev/null || true) +plugin_registered=$(printf '%s' "$mp_json" | jq -r '.[].name' 2>/dev/null || true) +plugin_mps=$(printf '%s' "$mp_json" | jq -r '.[] | select((.installLocation // "") != "") + | [.name, .installLocation] | @tsv' 2>/dev/null || true) +plugin_have=$(claude plugin list --json 2>/dev/null | jq -r '.[].id' 2>/dev/null || true) + # install_plugins_from