Skip to content

Conversation

@opdich
Copy link
Contributor

@opdich opdich commented Jun 13, 2025

Description

Fix #1625. This pull request introduces a new feature to manage notification settings within the app's settings section, along with backend support for opening system notification preferences. Key changes include the addition of a "Notifications" section in the UI, a modal with platform-specific instructions, and IPC handlers for opening system settings.

Screen.Recording.2025-06-11.at.12.10.25.PM.mov

Changes

Frontend Changes: Notification Settings UI

  • Added a "Notifications" section in AppSettingsSection with a button to open system notification settings and a link to display a configuration guide modal. (ui/desktop/src/components/settings/app/AppSettingsSection.tsx)
  • Introduced a modal with platform-specific instructions for enabling notifications, covering macOS, Windows, and Linux environments. (ui/desktop/src/components/settings/app/AppSettingsSection.tsx)

Backend Changes: IPC Handlers for System Settings

  • Added an IPC handler open-notifications-settings in the main process to open notification settings for macOS, Windows, and Linux, with fallbacks for unsupported platforms. (ui/desktop/src/main.ts)

Preload Script Updates

  • Extended the ElectronAPI type and electronAPI object to include the openNotificationsSettings method, enabling the renderer process to invoke the new IPC handler. (ui/desktop/src/preload.ts) [1] [2]

Testing

macOS

Tested on macOS 15.5

Windows

Not tested

Linux

Not tested

opdich added 9 commits June 10, 2025 15:46
* upstream/main: (26 commits)
  docs: add CLI token usage (block#2857)
  Add Linux desktop package building workflow (block#2826)
  fix: large sessions summarize/truncate  (block#2846)
  Fix: Adding dark mode support for recipe modal (block#2853)
  fix just (block#2849)
  add temporal service to builds. (block#2842)
  fix: added url encoding and decoding for goose recipe url (block#2845)
  claude 4 listing (block#2843)
  fix: Use the existing spinner in interactive mode (block#2829)
  chore(release): release version 1.0.27 (block#2844)
  Revert "Mnovich/temporal scheduler (block#2745)" (block#2839)
  chore(release): release version 1.0.26 (block#2833)
  Removed ui-v2 directory and updated project to use node in hermit and readme (block#2831)
  Mnovich/temporal scheduler (block#2745)
  fix: intel builds (block#2832)
  chore(release): release version 1.0.25 (block#2811)
  Nostrbook MCP is now on npm (block#2816)
  Update macOS install guide with Homebrew instructions (block#2823)
  remember window position (block#2808)
  feat(ui): put the scheduler behind an alpha (block#2810)
  ...
* upstream/main:
  Docs: Goose now respects gitignore files (block#2858)
* upstream/main:
  Docs: Fix readme (block#2880)
  fix: CPU hogging GUI (block#2877)
  feat/fix: don't stop cli starting if MCPs don't load (block#2860)
  fix invalid context length for claude models (block#2872)
  dynamic port selection for temporal (block#2865)
  Docs: Session Export via CLI (block#2867)
  Docs: Adding Snowflake as a Provider (block#2868)
  [goose-llm] update example to add toolResult status error (block#2854)
  fix: cap the repeat time when display usage (block#2864)
* upstream/main:
  fix: Revert downgrade to version number (block#2894)
  Goose recipes have settings now (block#2397)
  docs: update Snowflake link and description verbiage (block#2882)
  Fixed typos and wording for endpoint info for ollama (block#2861)
  Docs: Unlist blog post called What's in my goosehints file (block#2891)
  Docs: Fix Nav Bar and wrong command in docs (block#2889)
  fix the claude model name (block#2890)
  disable temporal by default (block#2886)
  feat(desktop): Add auto-update functionality to Goose desktop app (block#2852)
  docs: add goose web command (block#2856)
  Docs: Schedule recipes with the CLI (block#2881)
@opdich opdich marked this pull request as ready for review June 13, 2025 18:09
@opdich
Copy link
Contributor Author

opdich commented Jun 13, 2025

More than anything, the goal of this change is to direct users to their OS settings so they can enable notifications there.

Initially, I thought that we could test for the macOS notification state and conditionally open the Settings to prompt the user to turn them on. We would then manage the notification settings ourself in the electron app. However, there is no reliable method to detect whether notifications are enabled for an app in macOS.

One alternative UX was to open Settings whenever notifications are toggled on, but this is confusing and suggests that there is action to be taken even when notifications are already enabled. I settled on this approach where the notifications are entirely handled by the OS. I think it is a clearer UX and easier to explain in the modal.

opdich added 2 commits June 13, 2025 14:37
* upstream/main:
  Disable updater until we can debug more in release (block#2908)
  fix router trait error (block#2910)
  fix: Check for stderr error in receive() (block#2905)
  Damien/sagemaker tgi (block#2888)
  feat: (tool router) llm tool selector (block#2866)
  feat: (tool router) adds extension name in vector db & search tool (block#2855)
  Check for UPDATES_ENABLED flag before running update logic or in ui (block#2897)
  fix: handled the missing keyring error gracefully with a user-friendly message (block#2900)
  fix: handle JsonRPC error variants as responses (block#2903)
* upstream/main:
  Docs: Fetch MCP doesnt work with Gemini (block#2940)
  feat: add Help & Feedback section in App Settings (block#2935)
  docs: blog update (block#2937)
  docs: fixing blog image (block#2936)
  docs: lead/worker tutorial and blog post (block#2930)
  chore(deps): bump golang.org/x/net from 0.14.0 to 0.38.0 in /temporal-service (block#2836)
  chore(deps): bump google.golang.org/grpc from 1.57.0 to 1.57.1 in /temporal-service (block#2834)
  fix updater download text (block#2919)
  chore(release): release version 1.0.28 (block#2906)
  Enable updater and remove unzipping and installing update text (block#2918)
  docs: updates for lead-worker model (block#2916)
  fix: correct spelling in error messages and documentation (block#2840)
  Change updater to use platform agnostic and secure zip library (block#2913)
  Docs: Edit recipes on Goose desktop (block#2912)
@Kvadratni Kvadratni merged commit e335884 into block:main Jun 16, 2025
6 checks passed
michaelneale added a commit that referenced this pull request Jun 18, 2025
* main: (26 commits)
  chore(release): release version 1.0.29 (#2978)
  [fix][small] Replaced goose prompt unicode quotations with ascii quotations (#2972)
  fix: goose recipe prompt is not shown again when switch the view from settings to chat (#2870)
  fix: remove computer controller presentation (#2956)
  Fix GitHub Copilot Provider Config (#2955)
  Blog: Why I Used Goose to Build a Chaotic Emotion Detection App (#2959)
  Docs: Recipe settings (#2970)
  feat(ui): Add confirmation dialog for unsaved changes in extension modal (#2971)
  feat: alphabetize extensions in goose CLI (#2966)
  switch roles on condition for windows (#2975)
  fix version param for canary (#2974)
  enabling windows builds with code signing (#2968)
  feat(cli): add system prompt parameter to run command (#2253)
  Fix window not showing for some users (#2967)
  Add documentation for running with Ramalama local model serving in OCI Containers (#1973)
  Reddit MCP Server Tutorial (#2949)
  [fix] goose not quitting app completely (#2950)
  Opopadich/issue 1625 (#2904)
  chore(deps): bump go.temporal.io/api from 1.24.0 to 1.44.1 in /temporal-service (#2837)
  feat: add newline at end of file writes (#2221)
  ...
laanak08 added a commit that referenced this pull request Jun 18, 2025
* main: (28 commits)
  feat: optional fast edit models (#2580)
  feat: Add lead-worker model selection and real-time model display in GUI (#2964)
  chore(release): release version 1.0.29 (#2978)
  [fix][small] Replaced goose prompt unicode quotations with ascii quotations (#2972)
  fix: goose recipe prompt is not shown again when switch the view from settings to chat (#2870)
  fix: remove computer controller presentation (#2956)
  Fix GitHub Copilot Provider Config (#2955)
  Blog: Why I Used Goose to Build a Chaotic Emotion Detection App (#2959)
  Docs: Recipe settings (#2970)
  feat(ui): Add confirmation dialog for unsaved changes in extension modal (#2971)
  feat: alphabetize extensions in goose CLI (#2966)
  switch roles on condition for windows (#2975)
  fix version param for canary (#2974)
  enabling windows builds with code signing (#2968)
  feat(cli): add system prompt parameter to run command (#2253)
  Fix window not showing for some users (#2967)
  Add documentation for running with Ramalama local model serving in OCI Containers (#1973)
  Reddit MCP Server Tutorial (#2949)
  [fix] goose not quitting app completely (#2950)
  Opopadich/issue 1625 (#2904)
  ...
btdeviant pushed a commit to btdeviant/goose that referenced this pull request Jun 25, 2025
s-soroosh pushed a commit to s-soroosh/goose that referenced this pull request Jul 18, 2025
Signed-off-by: Soroosh <soroosh.sarabadani@gmail.com>
cbruyndoncx pushed a commit to cbruyndoncx/goose that referenced this pull request Jul 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Notify users when Goose is done working

4 participants