diff --git a/Justfile b/Justfile index d9e71581d8b0..e956a1133d47 100644 --- a/Justfile +++ b/Justfile @@ -155,6 +155,20 @@ debug-ui: npm install && \ npm run start-gui +# Run UI with main process debugging enabled +# To debug main process: +# 1. Run: just debug-ui-main-process +# 2. Open Chrome → chrome://inspect +# 3. Click "Open dedicated DevTools for Node" +# 4. If not auto-detected, click "Configure" and add: localhost:9229 + +debug-ui-main-process: + @echo "🔍 Starting Goose UI with main process debugging enabled" + @just release-binary + cd ui/desktop && \ + npm install && \ + npm run start-gui-debug + # Run UI with alpha changes run-ui-alpha temporal="true": @just release-binary diff --git a/ui/desktop/package-lock.json b/ui/desktop/package-lock.json index 88b841905571..538c246aa3c7 100644 --- a/ui/desktop/package-lock.json +++ b/ui/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "goose-app", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goose-app", - "version": "1.1.0", + "version": "1.2.0", "license": "Apache-2.0", "dependencies": { "@ai-sdk/openai": "^0.0.72", diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 3986c0305db0..bf7920ef905e 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -1,7 +1,7 @@ { "name": "goose-app", "productName": "Goose", - "version": "1.1.0", + "version": "1.2.0", "description": "Goose App", "engines": { "node": "^22.9.0" @@ -11,6 +11,7 @@ "typecheck": "tsc --noEmit", "generate-api": "openapi-ts", "start-gui": "npm run generate-api && electron-forge start", + "start-gui-debug": "npm run generate-api && electron-forge start -- --inspect=9229", "start": "cd ../.. && just run-ui", "start:test-error": "GOOSE_TEST_ERROR=true electron-forge start", "package": "electron-forge package", diff --git a/ui/desktop/src/preload.ts b/ui/desktop/src/preload.ts index 6ecc1a97c520..7f73d2963625 100644 --- a/ui/desktop/src/preload.ts +++ b/ui/desktop/src/preload.ts @@ -247,6 +247,11 @@ const appConfigAPI: AppConfigAPI = { getAll: () => config, }; +// Listen for recipe updates and update config directly +ipcRenderer.on('recipe-decoded', (_, decodedRecipe) => { + config.recipe = decodedRecipe; +}); + // Expose the APIs contextBridge.exposeInMainWorld('electron', electronAPI); contextBridge.exposeInMainWorld('appConfig', appConfigAPI);