Skip to content

feat: add workspace app icons to tray window #86

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

Merged
merged 15 commits into from
May 12, 2025
Merged

Conversation

deansheather
Copy link
Member

@deansheather deansheather commented May 6, 2025

  • Adds AgentAppViewModel to handle each button
  • Adds collapsible control components to handle the collapsing section
  • Adds Uuid type to work around issues with the built-in Guid type
  • Adds ModelMerge utility for merging lists with minimal updates to work around constant flashing in the UI

TODO:

  • Auto expand the first agent (to match macOS)
  • Only allow one agent to be expanded at a time (to match macOS)
  • Add tests for ModelMerge
  • Get rid of the SVG size constants in AgentAppViewModel since I don't think they do anything
  • Add $SESSION_TOKEN replacement
  • Display icons for vscode and vscode insiders

Known issues:

  • /icon/cursor.svg seems to be an SVG with an embedded PNG, which I guess can't be rendered properly by WinUI
buttons.mp4

Closes #50

- Adds AgentAppViewModel to handle each button
- Adds collapsible control components to handle the collapsing section
- Adds Uuid type to work around issues with the built-in Guid type
- Adds ModelMerge utility for merging lists with minimal updates to work
  around constant flashing in the UI
Copy link
Collaborator

@spikecurtis spikecurtis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't finish looking at all the files, but it looks like you're still doing some stuff, so I'll get another look later anyway. It's the end of my day so sending the comments I have so you'll have them to look at in the morning.


public partial class CoderApiClient
{
public Task<WorkspaceAgent> GetWorkspaceAgent(string id, CancellationToken ct = default)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would be safer if we accepted a UUID, rather than a string, which could totally change the endpoint we hit.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I considered this but didn't want to add a dependency between CoderSdk and Vpn.Proto, and adding a new project for just a UUID type seems overkill. The Go codersdk package accepts string IDs for some methods as well, so I think it's fine.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had (wrongly) assumed/remembered that we parsed the Agent protobufs into a model with Guid id types. But, we just leave it as a byte string. You're right, not worth introducing the dep.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we move our Uuid implementation to CoderSdk? There will likely be plenty of times we want to interact with UUIDs outside of the protobuf protocols.

@deansheather deansheather requested a review from spikecurtis May 9, 2025 07:08

public partial class CoderApiClient
{
public Task<WorkspaceAgent> GetWorkspaceAgent(string id, CancellationToken ct = default)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we move our Uuid implementation to CoderSdk? There will likely be plenty of times we want to interact with UUIDs outside of the protobuf protocols.

/// 4122 compliance, but it should provide enough coverage for Coder
/// Desktop.
/// </summary>
public class Uuid
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we move this to CoderSdk?

Copy link
Collaborator

I suggested we move Uuid to CoderSdk, but I don't need to review again.

@deansheather deansheather enabled auto-merge (squash) May 12, 2025 17:09
@deansheather deansheather merged commit a6f7bb6 into main May 12, 2025
3 checks passed
@deansheather deansheather deleted the dean/app-buttons branch May 12, 2025 17:13
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.

Button Auto-Population for External Apps
3 participants