Commit log

fefa719 zed 0.225.13

John Tur created

2d6c5dc Fix OpenGL initialization on Intel HD 4000 (#50652)

Click to expand commit body
Release Notes:

- Fixed Zed failing to initialize OpenGL on certain Linux devices

John Tur created

1707522 Fix handling of `surface.configure` on Linux (#50640) (cherry-pick to stable) (#50644)

Click to expand commit body
Cherry-pick of #50640 to stable

----
Closes #50574

Release Notes:

- Fixed Zed not being responsive on some Linux configurations

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Co-authored-by: John Tur <john-tur@outlook.com>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] , John Tur , and Conrad Irwin created

8f51e07 Clipster

Conrad Irwin created

7ed13a0 Fix clippy after cherry-pick

Click to expand commit body
Release Notes:

- n/a

Conrad Irwin created

35635d2 Bump to 0.225.12 for @ConradIrwin

Zed Zippy created

b000873 Add error handling to keep Zed running in the face of transient wgpu errors (#50539)

Click to expand commit body
Release Notes:

- linux: Reduce crashes in the face of transient GPU errors

Conrad Irwin created

c32c952 wGPU: Select more specifically (#50528)

Click to expand commit body
This uses the compositor hints if available to pick the best GPU. If
none is
available, it tries each GPU in turn, and the first that actually works
is chosen

Release Notes:

- Linux: Select a more appropriate GPU

---------

Co-authored-by: John Tur <john-tur@outlook.com>

Conrad Irwin and John Tur created

a13a63e Bump to 0.225.11 for @ConradIrwin

Zed Zippy created

6ad2de0 Clamp window size on wgpu (#50329) (cherry-pick to preview) (#50346)

Click to expand commit body
Cherry-pick of #50329 to preview

----
Fixes ZED-59P

Release Notes:

- Linux: Fix panic when requested window size was larger than supported
by your GPU

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
(cherry picked from commit 496e115fd3a7ec42a19bb2ff3588ffe5e8e6df7f)

zed-zippy[bot] and Conrad Irwin created

673572b Dynamically detect surface size limits on WGPU (#50340) (cherry-pick to preview) (#50348)

Click to expand commit body
Cherry-pick of #50340 to the preview branch (v0.226.x).

The original PR changed `wgpu::Limits::downlevel_defaults()` to include
`.using_resolution(adapter.limits()).using_alignment(adapter.limits())`
to dynamically detect surface size limits.

This cherry-pick required conflict resolution because the preview branch
has a different code structure:
- Preview uses a synchronous `create_device` function with
`smol::block_on`
- Preview doesn't have the WASM-related code paths
- Preview used `wgpu::Limits::default()` instead of
`wgpu::Limits::downlevel_defaults()`

The change was adapted to apply the fix (`downlevel_defaults()` +
`.using_resolution()` + `.using_alignment()`) to the preview branch's
code structure.

Release Notes:

- N/A

Co-authored-by: John Tur <john-tur@outlook.com>
(cherry picked from commit 97db1f6e14ad9bb6c7bb7c18db66872e38608577)

Conrad Irwin and John Tur created

9d70499 Fix another case where we could apply highlights with wrong indices (#50367) (cherry-pick to stable) (#50508)

Click to expand commit body
Cherry-pick of #50367 to stable

----
Closes #ISSUE

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

6e88281 editor: Fix sticky diff hunk controls not being flush to buffer headers (#50402) (cherry-pick to stable) (#50468)

Click to expand commit body
Cherry-pick of #50402 to stable

----
Release Notes:

- Fixed a visual gap between diff hunk controls and buffer headers

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

d3fb8ef Revert "settings: Await config worktree before opening settings.json" (#50380) (cherry-pick to stable) (#50383)

Click to expand commit body
Cherry-pick of #50380 to stable

----
Reverts zed-industries/zed#47199

Closes https://github.com/zed-industries/zed/issues/50237

Release Notes:

- Fixed a bug that prevented settings files from opening on remotes

Co-authored-by: Lukas Wirth <lukas@zed.dev>

zed-zippy[bot] and Lukas Wirth created

e0ebc11 Improve GPU selection on Linux (#50317)

Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/50270

Cherry Pick of #50274

Release Notes:

- N/A

Co-authored-by: John Tur <john-tur@outlook.com>

Conrad Irwin and John Tur created

449f4f5 Avoid panicking in wgpu rendering during resize (#50169) (cherry-pick to stable) (#50344)

Click to expand commit body
Cherry-pick of #50169 to stable

----
Fixes Zed-5AW
Fixes Zed-5AP

Claude believes this is the right fix, but would love someone who knows
more about graphics than me to take a look: @reflectronic / @zortax?

The panic is:
```
wgpu error: Validation Error

Caused by:
  In Texture::create_view
    Texture with 'path_intermediate' label is invalid
gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::create_path_intermediate (wgpu_renderer.rs:742)
gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::update_drawable_size (wgpu_renderer.rs:784)
gpui::platform::linux::x11::window::X11WindowStatePtr::set_bounds (window.rs:1169)
gpui::platform::linux::x11::client::X11Client::handle_event (client.rs:902)
```

or:
```
wgpu error: Validation Error

Caused by:
  In Texture::create_view
    Texture with 'path_intermediate' label is invalid

gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::create_path_intermediate (wgpu_renderer.rs:742)
gpui::platform::wgpu::wgpu_renderer::WgpuRenderer::new (wgpu_renderer.rs:274)
gpui::platform::linux::x11::window::X11WindowState::new::{{closure}} (window.rs:698)
gpui::platform::linux::x11::window::X11WindowState::new (window.rs:488)
gpui::platform::linux::x11::window::X11Window::new (window.rs:814)
gpui::platform::linux::x11::client::X11Client::open_window (client.rs:1514)
gpui::platform::linux::platform::<T>::open_window (platform.rs:289)
gpui::window::Window::new (window.rs:1119)
gpui::app::App::open_window::{{closure}} (app.rs:1025)
gpui::app::App::update (app.rs:835)
gpui::app::App::open_window (app.rs:1022)
```

I haven't seen a Wayland equivalent (not sure if that's because it
doesn't happen on Wayalnd or because I havent' seen it yet)

Release Notes:

- Linux: Fixed a panic in the new WPGU renderer during resize

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

1b30deb Fix panic in vim increment (#50311) (cherry-pick to stable) (#50338)

Click to expand commit body
Cherry-pick of #50311 to stable

----
Fixes ZED-59V

Release Notes:

- vim: Fixed panic when incrementing a number preceded by a multibyte
character

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

6093f18 markdown_preview: Fix mermaid diagrams failing to render with empty subgraphs (#50280) (cherry-pick to stable) (#50321)

Click to expand commit body
Cherry-pick of #50280 to stable

----
Upgrade mermaid-rs-renderer to 9d8360d9cea10dc4bc86d7b8012cc6e9656e6cf2

Release Notes:

- N/A

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

zed-zippy[bot] and Smit Barmase created

4c8b899 Reduce wgpu memory usage during resize (#50313)

Click to expand commit body
Updates #49435

Cherry Pick of #50030

Release Notes:

- N/A

Conrad Irwin created

7c950f7 Include optional model version with EP acceptance and rejection messages (#50262)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

3005649 Bump to 0.225.10 for @maxbrunsfeld

Zed Zippy created

cfd61fe zeta2: Send snapshot event (#50126)

Click to expand commit body
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

0ca7359 Use a separate feature flag for EP jumps than for zeta2 (#50041)

Click to expand commit body
This allows us to enable zeta2 for certain end users without opting them
into the still-in-development jumps feature.

Release Notes:

- N/A

Max Brunsfeld created

0898bc1 zeta2: Use editable range returned by cloud for prediction diffs (#50029)

Click to expand commit body
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Max <max@zed.dev>

Ben Kunkle and Max created

90ffc25 zeta: Consolidate logic for picking region sizes, use larger editable region (#49921)

Click to expand commit body
This will not affect how Zeta 2 behaves in production until we update
Cloud to pull in the changes to the `zeta_prompt` crate. But from some
early testing, it seems to improve behavior, not worsen it, even though
the editable region size differs from the currently-deployed model's
training data.

Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Max Brunsfeld , Oleksiy Syvokon , Ben Kunkle , and Zed Zippy created

35a7756 zeta2: Try not to jump to collaborators as much (#49742)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

028b9aa ep: Fix panic when switching to a non-store provider (#49698)

Click to expand commit body
The `unreachable()` assumption at `queue_prediction_refresh` could be
violated by an async race condition:

1. `request_prediction_internal` spawns an async task
2. The task awaits a prediction request
3. If the prediction returns `None`, it calls `queue_prediction_refresh`
4. Between the time the prediction was initiated (when the provider was
an EP-store provider) and when the async callback runs, the user can
change their edit prediction provider setting to a non-EP-store provider
5. `queue_prediction_refresh` re-reads the settings and hits the
`unreachable!()

Release Notes:

- N/A

Oleksiy Syvokon created

ae59dec ep_store: Don't handle project events for non-`EditPredictionStore` providers (#49678)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

9cec68e Allow using Zeta through an arbitrary OpenAI-compatible self-hosted API (#49554)

Click to expand commit body
Release Notes:

- Added the ability to use a self-hosted OpenAI-compatible server for
edit predictions.

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Max Brunsfeld , Ben Kunkle , and Zed Zippy created

4dc006d Seperate throttles for jump and edit based predictions (#49499)

Click to expand commit body
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Ben Kunkle and Zed Zippy created

0721212 acp: Fix stale ACP reasoning-effort options when model switch keeps same config IDs (#50246) (cherry-pick to stable) (#50252)

Click to expand commit body
Cherry-pick of #50246 to stable

----
## Problem
Zed's ACP config-options UI was only rebuilding selectors when the set
of config option IDs changed.

For many model switches, the IDs stay the same (`mode`, `model`,
`reasoning_effort`) while the valid values for `reasoning_effort` change
by model. As a result, the picker could show stale values (for example,
missing `xhigh` on `gpt-5.3-codex`, or showing extra `xhigh` after
switching away).

This is especially problematic for providers like Copilot that expose
multiple agents/models with different reasoning-level capabilities.

## Fix
Rebuild ACP config-option selectors on every `config_option_update`, not
only when config IDs change.

This refreshes cached picker entries whenever model-specific option
values change, even if option IDs are unchanged.

## User Impact
- Reasoning-effort picker now reflects the selected model immediately on
Claude <-> GPT transitions.
- Prevents stale or invalid effort choices in ACP sessions.

## Validation
- Manual validation: switch across models with different
reasoning-effort sets and confirm picker updates immediately.
- Local `cargo check -p agent_ui` remains blocked by unrelated
pre-existing `livekit-protocol` compile errors in this checkout.

## Files Changed
- `crates/agent_ui/src/acp/config_options.rs`

Release Notes:

- acp: Fix for config selectors not always being refreshed

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Co-authored-by: Nikhil Pandey <nikhil@nikhil.com.np>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

zed-zippy[bot] , Nikhil Pandey , and Ben Brandt created

d199e42 Handle empty match list and do safe vector selection instead of slicing (#50232) (cherry-pick to stable) (#50233)

Click to expand commit body
Cherry-pick of #50232 to stable

----
Handles a panic found in telemetry - when there are no template matches
or feature matches, the picker delegate will panic due to an indexing
exception. This solves by:
1. Returning early if there are no matches, and
2. Performing safe vector `get` operations instead of slicing, so we can
handle a not-found scenario.




https://github.com/user-attachments/assets/ac76164d-63aa-4e2b-8555-d8e4f4dd2524



Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed potential crash from initializing devcontainer.json

Co-authored-by: KyleBarton <kjb@initialcapacity.io>

zed-zippy[bot] and KyleBarton created

d5d45d5 git: Fix a panic when searching the split diff (#50211) (cherry-pick to stable) (#50215)

Click to expand commit body
Cherry-pick of #50211 to stable

----
This could happen when you initiated a search on the left side, then
toggled into the unified view, then tried to select the next match.

Closes ZED-55G

Release Notes:

- Fixed a panic when toggling the split diff view while searching.

Co-authored-by: Cole Miller <cole@zed.dev>

zed-zippy[bot] and Cole Miller created

a5387dd git: More rigorously test excerpt syncing for split diff, and fix a couple of bugs (#49907) (cherry-pick to stable) (#50174)

Click to expand commit body
Cherry-pick of #49907 to stable

----
This PR adds a more rigorous test for the excerpt syncing logic in
`SplittableEditor`, in preparation for refactoring that code, since
we've had some bugs there.

The new test covers
- edits within the RHS multibuffer
- edits to the individual main buffers, not necessarily within the
excerpt bounds of the split diff
- excerpt expansion
- excerpt removal
- excerpt recalculation based on diff hunk ranges

Bugs fixed:
- incorrect edit merging logic in `patches_for_range`
- `merge_excerpts` leaving stale excerpt IDs in `excerpts_by_path`

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>

zed-zippy[bot] and Cole Miller created

1d8bdf6 Fix panic in diff hunk rendering (#50163) (cherry-pick to stable) (#50165)

Click to expand commit body
Cherry-pick of #50163 to stable

----
When `row_infos.is_empty()` (if you have very very tiny editors) we
could
end up trying to read the first item out of it.

Fixes ZED-5AT
Fixes ZED-54F
Fixes ZED-56N

Updates  #49260

cc @Veykril

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed a panic rendering diff hunk headers in 0-height editors

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

bda6d60 Fix Zed panicking on invalid ranges in semantic token deltas (#50106) (cherry-pick to preview) (#50112)

Click to expand commit body
Cherry-pick of #50106 to preview

----
Closes ZED-59J

Release Notes:

- Fixed Zed panicking on invalid ranges in semantic token deltas

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

zed-zippy[bot] and Kirill Bulatov created

cbc2b42 v0.225.x stable

Joseph T. Lyons created

7d79146 thread_view: Add fallback error handling for connect failures (#50063) (cherry-pick to preview) (#50067)

Click to expand commit body
Cherry-pick of #50063 to preview

----
Following up from https://github.com/zed-industries/zed/pull/50061: when
connecting to an ACP adapter fails before any thread is active, errors
would not display in the Agent Panel. Falling back to
`handle_load_error` to show the error UI properly as it already handles
this.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Added fallback error handling for connect failures in the Agent Panel

Co-authored-by: Kunall Banerjee <hey@kimchiii.space>

zed-zippy[bot] and Kunall Banerjee created

a8a046a recent_projects: Fix remote reconnect when server is not running (#49834) (cherry-pick to preview) (#49871)

Click to expand commit body
Cherry-pick of #49834 to preview

----
Closes https://github.com/zed-industries/zed/issues/49363

When an existing remote workspace's connection is dead (e.g. the server
died and reconnect failed, leaving the client in `ServerNotRunning`
state), `remote_connection()` returns `None`. Previously this caused an
error dialog, blocking reconnection — the user had to manually switch to
another project and back to recover.

Now the code falls through to establish a fresh connection instead,
matching the previous behavior where clicking "Reconnect" would just
work.

Release Notes:

- Fixed remote reconnect failing with an error when the server is not
running, now establishes a fresh connection instead.

Co-authored-by: Filipe Azevedo <filipe@azevedo.io>

zed-zippy[bot] and Filipe Azevedo created

343a348 Bump to 0.225.9 for @ConradIrwin

Zed Zippy created

80fcdff Fix a panic in can_resolve when the excerpt id is unknown

Click to expand commit body
Cherry-pick of #50052

Conrad Irwin created

244d015 agent_server_store: Broaden Windows asset detection to all architectures (#50061) (cherry-pick to preview) (#50062)

Click to expand commit body
Cherry-pick of #50061 to preview

----
Previously only `x86_64` Windows used ZIP archives, but ARM64 Windows
builds also use ZIP format.

Closes #50039.

> [!NOTE]
> The P1 is two-fold: the user cannot download the ZIP file on Windows
ARM. BUT -- the Agent Panel is stalled because of that. This ONLY makes
it so that the ZIP download doesn’t fail, but if for some reason the
download fails, the panel is genuinely stuck with no recovery path.
Every restart attempts the same download, hits the same GZIP error, and
silently drops it again.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Broaden Windows asset detection to all architectures

Co-authored-by: Kunall Banerjee <hey@kimchiii.space>

zed-zippy[bot] and Kunall Banerjee created

869f81a Fix a panic when git askpass triggers during commit (#50057) (cherry-pick to preview) (#50059)

Click to expand commit body
Cherry-pick of #50057 to preview

----
Fixes ZED-597

Release Notes:

- Fixed a panic when the askpass dialogue opened while committing.

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

2b471a5 Fix panic in copilot (#50056) (cherry-pick to preview) (#50058)

Click to expand commit body
Cherry-pick of #50056 to preview

----
Fixes ZED-599

register_buffer() only sometimes registers the buffer

Release Notes:

- Fixed a panic in Copilot completions

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

d213b64 Fix panic in message editor paste (#50051) (cherry-pick to preview) (#50055)

Click to expand commit body
Cherry-pick of #50051 to preview

----
Fixes ZED-4KY

Release Notes:

- Fixed a panic when pasting into the agent UI

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

650347d Fix panic when folding immediately after a tab (#49920) (cherry-pick to preview) (#50054)

Click to expand commit body
Cherry-pick of #49920 to preview

----
fixes ZED-57B

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed a (rare) panic when a fold was created immediately following a
tab character

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

8356db4 Fix panic in breadcrumbs (#49930) (cherry-pick to preview) (#50053)

Click to expand commit body
Cherry-pick of #49930 to preview

----
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)


Fixes

https://zed-dev.sentry.io/issues/7286512714/?project=4509715135987712&query=is%3Aunresolved&referrer=issue-stream

Release Notes:

- Fix (rare) panic when breadcrumbs contain newlines

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

zed-zippy[bot] and Conrad Irwin created

5955404 Clamp textures on Linux too

Click to expand commit body
Port of #10314 to the wgpu renderer

Conrad Irwin created

363eca5 Bump to 0.225.8 for @ConradIrwin

Zed Zippy created

4e34c73 Defer wgpu context creation until we have a surface (#49926)

Click to expand commit body
Fixes ZED-54X

Release Notes:

- Linux: wait to request a graphics context until we have a window so we
can (ideally) pick a better context or (less ideally) fail more
gracefully.

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Conrad Irwin and Zed Zippy created