fix(frontend): surface pending tools in ServerDetail approval banner (MCP-2917)#721
Merged
Merged
Conversation
selectQuarantinedTools dropped freshly-pending tools whenever no tool was 'changed', so an all-pending, non-quarantined server hid the Tool-Quarantine banner even though those tools are genuinely blocked by the backend (checkToolApprovals -> BlockedTools) and the Servers page counts them (pending_count + changed_count). Banner and count now agree. - selectQuarantinedTools: surface both 'pending' and 'changed' tools on a non-quarantined server; keep suppression while the server is quarantined. - ServerDetail: subtle dismissible hint explaining pending tools come from tool-level quarantine and can be auto-approved via skip_quarantine / quarantine_enabled. - Tests: reconcile MCP-2101 trust-model unit tests to the new behavior, add all-pending regression test, add view-level banner/buttons/badge/hint test. - Docs: update tool-quarantine.md Web UI section. Related: MCP-2917
Deploying mcpproxy-docs with
|
| Latest commit: |
9dd4c06
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://61948a0b.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://fix-mcp-2917-pending-tools-b.mcpproxy-docs.pages.dev |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 27810783764 --repo smart-mcp-proxy/mcpproxy-go
|
There was a problem hiding this comment.
Approved via Claude Code review (MCP-2917). selectQuarantinedTools now surfaces pending+changed when not server-quarantined ([] when quarantined); MCP-2081 assertions coherently flipped into a regression test; ServerDetail renders pending tools with existing Approve/Block buttons. vue-tsc clean; vitest 3 changed specs 15/15, full suite 207/207 pass; CI 32/32 green.
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.
Summary
Makes
pending(new, never-approved) tools appear in the ServerDetail → Tools tab Tool-Quarantine banner with the existing per-tool and bulk Approve/Block buttons, so an operator can approve them.Previously
selectQuarantinedToolshad ahasChangedearly-return: the banner was hidden whenever no tool waschanged, even though pending tools on a non-quarantined server are genuinely blocked by the backend (checkToolApprovals→BlockedTools) and the Servers page already counts them (pending_count + changed_count). Banner and count now agree.Changes
frontend/src/utils/toolQuarantine.ts— drop thehasChangedearly-return; surface bothpendingandchangedtools on a non-quarantined server. Quarantined server still returns[](server-level banner covers it). Doc comment rewritten to document the new behavior and the intentional reversal of the MCP-2101 trust model.frontend/src/views/ServerDetail.vue— subtle, dismissible hint in the banner explaining pending tools come from tool-level quarantine and can be auto-approved by settingskip_quarantine: true(server) orquarantine_enabled: false(global). Updated thequarantinedToolscomputed comment.pending+serverQuarantined=falseregression test; added a view-level mount test asserting the banner, per-tool/bulk Approve & Block buttons, thependingwarning badge, the dismissible hint, and that Approve callsapi.approveTools.docs/features/tool-quarantine.mdWeb UI section updated.Verification
npx vitest --run→ 207 passed (4 new), incl. red→green TDD on the core fix.npx vue-tsc --noEmit→ clean.make build→ frontend + embedded Go binary build clean.Frontend-only. Independent of MCP-2918 (Tools.vue) and the CLI task.
Related: MCP-2917 (parent MCP-2916)