From b5ea4fa361c4ee4fca47941bb1b18386655bf31d Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Mon, 15 Jun 2026 14:08:33 +0800 Subject: [PATCH 1/2] fix(servers): pin the config modal's Save/Cancel footer The "Configure " modal kept its header, inputs, and action buttons inside a single scrolling container, so on servers with long credential/args/env forms the Save and Cancel buttons scrolled below the fold and were easy to miss. Restructure the modal as a flex column: fixed header, a scrollable body for the inputs (flex-1 overflow-y-auto), and a pinned footer (border-top) so Save/Cancel are always visible regardless of form length. All data-testids preserved. Closes #163 Signed-off-by: Mohammod Al Amin Ashik --- .../src/features/servers/ServersPage.tsx | 79 ++++++++++--------- 1 file changed, 42 insertions(+), 37 deletions(-) diff --git a/apps/desktop/src/features/servers/ServersPage.tsx b/apps/desktop/src/features/servers/ServersPage.tsx index ae5c9563..8db8b895 100644 --- a/apps/desktop/src/features/servers/ServersPage.tsx +++ b/apps/desktop/src/features/servers/ServersPage.tsx @@ -1412,22 +1412,25 @@ export function ServersPage() { data-testid="config-modal-overlay" >
-

- Configure {configModal.server.name} -

-

- {(configModal.server.auth && 'instructions' in configModal.server.auth - ? configModal.server.auth.instructions - : null) || 'Enter the required configuration to enable this server.'} -

- -
+
+

+ Configure {configModal.server.name} +

+

+ {(configModal.server.auth && 'instructions' in configModal.server.auth + ? configModal.server.auth.instructions + : null) || 'Enter the required configuration to enable this server.'} +

+
+ + {/* Scrollable body — the footer below stays pinned (#163) */} +
{(configModal.server.transport.metadata?.inputs ?? []).map( (input: InputDefinition) => { const obtainUrl = input.obtain_url || input.obtain?.url; @@ -1754,29 +1757,31 @@ export function ServersPage() {
)} -
- - -
+
+ + {/* Pinned footer — always visible regardless of form length (#163) */} +
+ +
From 07dd49e48d081dfbe20d188dd28098b8c79a3631 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Mon, 15 Jun 2026 14:09:29 +0800 Subject: [PATCH 2/2] feat(updater): apply updates silently on Windows (installMode quiet) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set plugins.updater.windows.installMode to "quiet" so the auto-updater applies updates with no installer window or progress dialog — the app just downloads, swaps, and relaunches into the new version, rather than flashing an installer that looks like a manual setup. "quiet" needs no elevation for the per-user (currentUser) NSIS install we ship, and install failures still reject through downloadAndInstall (the launch flow logs them; the Settings checker surfaces them), so silent mode doesn't hide errors. Switch to "passive" if a progress bar is ever wanted. Signed-off-by: Mohammod Al Amin Ashik --- apps/desktop/src-tauri/tauri.conf.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index 465cff8e..b93e1e59 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -24,7 +24,10 @@ "https://api.mcpmux.com/v1/update/latest.json", "https://github.com/mcpmux/mcp-mux/releases/latest/download/latest.json" ], - "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDdCQUZGMEVCMEZBOTk5RTcKUldUbm1ha1A2L0N2ZTlOZjN5T3pGOHBHRUlibytMY2tPeWJkQ01heDJzdTJqK3B3a2lBdDZ1T1oK" + "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDdCQUZGMEVCMEZBOTk5RTcKUldUbm1ha1A2L0N2ZTlOZjN5T3pGOHBHRUlibytMY2tPeWJkQ01heDJzdTJqK3B3a2lBdDZ1T1oK", + "windows": { + "installMode": "quiet" + } } }, "app": {