AX-2205: Add SH support - #89
Merged
Merged
Conversation
Port of jfrog/claude-plugin#78. Self-hosted JPDs do not serve /ml/core off the platform root — the same APIs sit behind /bridge-client — so every probe 404s and the caller reports the feature as absent. Each /ml/core call site now retries once behind /bridge-client after a 404, and adopts that result only when it evidences a working endpoint, so no pre-existing failure changes its status, detail or exit code: - modules/core/agent-guard-check.mjs and its jfrog-mcp-management copy: the HTTP call is split into fetchSetting(), giving each attempt its own AbortController so the retry cannot inherit a spent timeout budget. Only an enabled/registry-off answer replaces the root verdict. - jfrog-detect-catalog-runtime.mjs: the fallback runs in both parts. Part A resolves the prefix anonymously; Part B retries independently for a JPD that answers 401 anonymously at the root but 404s the authenticated call. Part A adopts only a code that says the catalog is deployed, Part B only a 2xx of the catalog's shape or a 403. The two skill scripts are byte-identical to the claude-plugin versions. The modules/core copy here is one revision behind on an unrelated envLookup helper, so it was patched in place rather than copied; that drift is untouched and left for the next modules sync. Tests: unit coverage for the fallback plus an integration suite that spawns both skill scripts against a localhost JPD stub with a fake jf on PATH. The repo ran no unit tests in CI, so validate-template.yml now runs these and the two pre-existing cursor-*.test.mjs suites. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Closed
yanivt-jfrog
approved these changes
Sep 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Self-hosted JFrog Platform instances serve these APIs behind
/bridge-clientrather than off the platform root, so the Agent Guard and AI Catalog checks always 404 and report the feature as unavailable.Both checks now retry once behind
/bridge-clientafter a 404, and use that answer only when it comes from a working endpoint — every other outcome keeps its existing behaviour. SaaS is unaffected.Port of jfrog/claude-plugin#78. Tests:
node --test— 13 unit, 17 integration, plus the two pre-existing suites, all passing and now wired into CI.