-
Notifications
You must be signed in to change notification settings - Fork 2.6k
ui: turn on extensions at startup #1861
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
Conversation
1c34e8e to
7d5990e
Compare
|
|
||
| const setupExtensions = async () => { | ||
| // First quickly check if we have model and provider to set chat view | ||
| const checkRequiredConfig = async () => { |
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.
rearranged code into this otherwise we were stuck on onboarding page until extensions finished loading
| extensionConfig, | ||
| }: activateExtensionProps): Promise<void> { | ||
| try { | ||
| // AddToAgent |
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.
had to explicitly throw all errors to get the intended behavior..
| // Setup extensions in parallel | ||
| const setupExtensions = async () => { | ||
| // Set the ref immediately to prevent duplicate runs | ||
| initAttemptedRef.current = true; |
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.
Does anything read from this? It doesn't appear so. We can probably remove it.
| if (refreshedExtensions.length === 0) { | ||
| // If we still have no extensions, this is truly a first-time setup | ||
| console.log('First-time setup: Adding all built-in extensions...'); | ||
| await initializeBuiltInExtensions(addExtension); |
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.
Conceptual question.
If refreshedExtensions comes back the first time you ever boot the app as empty, is it any different/required to have a separate initializeBuiltInExtensions function? Could we just use a single syncBuiltInExtensions that behaves the same was as initialize if there were no extensions to begin with?
(No need to address this in this PR if it distracts - just trying to find opportunities to reduce complexity)
* main: ui: turn on extensions at startup (#1861) ui: models dropdown (#1860) fix: cli empty line (#1856) feat: Allow setting OpenAI timeout from config (#1819) feat: add retry for google (#1854) feat(extensions): add Java/JDK support for MCP servers (#1816) feat: extract `StdioProcessError(msg)` to try to display (#1855) fix: show window bugfix (#1840) fix: append the attachment path to the existing text in the input prompt (#1842) docs: updated docs for smart approval mode (#1853) styles: chat scroll interaction (#1837) ui: add description field to modal (#1846) feat: use temp dir for extracting goose binary (#1838) ui: remove and update extensions (#1847) fix: disappearing user text when stopped (#1839)
Turns on extensions at start up -- should toggle extensions that fail to start up to off but we get too many toasts so should fix that in follow-up: