4012914
Respect paths' content masks when copying them from MSAA texture to drawable (#35688)
Click to expand commit body
Fixes a regression introduced in
https://github.com/zed-industries/zed/pull/34992
### Background
Paths are rendered first to an intermediate MSAA texture, and then
copied to the final drawable. Because paths can have transparency, it's
important that pixels are not copied repeatedly if paths have
overlapping bounding boxes. When N paths have the same draw order, we
infer that they must have disjoint bounding boxes, so that we can copy
them each individually (as opposed to copying a single rect that
contains them all). Previously, the bounding box that we were using to
copy paths was not accounting for the path's content mask (but it is
accounted for in the bounds tree that determines their draw order).
This cause bugs like this, where certain path pixels spuriously had
their opacity doubled:
https://github.com/user-attachments/assets/d792e60c-790b-49ad-b435-6695daba430f
This PR fixes that bug.
* [x] mac
* [x] linux
* [x] windows
Release Notes:
- Fixed a bug where a selection's opacity was computed incorrectly when
it overlapped with another editor's selections in a certain way.
Max Brunsfeld
created
a884e86
Tag crash reports with panic message and release (#35692)
Click to expand commit body
This _should_ allow sentry to associate related panic events with the
same issue, but it doesn't change the issue title. I'm still working on
figuring out how to set those fields, but in the meantime this should at
least associate zed versions with crashes
Release Notes:
- N/A
Follow up to: https://github.com/zed-industries/zed/pull/35670,
simplifies the List state APIs so you no longer have to worry about
strong vs. weak pointers when rendering list items.
Release Notes:
- N/A
---------
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Mikayla Maki
and
Agus Zubiaga
created
d0de81b
windows: Handle scale factor change while window is maximized (#35686)
Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/33257
Previously, the scale-factor-change-handling logic relied on
`SetWindowPos` enqueuing a `WM_SIZE` window event. But that does not
happen when the window is maximized. So when the scale factor changed,
maximized windows neglected to call their `resize` callback, and would
misinterpret the positions of mouse events.
This PR adds special logic for maximized windows, to ensure that the
size is updated appropriately.
Release Notes:
- N/A
Max Brunsfeld
created
9caa9d0
Use new language server info on remote servers (#35682)
Click to expand commit body
* Straightens out the `*_ext.rs` workflow for clangd and rust-analyzer:
no need to asynchronously query for the language server, as we sync that
information already.
* Fixes inlay hints editor menu toggle not being shown in the remote
sessions
Release Notes:
- Fixed inlay hints editor menu toggle not being shown in the remote
sessions
Kirill Bulatov
created
cc93175
Recategorize a few items in the component preview (#35681)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
bc2108c
Render error state when agent binary exits unexpectedly (#35651)
Click to expand commit body
This PR adds handling for the case where an agent binary exits
unexpectedly after successfully establishing a connection.
Release Notes:
- N/A
---------
Co-authored-by: Agus <agus@zed.dev>
This PR removes some billing-related queries that are no longer used.
Release Notes:
- N/A
Marshall Bowers
created
f10ffc2
ui: Fix switch component style when focused (#35678)
Click to expand commit body
Just making sure the switch's dimensions aren't affected by the need to
having an outer border to represent focus.
Release Notes:
- N/A
Danilo Leal
created
30414d1
onboarding: Adjust the AI upsell card depending on user's state (#35658)
Click to expand commit body
Use includes centralizing what each plan delivers in one single file
(`plan_definitions.rs`).
Release Notes:
- N/A
Danilo Leal
created
0025019
gpui: Press `enter`, `space` to trigger click to focused element (#35075)
Click to expand commit body
Release Notes:
- N/A
> Any user interaction that is equivalent to a click, such as pressing
the Space key or Enter key while the element is focused. Note that this
only applies to elements with a default key event handler, and
therefore, excludes other elements that have been made focusable by
setting the
[tabindex](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex)
attribute.
https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event
---------
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Umesh Yadav <23421535+imumesh18@users.noreply.github.com>
Jason Lee
,
Anthony
,
Mikayla Maki
, and
Umesh Yadav
created
b7469f5
Fix ACP connection and thread leak (#35670)
Click to expand commit body
When you switched away from an ACP thread, the `AcpThreadView` entity
(and thus thread, and subprocess) was leaked. This happened because we
were using `cx.processor` for the `list` state callback, which uses a
strong reference.
This PR changes the callback so that it holds a weak reference, and adds
some tests and assertions at various levels to make sure we don't
reintroduce the leak in the future.
Release Notes:
- N/A
This PR removes the usage meters sync from Collab, as it has been moved
to Cloud.
Release Notes:
- N/A
Marshall Bowers
created
86957a5
Use the same prompt as agent thread summary for text threads (#35669)
Click to expand commit body
This was causing text thread summarization to be counted as a usage of 1
prompt
Release Notes:
- Fixed bug with agent text threads (not chat threads) counting
summarization as a usage of 1 prompt.
Co-authored-by: Oleksiy <oleksiy@zed.dev>
Michael Sloan
and
Oleksiy
created
4269941
Fix update of prompt usage count when using text threads (#35671)
Click to expand commit body
Release Notes:
- Fixed update of prompt usage count when using agent text threads.
Co-authored-by: Oleksiy <oleksiy@zed.dev>
This PR moves the new agent thread controls so they're attached to the
last message and scroll with the thread history, instead of always being
shown above the message editor.
Release Notes:
- N/A
Cole Miller
created
c595ed1
languages: Remove a eager conversion from `LanguageName` to `String` (#35667)
Click to expand commit body
This PR changes the signature of `language_names` from
```rust
pub fn language_names(&self) -> Vec<String>
// Into
pub fn language_names(&self) -> Vec<LanguageName>
```
The function previously eagerly converted `LanguageName`'s to
`String`'s, which requires the reallocation of all of the elements. The
functions get called in many places in the code base, but only one of
which actually requires the conversion to a `String`. In one case it
would do a `SharedString` -> `String` -> `SharedString` conversion,
which is now totally bypassed.
Release Notes:
- N/A
tidely
created
a508a95
Handle startup failure for gemini-cli (#35624)
Click to expand commit body
This PR adds handling for the case where the user's gemini-cli binary
fails to start up because it's too old to support the
`--experimental-acp` flag. We previously had such handling, but it got
lost as part of #35578.
This doesn't yet handle the case where the server binary exits
unexpectedly after the connection is established; that'll be dealt with
in a follow-up PR since it needs different handling and isn't specific
to gemini-cli.
Release Notes:
- N/A
Co-authored-by: Agus <agus@zed.dev>
Cole Miller
and
Agus
created
cf23f93
language: Fix no diagnostics are shown for CSS (#35663)
Click to expand commit body
Closes #30499
`vscode-css-language-server` throws a null reference error if no
workspace configuration is provided from the client.
Release Notes:
- Fixed issue where no diagnostics were shown for CSS, LESS, and SCSS.
Closes #ISSUE
Allows tabbing through everything in all three pages. Until #35075 is
merged it is not possible to actually "click" tab focused buttons with
the keyboard.
Additionally adds an action `onboarding::Finish` and displays the
keybind. The action corresponds to both the "Skip all" and "Start
Building" buttons, with the keybind displayed similar to how it is for
the page nav buttons
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: MrSubidubi <finn@zed.dev>
<img width="348" height="427" alt="Screenshot 2025-08-05 at 1 55 35 PM"
src="https://github.com/user-attachments/assets/52af17a5-0095-4ad9-9afe-ff27aab90e03"
/>
Release Notes:
- Added support for Claude Opus 4.1
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Richard Feldman
and
Marshall Bowers
created
307d709
ci: Double Buildjet ARM runner size (24GB to 48GB ram) (#35654)
Click to expand commit body
Release Notes:
- N/A
Peter Tripp
created
fc2ba82
debugpy: Fetch a wheel into Zed's work dir and use that with users venv (#35640)
Click to expand commit body
Another stab at #35388
cc @Sansui233
Closes #35388
Release Notes:
- debugger: Fixed Python debug sessions failing to launch due to a
missing debugpy installation.
Piotr Osiewicz
created
844ea3d
Fix open with zed not focusing window (#35645)
19c1504
ui: Wire up tab indices within buttons (#35368)
Click to expand commit body
This change adds the current tab index functionality to buttons and
implements a proof of concept for the new welcome page.
Primarily blocked on https://github.com/zed-industries/zed/pull/34804,
secondarily on https://github.com/zed-industries/zed/pull/35075 so we
can ensure navigation always works as intended.
Another thing to consider here is whether we want to assign the tab
order more implicitly / "automatically" based on the current layout
ordering. This would generally enable us to add a default order to
focusable elements if we want this. See [the
specification](https://html.spec.whatwg.org/multipage/interaction.html#flattened-tabindex-ordered-focus-navigation-scope)
on some more context on how the web usually handles this for focusable
elements.
Release Notes:
- N/A
Finn Evers
created
5940ed9
onboarding: Use a picker for the font dropdowns (#35638)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
351e8c4
Fix LiveKit audio for devices with different sample formats (#35604)
Click to expand commit body
Release Notes:
- N/A
localcc
created
064c5da
docs: Fix incorrect reference to JSX language (#35639)
22473fc
Stop sending redundant LSP proto requests (#35581)
Click to expand commit body
Before, each time any LSP feature was used on client remote, it always
produced a `proto::` request that always had been sent to the host, from
where returned as an empty response.
Instead, propagate more language server-related data to the client,
`lsp::ServerCapability`, so Zed client can omit certain requests if
those are not supported.
On top of that, rework the approach Zed uses to query for the data
refreshes: before, editors tried to fetch the data when the server start
was reported (locally and remotely).
Now, a later event is selected: on each `textDocument/didOpen` for the
buffer contained in this editor, we will query for new LSP data, reusing
the cache if needed.
Before, servers could reject unregistered files' LSP queries, or process
them slowly when starting up.
Now, such refreshes are happening later and should be cached.
This requires a collab DB change, to restore server data on rejoin.
Release Notes:
- Fixed excessive LSP requests sent during remote sessions
Kirill Bulatov
created
5b40b36
Add `workspace::ToggleEditPrediction` for toggling inline completions globally (#35418)
Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/23704
Existing action is `editor::ToggleEditPrediction` ("This Buffer").
This action is `workspace::ToggleEditPredction` ("All Files").
You can add a custom keybind wi shortcut with:
```json
{ "context": "Workspace", "bindings": { "ctrl-alt-cmd-e": "workspace::ToggleEditPrediction" } },
```
<img width="212" height="439" alt="Screenshot 2025-07-31 at 12 52 19"
src="https://github.com/user-attachments/assets/15879daa-7d4d-4308-ab2b-5e78507f2fa5"
/>
Release Notes:
- Added `workspace::ToggleEditPrediction` action for toggling
`show_edit_predictions` in settings (Edit Predictions menu -> All
Files).
Peter Tripp
created
4972524
agent: Update link to OpenAI compatible docs (#35620)
We want Ruff to be built with newer Rust version (as it was built
pre-1.84 where we've fixed a bug in std).
Closes #35627
Release Notes:
- N/A
Piotr Osiewicz
created
efba436
Ensure client reconnects if an error occurs during authentication (#35629)
Click to expand commit body
In #35471, we added a new `AuthenticationError` variant to the client
enum `Status`, but the reconnection logic was ignoring it when
determining whether to reconnect.
This pull request fixes that regression and introduces test coverage for
this case.
Release Notes:
- N/A
Add more logging to collab in order to help diagnose throughput issues.
IMPORTANT: Do not deploy this PR without pinging me.
Release Notes:
- N/A
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
- [x] Handle uploading minidumps from the remote_server
- [x] Associate minidumps with panics with some sort of ID (we don't use
session_id on the remote)
- [x] Update the protobufs and client/server code to request panics
- [x] Upload minidumps with no corresponding panic
- [x] Fill in panic info when there _is_ a corresponding panic
- [x] Use an env var for the sentry endpoint instead of hardcoding it
Release Notes:
- Zed now generates minidumps for crash reporting
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Julia Ryan
and
Max Brunsfeld
created
07e3d53
sum_tree: Do not implement Dimension on tuples, use new Dimensions wrapper instead (#35482)
Click to expand commit body
This is a bit of a readability improvement IMHO; I often find myself
confused when dealing when dimension pairs, as there's no easy way to
jump to the implementation of a dimension for tuples to remind myself
for the n-th time how exactly that impl works. Now it should be possible
to jump directly to that impl.
Another bonus is that Dimension supports 3-ary tuples as well - by using
a () as a default value of a 3rd dimension.
Release Notes:
- N/A
Piotr Osiewicz
created
be2f54b
agent: Update pieces of copy in the settings view (#35621)
Click to expand commit body
Some tiny updates to make the agent panel's copywriting sharper.
Release Notes:
- N/A
Danilo Leal
created
a9c44ac
assistant_tool: Fix rejecting edits deletes newly created and accepted files (#35622)
Click to expand commit body
Closes #34108
Closes #33234
This PR fixes a bug where a file remained in a Created state after
accept, causing following reject actions to incorrectly delete the file
instead of reverting back to previous state. Now it changes it to
Modified state upon "Accept All" and "Accept Hunk" (when all edits are
accepted).
- [x] Tests
Release Notes:
- Fixed issue where rejecting AI edits on newly created files would
delete the file instead of reverting to previous accepted state.
Smit Barmase
created
06226e1
onboarding: Show indication that settings have already been imported (#35615)
Click to expand commit body
Co-Authored-By: Danilo <danilo@zed.dev>
Co-Authored-By: Anthony <anthony@zed.dev>
Release Notes:
- N/A
Ben Kunkle
created
e1d0e3f
onboarding: Add explainer tooltips for the editing and AI section (#35619)
Click to expand commit body
Includes the ability to add a tooltip for both the badge and switch
field components.
Release Notes:
- N/A
Danilo Leal
created
afc4f50
debugger: Ensure that Python's adapter work dir exists (#35618)
Click to expand commit body
Closes #ISSUE
cc @Sansui233 who triaged this in
https://github.com/zed-industries/zed/issues/35388#issuecomment-3146977431
Release Notes:
- debugger: Fixed an issue where a Python debug adapter could not be
installed when debugging Python projects for the first time.
Piotr Osiewicz
created
91bbdb7
debugger: Install debugpy into user's venv if there's one selected (#35617)
Click to expand commit body
Closes #35388
Release Notes:
- debugger: Fixed Python debug sessions failing to launch due to a
missing debugpy installation. Debugpy is now installed into user's venv
if there's one available.
Piotr Osiewicz
created
182edbf
git_panel: Improve toast messages for push/pull/fetch (#35092)
Click to expand commit body
On GitLab, when pushing a branch and a MR already existing the remote
log contains "View merge request" and the link to the MR.
Fixed `Already up to date` stdout check on pull (was `Everything up to
date` on stderr)
Fixed `Everything up-to-date` check on push (was `Everything up to
date`)
Improved messaging for up-to-date for fetch/push/pull
Fixed tests introduced in
https://github.com/zed-industries/zed/pull/33833.
<img width="470" height="111" alt="Screenshot 2025-07-31 at 18 37 05"
src="https://github.com/user-attachments/assets/2a5dcc4c-6f53-4a85-b983-8e25149efcc0"
/>
Release Notes:
- Git UI: Add "View Pull Request" when pushing to Gitlab remotes
- git: Improved toast messages on fetch/push/pull
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
Guillaume Launay
and
Peter Tripp
created
24e7f86
onboarding: Go back to not having system be separate (#35499)
Click to expand commit body
Going back to having system be mutually exclusive with light/dark to
simplify the system. We instead just show both light and dark when
system is selected
Release Notes:
- N/A
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Ben Kunkle
,
Danilo Leal
, and
Anthony Eid
created
68c2465
zeta: Collect git sha / remote urls when data collection from OSS is enabled (#35514)
Click to expand commit body
Release Notes:
- Edit Prediction: Added Git info to edit predictions requests (only
sent for opensource projects when data collection is enabled). The sent
Git info is the SHA of the current commit and the URLs for the `origin`
and `upstream` remotes.
Michael Sloan
created
3df5394
linux: Make desktop file executable (#35597)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/35545
Release Notes:
- linux: Improved support for `zed://` urls on Linux