Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: oxidecomputer/console
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: b6c8d101
Choose a base ref
...
head repository: oxidecomputer/console
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1cc2ce61
Choose a head ref
  • 4 commits
  • 9 files changed
  • 1 contributor

Commits on Apr 3, 2026

  1. Configuration menu
    Copy the full SHA
    0fe1729 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2026

  1. Instance create form: automatically select SSH key after creation (#3173

    )
    
    After you create an SSH key in the instance create form, it should
    automatically be checked to be injected into the instance. Otherwise why
    would you be adding it? Actual fix is
    9285551, second commit is a tiny bit of
    code cleanup.
    
    Did my favorite Claude thing and asked it whether we originally had a
    reason to not auto-select the SSH key. Definitively, no:
    
    > Ideally the new keys are pre-selected I suppose, though it might not
    be worth the work.
    #1867 (comment)
    
    
    https://github.com/user-attachments/assets/899bb513-d809-41a1-8e9d-7cc79ff09bbf
    david-crespo authored Apr 9, 2026
    Configuration menu
    Copy the full SHA
    aec681b View commit details
    Browse the repository at this point in the history
  2. Move theme-init.js to assets/ (#3176)

    Closes #3175
    
    `theme-init.js` was in `public/` at the root, so it ended up at
    `dist/theme-init.js`. In production, Nexus
    [serves](https://github.com/oxidecomputer/omicron/blob/b2b1e393a4072f041ee833656fcd57e683704d0e/nexus/src/external_api/console_api.rs#L409-L439)
    console static files via explicitly defined routes — there's a
    `/assets/{path:.*}` route but no route for files at the root like
    `/theme-init.js`.
    
    The fix moves `theme-init.js` from `public/` to `public/assets/` so it
    lands in `dist/assets/` and is served by the existing
    `/assets/{path:.*}` route. The Vite plugin now references
    `/assets/theme-init.js?v={hash}`.
    david-crespo authored Apr 9, 2026
    Configuration menu
    Copy the full SHA
    0df8ff0 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2026

  1. Fix tiny UI race after add SSH key in instance create form (#3177)

    It's barely worth fixing, but codex flagged it in #3173 and it's real.
    Watch the `select all` checkbox below when I submit the create SSH key
    form. In the very short interval of time after the key is created and
    but before list of keys refetches, the select all checkbox flashes
    checked (all are selected) before flipping back to intermediate when the
    list comes in. It's trivial and it's not worth keeping the e2e test I
    used to prove and fix it (removed in
    966aac1), but it is worth fixing now
    that I know about.
    
    
    https://github.com/user-attachments/assets/0bc9e5ff-ceb0-49b5-856d-8998a8971528
    
    The checkbox showing the wrong thing is not actually the entire bug — if
    the user toggles select all during this interval, the behavior is
    slightly weird because the list of keys is out of sync, but it's nearly
    impossible for a human user to move fast enough to run into the issue,
    and the state after the request comes back will be up to date. The real
    fix would be to make `onSuccess` wait until after the invalidate is
    complete. But we don't have any other examples of `async onSuccess`, so
    I don't want to rush that fix in.
    
    ```diff
       const handleDismiss = onDismiss ? onDismiss : () => navigate(pb.sshKeys())
     
       const createSshKey = useApiMutation(api.currentUserSshKeyCreate, {
    -    onSuccess(sshKey) {
    -      queryClient.invalidateEndpoint('currentUserSshKeyList')
    +    async onSuccess(sshKey) {
    +      await queryClient.invalidateEndpoint('currentUserSshKeyList')
           onSuccess?.(sshKey)
           handleDismiss()
           // prettier-ignore
    ```
    david-crespo authored Apr 10, 2026
    Configuration menu
    Copy the full SHA
    1cc2ce6 View commit details
    Browse the repository at this point in the history
Loading