-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: static settings page #570
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 6 out of 20 changed files in this pull request and generated no comments.
Files not reviewed (14)
- ui/desktop/package.json: Language not supported
- ui/desktop/src/ChatWindow.tsx: Evaluated as low risk
- ui/desktop/src/components/MoreMenu.tsx: Evaluated as low risk
- ui/desktop/src/utils/cn.ts: Evaluated as low risk
- ui/desktop/src/components/settings/types.ts: Evaluated as low risk
- ui/desktop/src/components/settings/Settings.tsx: Evaluated as low risk
- ui/desktop/src/components/ui/Tooltip.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/SettingsSection.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/SectionHeader.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/ToggleableItem.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/SettingItem.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/modals/RevealKeysDialog.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/modals/AddModelDialog.tsx: Evaluated as low risk
- ui/desktop/src/components/settings/modals/BaseDialog.tsx: Evaluated as low risk
Comments suppressed due to low confidence (1)
ui/desktop/src/components/ui/toast.tsx:11
- The class name
animate-in
should beanimate-in-fade-in-slide-in-from-bottom-5
.
animate-in fade-in slide-in-from-bottom-5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great we should merge it.
Before we do, is there a way we can "feature flag" it so it only shows up when running from source code, and not in the deployed app sent to MSC? I just wouldn't want to ship it to real users before the settings actually take effect.
yeah great idea -- was also thinking maybe the settings page stuff can be merged to some intermediary branch before merging to v1.0 but might end up messier |
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
b90ecda
to
cf7bdc4
Compare
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
- Fix import conflicts from Settings component move - Update electron API type definitions - Standardize createChatWindow calls with empty string param - Remove duplicate imports
da6a5b8
to
6276f87
Compare
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
Desktop App for this PRThe following build is available for testing: The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder. This link is provided by nightly.link and will work even if you're not logged into GitHub. |
* v1.0: feat: static settings page (#570) styles: adding arcade styles and cash sans (#581) feat: quick spinner while loading tokenizers (#573) Add timeout middleware for clients (#572) chore: remove unused old setup for CLI (#574) feat: env and secrets configuration for mcp server (#565) Add Databricks moderation (#540) feat: add pagination support for tools/list and resources/list (#566) Add resource capabilties to MCP servers that use it (#576) Add goose versions to the UI (#526) fix: Set stdin to null in shell/bash tools (#568) Add base moderation to Providers (#513) feat: set process_group(0) on stdio systems to avoid ctrl-c handling (#567) feat: read only active resources in the agent loop (#560)
PR Summary: Implement New Static Settings Page
Author's note: this change is feature-flag gated by npm environment and will only appear if you're running the electron app (
npm start
)This pull request introduces a new static settings page to the Goose project, providing users with an interface to manage application preferences and configurations.
Screen.Recording.2025-01-10.at.11.18.07.AM.mov
How It Works
Page Structure:
ui/desktop/src/components/settings/Settings.tsx
./settings
route, added to the application's routing configuration.Core Functionality:
SectionHeader.tsx
.SettingItem.tsx
, which allows toggling options or updating values.KeyItem.tsx
component, supporting edits.@radix-ui/react-dialog
is used to display modals for advanced settings or confirmations.State Persistence:
localStorage
to save and retrieve user preferences, ensuring settings persist across sessions (persists withcmd+N
or if you close the electron app and re-runnpm start
).localStorage.setItem('user_settings', JSON.stringify(settings))
.localStorage.getItem('user_settings')
.Missing or Incomplete Functionality
localStorage
. A backend solution is required for cross-device synchronization or user account integration.Key Code Changes
/settings
route to the app's routing configuration.Settings
: Main page logic and rendering.SettingItem
: UI for individual settings.KeyItem
: Specialized input for key-based settings.SectionHeader
: Organizational headers for grouped settings.@radix-ui/react-dialog
for modal dialogs.Checklist
localStorage
.