From f11b6455cef50027a2bdb984a37ed3a5117c2925 Mon Sep 17 00:00:00 2001 From: Defame1297 Date: Sat, 12 Sep 2026 21:50:46 +0000 Subject: [PATCH] chore: remove stale check-manifests references left by e647f14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit e647f14 deleted scripts/check-manifests.sh but missed three live files that still named it: the apm-marketplace-check hook description in .pre-commit-config.yaml, and comments in sync-plugin-content.sh and lib/marketplace-plugins.sh explaining design decisions by pointing at a script that no longer exists. Also deletes list_marketplace_remote_plugin_names from marketplace-plugins.sh — its only caller was check-manifests.sh, so it's been dead code since that commit. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01YR2CjVumUbEGWcMikcoXBD --- .pre-commit-config.yaml | 2 +- scripts/lib/marketplace-plugins.sh | 44 +++++++----------------------- scripts/sync-plugin-content.sh | 4 +-- 3 files changed, 13 insertions(+), 37 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ef2d349..1fc6145 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -104,7 +104,7 @@ repos: - id: apm-marketplace-check name: apm marketplace check - description: Validate every marketplace.packages[] entry resolves, including network reachability of remote refs -- catches stale/unreachable remote package references that check-manifests.sh deliberately skips (local-source checks only) + description: Validate every marketplace.packages[] entry resolves, including network reachability of remote refs -- the only hook that checks remote package references rather than local-source paths entry: apm marketplace check language: system stages: [pre-push] diff --git a/scripts/lib/marketplace-plugins.sh b/scripts/lib/marketplace-plugins.sh index 26de32b..0b7cc66 100644 --- a/scripts/lib/marketplace-plugins.sh +++ b/scripts/lib/marketplace-plugins.sh @@ -1,21 +1,21 @@ #!/usr/bin/env bash # Shared helper: enumerates the local (string-source) plugin entries declared in # .claude-plugin/marketplace.json. Sourced by scripts/sync-plugin-content.sh -# (--all) and scripts/check-manifests.sh so a future marketplace.json schema -# change (e.g. a new source type) only has to be handled in one place instead -# of drifting between two hand-maintained copies of the same walk. +# (--all), kept as its own file so a future marketplace.json schema change (e.g. +# a new source type) has one place to land if a second caller needs the walk. # # Requires jq. Not meant to be executed directly -- source it. # assert_marketplace_manifest_usable # # Checks the preconditions list_marketplace_local_plugins depends on but cannot -# report on. Both callers run the walk inside a process substitution +# report on. The caller runs the walk inside a process substitution # (`done < <(list_marketplace_local_plugins ...)`), which is its own subshell: a # jq abort in there kills only that subshell, so an unparseable manifest yields # zero lines and reads exactly like "this marketplace declares no local plugins". -# The caller then blames whatever its empty-set branch blames -- for -# check-manifests.sh, every plugin directory on disk being unlisted. +# sync-plugin-content.sh --all's own empty-set check (see there) is what catches +# that reading; it cannot tell an empty manifest from an unparseable one on its +# own, which is why this assert has to run first, in the caller's own shell. # # It also rejects an entry whose `source` is neither a local path string nor a # remote source object. Only those two shapes are classifiable: the walk below @@ -26,10 +26,9 @@ # # The check is deliberately typed as "not string AND not object" rather than # enumerating `.source == null`. Rejecting null specifically left every other -# malformed value (`"source": 42`, `"source": []`) passing the assert, skipped by -# the walk below, AND rescued by check-manifests.sh's disk -> marketplace name -# axis -- i.e. exactly the defect the null case was fixed for, reached with a -# different value. +# malformed value (`"source": 42`, `"source": []`) passing the assert while +# silently dropping out of the walk below -- i.e. exactly the defect the null +# case was fixed for, reached with a different value. # # Exits 1 with a specific message on any violation, so call it from the caller's # own shell -- never inside `< <(...)`, which is the exact swallowing this guards. @@ -70,7 +69,7 @@ assert_marketplace_manifest_usable() { # # Prints one "\t" line per local (string `source:`) # marketplace entry. Remote sources (github/git/npm objects) have no local -# directory to walk and are skipped, matching both callers' prior behavior. +# directory to walk and are skipped. list_marketplace_local_plugins() { local repo_root="$1" marketplace="$2" local plugin_count i name source_type source @@ -85,26 +84,3 @@ list_marketplace_local_plugins() { printf '%s\t%s\n' "$name" "$repo_root/$source" done } - -# list_marketplace_remote_plugin_names -# -# Prints the `name` of every REMOTE (object `source:`) marketplace entry, one per -# line -- the exact complement of list_marketplace_local_plugins. -# -# check-manifests.sh's disk -> marketplace pass uses it as its name axis: a plugin -# vendored on disk but declared with the remote-object shape has no local entry to -# path-match against, so without a name match it would be reported as unlisted when -# its entry is in fact right there. -# -# The select is `(.source | type) == "object"`, an allowlist of the one shape that -# axis is actually for -- NOT the denylist `(.source | type) != "string"` it used to -# be. That denylist was true for `null` (and for numbers, arrays, booleans), so a -# malformed entry marked its same-named directory "listed" while the local walk above -# skipped it for lacking a string source: one bad entry disabled BOTH directions of -# the check at once. assert_marketplace_manifest_usable rejects those shapes too, but -# this function must be correct on its own -- it is called from a different script, -# and a precondition that stops running is not a property of this select. -list_marketplace_remote_plugin_names() { - local marketplace="$1" - jq -r '.plugins[]? | select((.source | type) == "object") | .name // empty' "$marketplace" -} diff --git a/scripts/sync-plugin-content.sh b/scripts/sync-plugin-content.sh index 028ad85..7d7f4b6 100755 --- a/scripts/sync-plugin-content.sh +++ b/scripts/sync-plugin-content.sh @@ -192,8 +192,8 @@ fi if [[ "$ALL" -eq 1 ]]; then # Derives the plugin list from marketplace.json via the shared # list_marketplace_local_plugins helper (scripts/lib/marketplace-plugins.sh), - # the same one scripts/check-manifests.sh uses, instead of hand-maintaining a - # duplicate walk at every call site (see .pre-commit-config.yaml's + # a single implementation of the walk instead of hand-maintaining a + # duplicate at every call site (see .pre-commit-config.yaml's # check-plugin-content-sync). # # Hard error rather than a `|| pwd` fallback, on scripts/sync-marketplace-mirror.sh's