From 4aa7758914b3551627f9c25c0becf5566ccb4b15 Mon Sep 17 00:00:00 2001 From: Alex Hancock Date: Fri, 4 Apr 2025 15:25:25 -0400 Subject: [PATCH] fix: sanitize names before enabling/disabling extensions in Settings V2 (#2040) --- .../src/components/settings_v2/extensions/agent-api.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/desktop/src/components/settings_v2/extensions/agent-api.ts b/ui/desktop/src/components/settings_v2/extensions/agent-api.ts index c7ed99f7..29102df5 100644 --- a/ui/desktop/src/components/settings_v2/extensions/agent-api.ts +++ b/ui/desktop/src/components/settings_v2/extensions/agent-api.ts @@ -140,6 +140,8 @@ export async function addToAgent( extension.cmd = await replaceWithShims(extension.cmd); } + extension.name = sanitizeName(extension.name); + return await extensionApiCall('/extensions/add', extension, options); } catch (error) { // Check if this is a 428 error and make the message more descriptive @@ -162,9 +164,13 @@ export async function removeFromAgent( options: ToastServiceOptions = {} ): Promise { try { - return await extensionApiCall('/extensions/remove', name, options); + return await extensionApiCall('/extensions/remove', sanitizeName(name), options); } catch (error) { console.error(`Failed to remove extension ${name} from agent:`, error); throw error; } } + +function sanitizeName(name: string) { + return name.toLowerCase().replace(/-/g, '').replace(/_/g, '').replace(/\s/g, ''); +}