- Notifications
You must be signed in to change notification settings - Fork4
Fix Coder connect workflows#2
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
fioan89 commentedFeb 24, 2025
- fixes login screen and glitches related jumping to the workspaces page once the connection to Coder deployment is estabilished.
- support for opening URLs in browser
- fixes user agent reporting
- fixes connection status rendering
- will also reflect on the jar/zip name
- copied from coder gateway plugin
- the API for browsing url(s) is no longer available- this patch implements a basic URL opener that relies on native tools.
- if successfully signed in we go back to the main page which shows the environments/workspaces- similar approach if user hits Cancel during sign in- `EnvironmentUiPageManager` is an undocumented Toolbox component that has more flexibility to navigate between pages
- the connection status was unreadable due to the background and foreground colors used. The latest Toolbox version comes with standard color palettes that change based on the theme and environment state.- plus some small extra refactorings that reduce the number of constructor parameters and rely on the service locator
- url was not displayed in the env page until the rest client was connected- but we don't need to wait for the rest client to connect, the url is already available from settings
- Toolbox does not provide a plugin manager interface with metadata about current plugin. So we had to implement one for ourselves in order to have simple things like plugin version.- the implementation relies on the extension.json which is deployed in the root of the jar (i.e. the plugin jar)- the rest of the json fields are ignored for now
- use plugin's version
| val dir= env.get("XDG_DATA_HOME") | ||
| if (dir.isNotBlank()) { | ||
| returnPaths.get(dir,"coder-gateway") | ||
| returnPaths.get(dir,"coder-toolbox") |
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.
I think we should drop the toolbox suffix here. There is nothing like a Coder toolbox. The coder is part of the JetBrains toolbox.
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.
We can probably do it as long as we're sure we are not overlapping (now or in the future) with coder cli manually installed.
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.
Hmm. I will then keep the prefix. I was not sure what it was for.
@bcpeinhardt and@f0ssel may have more context here,
matifali left a comment
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.
A general comment abut using the-toolbox suffix.
@bcpeinhardt can review the code better.
matifali left a comment
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.
@bcpeinhardt I am approving to unblock so that we can keep moving frward.
This PR addresses two issues in the URI handler workflow to improve userexperience and reliability.1. Streamline version fallback behaviorProblem: When the URI handler receives a build number that is no longeravailable, the application would fall back to the latest version butdisplay a confirmation dialog. Netflix reported that this confirmationdialog disrupts the user workflow.Solution: Removed the confirmation dialog and replaced it with logging.The handler now silently falls back to the latest available version whenthe requested build number is unavailable, maintaining a seamless userexperience.2. Fix connect page not displaying when Toolbox is already openProblem: When Toolbox is already running and a URI is executed, theconnect page fails to display. Investigation revealed that the UI eventemitted via MutableSharedFlow(replay = 0) is lost because the UIcollector is not yet active when processEvent() is called.Solution: Introduced a 66-100ms delay before emitting the UI event. Thisdelay ensures the collector is ready to receive events, preventing themfrom being dropped. The timing was determined through testing andappears to account for the collector initialization time.Note: The delay infix#2 is a workaround for what appears to be atiming issue with the MutableSharedFlow collector initialization.