From 5e5766a9141ea0439e3e4b414e88749d908626c5 Mon Sep 17 00:00:00 2001 From: clover caruso Date: Sun, 4 Oct 2026 21:43:24 -0700 Subject: [PATCH] Put Shale linking directly in MCP approval requests Unlinked requests now offer Link account as their primary action and preserve the request through sign-in. Linked requests retain repository selection and explicit approval. Assisted-by: gpt-6.1-sol --- dashboard/web/pages/MCP.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/dashboard/web/pages/MCP.tsx b/dashboard/web/pages/MCP.tsx index 27318a3a06f5bc759e0a8af31ca59be62ef7331e..5c81d33e583d546dc2c99e1bf570c099702bdc63 100644 --- a/dashboard/web/pages/MCP.tsx +++ b/dashboard/web/pages/MCP.tsx @@ -33,6 +33,13 @@ export function MCP() { }; }); onCleanup(() => events?.close()); + const linkShale = async () => { + setBusy(true); + try { + const result = await parseResponse(api.mcp.shale.$post({ json: { request: consent()?.scopes.includes("shale:read") ? request() || undefined : undefined } })); + window.location.assign(result.redirect); + } catch (error) { toast(reason(error)); setBusy(false); } + }; const answer = async (deny: boolean) => { setBusy(true); try { @@ -52,10 +59,10 @@ export function MCP() {
{(resource) => setPicked(checked ? [...picked(), resource.id] : picked().filter((item) => item !== resource.id))}>{resource.name} }
-

Link your Shale account below to choose repositories.

+

Link your Shale account to choose repositories.

No resources are available to your account.

This connection can refresh access without another sign-in.

-
+
Link account}>
} @@ -71,11 +78,7 @@ export function MCP() { Link your Shale account to grant clients access to its repositories.

}> {(shale) =>

Account linked

}
- +