Skip to content

Commit

Permalink
fix: remove MCP extension install debug shortcut - fixes #1433 (#1475)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexhancock authored Mar 3, 2025
1 parent ac81472 commit b96fed5
Showing 1 changed file with 7 additions and 100 deletions.
107 changes: 7 additions & 100 deletions ui/desktop/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,102 +194,9 @@ const createChat = async (app, query?: string, dir?: string, version?: string) =
globalShortcut.unregister('Alt+Command+I');
};

// Install MCP Extension shortcut
const registerMCPExtensionsShortcut = () => {
globalShortcut.register('Shift+Command+Y', () => {
const defaultUrl =
'goose://extension?cmd=npx&arg=-y&arg=%40modelcontextprotocol%2Fserver-github&id=github&name=GitHub&description=Repository%20management%2C%20file%20operations%2C%20and%20GitHub%20API%20integration&env=GITHUB_TOKEN%3DGitHub%20personal%20access%20token';

const result = dialog.showMessageBoxSync({
type: 'question',
buttons: ['Install', 'Edit URL', 'Cancel'],
defaultId: 0,
cancelId: 2,
title: 'Install MCP Extension',
message: 'Install MCP Extension',
detail: `Current extension URL:\n\n${defaultUrl}`,
});

if (result === 0) {
// User clicked Install
const mockEvent = {
preventDefault: () => {
console.log('Default handling prevented.');
},
};
app.emit('open-url', mockEvent, defaultUrl);
} else if (result === 1) {
// User clicked Edit URL
// Create a simple input dialog
const win = new BrowserWindow({
width: 800,
height: 120,
frame: false,
transparent: false,
resizable: false,
minimizable: false,
maximizable: false,
parent: BrowserWindow.getFocusedWindow(),
modal: true,
show: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});

win.loadURL(`data:text/html,
<html>
<body style="margin: 20px; font-family: system-ui;">
<input type="text" id="url" value="${defaultUrl}" style="width: 100%; padding: 8px; margin-bottom: 10px;">
<div style="text-align: right;">
<button onclick="window.close()" style="margin-right: 10px;">Cancel</button>
<button onclick="submit()" style="min-width: 80px;">Install</button>
</div>
<script>
function submit() {
require('electron').ipcRenderer.send('install-extension-url', document.getElementById('url').value);
}
// Handle Enter key
document.getElementById('url').addEventListener('keypress', (e) => {
if (e.key === 'Enter') submit();
});
// Focus the input
document.getElementById('url').focus();
document.getElementById('url').select();
</script>
</body>
</html>
`);

win.once('ready-to-show', () => {
win.show();
});

// Handle the URL submission
ipcMain.once('install-extension-url', (event, url) => {
win.close();
const mockEvent = {
preventDefault: () => {
console.log('Default handling prevented.');
},
};
if (url && url.trim()) {
app.emit('open-url', mockEvent, url);
}
});
}
});
};

const unRegisterMCPExtensionsShortcut = () => {
globalShortcut.unregister('Shift+Command+Y');
};

// Register shortcuts when window is focused
mainWindow.on('focus', () => {
registerDevToolsShortcut(mainWindow);
registerMCPExtensionsShortcut();
// Register reload shortcut
globalShortcut.register('CommandOrControl+R', () => {
mainWindow.reload();
Expand All @@ -299,7 +206,6 @@ const createChat = async (app, query?: string, dir?: string, version?: string) =
// Unregister shortcuts when window loses focus
mainWindow.on('blur', () => {
unregisterDevToolsShortcut();
unRegisterMCPExtensionsShortcut();
globalShortcut.unregister('CommandOrControl+R');
});

Expand Down Expand Up @@ -477,7 +383,8 @@ app.whenReady().then(async () => {
const appMenu = menu.items.find((item) => item.label === 'Goose');
// add Settings to app menu after About
appMenu.submenu.insert(1, new MenuItem({ type: 'separator' }));
appMenu.submenu.insert(1,
appMenu.submenu.insert(
1,
new MenuItem({
label: 'Settings',
accelerator: 'CmdOrCtrl+,',
Expand Down Expand Up @@ -645,16 +552,16 @@ app.whenReady().then(async () => {
exec(`cat ${filePath}`, (error, stdout, stderr) => {
if (error) {
// File not found
resolve({ file: "", filePath, error: null, found: false });
resolve({ file: '', filePath, error: null, found: false });
}
if (stderr) {
console.error('Error output:', stderr);
resolve({ file: "", filePath, error, found: false });
resolve({ file: '', filePath, error, found: false });
}
resolve({ file: stdout, filePath, error: null, found: true });
});
})
})
});
});

ipcMain.handle('write-file', (event, filePath, content) => {
return new Promise((resolve) => {
Expand All @@ -681,4 +588,4 @@ app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
});

0 comments on commit b96fed5

Please sign in to comment.