Commit graph

23536 commits

Author SHA1 Message Date
Danilo Leal
61cdcb1599
onboarding: Use a picker for the font dropdowns (#35638)
Release Notes:

- N/A
2025-08-23 10:37:26 -04:00
localcc
aa42581061
Fix LiveKit audio for devices with different sample formats (#35604)
Release Notes:

- N/A
2025-08-23 10:37:26 -04:00
Kirill Bulatov
59286a92f8
Stop sending redundant LSP proto requests (#35581)
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
2025-08-23 10:37:26 -04:00
Peter Tripp
81951d697c
Add workspace::ToggleEditPrediction for toggling inline completions globally (#35418)
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).
2025-08-23 10:37:26 -04:00
Danilo Leal
21080cbfc0
agent: Update link to OpenAI compatible docs (#35620)
Release Notes:

- N/A
2025-08-23 10:37:26 -04:00
Antonio Scandurra
948aa757c6
Ensure client reconnects if an error occurs during authentication (#35629)
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
2025-08-23 10:37:25 -04:00
Mikayla Maki
392ac44004
Add more information to our logs (#35557)
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>
2025-08-23 10:37:25 -04:00
Julia Ryan
005d52ec07
Add minidump crash reporting (#35263)
- [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>
2025-08-23 10:37:25 -04:00
Piotr Osiewicz
af0212291c
sum_tree: Do not implement Dimension on tuples, use new Dimensions wrapper instead (#35482)
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
2025-08-23 10:37:25 -04:00
Danilo Leal
2a4e5b6236
agent: Update pieces of copy in the settings view (#35621)
Some tiny updates to make the agent panel's copywriting sharper.

Release Notes:

- N/A
2025-08-23 10:37:25 -04:00
Smit Barmase
fc7110233c
assistant_tool: Fix rejecting edits deletes newly created and accepted files (#35622)
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.
2025-08-23 10:37:25 -04:00
Ben Kunkle
9ce81d41e9
onboarding: Show indication that settings have already been imported (#35615)
Co-Authored-By: Danilo <danilo@zed.dev>
Co-Authored-By: Anthony <anthony@zed.dev>

Release Notes:

- N/A
2025-08-23 10:37:25 -04:00
Danilo Leal
45683deed3
onboarding: Add explainer tooltips for the editing and AI section (#35619)
Includes the ability to add a tooltip for both the badge and switch
field components.

Release Notes:

- N/A
2025-08-23 10:37:25 -04:00
Piotr Osiewicz
30b60b99bd
debugger: Ensure that Python's adapter work dir exists (#35618)
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.
2025-08-23 10:37:25 -04:00
Piotr Osiewicz
b497c9f449
debugger: Install debugpy into user's venv if there's one selected (#35617)
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.
2025-08-23 10:37:25 -04:00
Guillaume Launay
bfb5eb92e3
git_panel: Improve toast messages for push/pull/fetch (#35092)
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>
2025-08-23 10:37:25 -04:00
Ben Kunkle
2ccf81f2f8
onboarding: Go back to not having system be separate (#35499)
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>
2025-08-23 10:37:25 -04:00
Michael Sloan
0ceb5b7d90
zeta: Collect git sha / remote urls when data collection from OSS is enabled (#35514)
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.
2025-08-23 10:37:25 -04:00
Peter Tripp
f4871f6441
linux: Make desktop file executable (#35597)
Closes https://github.com/zed-industries/zed/issues/35545

Release Notes:

- linux: Improved support for `zed://` urls on Linux
2025-08-23 10:37:25 -04:00
Danilo Leal
32f75dfede
onboarding: Adjust the welcome page a bit (#35600)
Release Notes:

- N/A
2025-08-23 10:37:25 -04:00
Agus Zubiaga
98cef9708d
Update to acp 0.0.18 (#35595)
Release Notes:

- N/A
2025-08-23 10:37:25 -04:00
Max Brunsfeld
bac0c7292e
Minor stylistic cleanup in Windows platform (#35503)
This PR doesn't change any logic, it just cleans up some naming and
style in the windows platform layer.

* Rename `WindowsWindowStatePtr` to `WindowsWindowInner`, since it isn't
a pointer type.
* Move window event handler methods into an impl on this type, so that
all of the `state_ptr: &Rc<WindowsWindowInner>` parameters can just be
replaced with `&self`.
* In window creation, use a `match` instead of a conditional followed by
an unwrap

There's a lot of whitespace in the diff, so view it with `w=1`.

Release Notes:

- N/A
2025-08-23 10:37:24 -04:00
Danilo Leal
82c8faf4a6
onboarding: Adjust skip button as flow progresses (#35596)
Release Notes:

- N/A
2025-08-23 10:37:24 -04:00
Anthony Eid
0af6a3ea36
git: Add option to branch from default branch in branch picker (#34663)
Closes #33700

The option shows up as an icon that appears on entries that would create
a new branch. You can also branch from the default by secondary
confirming, which the icon has a tooltip for as well.

We based the default branch on the results from this command: `git
symbolic-ref refs/remotes/upstream/HEAD` and fallback to `git
symbolic-ref refs/remotes/origin/HEAD`

Release Notes:

- Add option to create a branch from a default branch in git branch
picker

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2025-08-23 10:37:24 -04:00
Danilo Leal
f315ba6e5b
agent: Adjust full screen menu item label and background color (#35592)
Release Notes:

- N/A
2025-08-23 10:37:24 -04:00
Smit Barmase
65a2aae62b
workspace: Fix not able to close tab when buffer save fails (#35589)
Closes #26216, Closes #35517

Now we prompt user if buffer save failed, asking them to close without
saving or cancel the action.

Release Notes:

- Fixed issue where closing read-only or deleted buffer would not close
that tab.

Co-authored-by: Lukas Wirth <lukas@zed.dev>
2025-08-23 10:37:24 -04:00
Piotr Osiewicz
0f0383d2d5
search: Update results multi-buffer before search is finished (#35470)
I'm not sure when we've lost that notify, but it's causing the time to
first search result equal to the time to run the whole search, which is
not great.

Co-authored-by: Remco <djsmits12@gmail.com>

This discussion has originally started in #35444

Release Notes:

- Improved project search speed.

Co-authored-by: Remco <djsmits12@gmail.com>
2025-08-23 10:37:24 -04:00
Michael Sloan
01d0865251
Rename remaining mentions of "inline completion" to "edit prediction" (#35512)
Release Notes:

- N/A
2025-08-23 10:37:24 -04:00
Danilo Leal
7c1f709440
agent: Fix scrolling in the "Add LLM Provider" modal (#35584)
Closes https://github.com/zed-industries/zed/issues/35402

Release Notes:

- agent: Fix scrolling in the "Add LLM Provider" modal
2025-08-23 10:37:24 -04:00
Michael Sloan
9bc98a81c6
Fix edit prediction disablement with "disable_ai": true setting (#35513)
Even after #35327 edit predictions were still being queried and shown
after setting `"disable_ai": true`

Also moves `DisableAiSettings` to the `project` crate so that it gets
included in tests via existing use of `Project::init_settings(cx)`.

Release Notes:

- Fixed `"disable_ai": true` setting disabling edit predictions.
2025-08-23 10:37:24 -04:00
Danilo Leal
c3c9113579
thread view: Scroll to the bottom when sending new messages + adjust controls display (#35586)
Release Notes:

- N/A
2025-08-23 10:37:19 -04:00
Agus Zubiaga
a0adf0062c
Fix gemini e2e tests (#35583)
Release Notes:

- N/A
2025-08-23 10:37:19 -04:00
Danilo Leal
b897717f52
Revise and clean up some icons (#35582)
This is really just a small beginning, as there are many other icons to
be revised and cleaned up. Our current set is a bit of a mess in terms
of dimension, spacing, stroke width, and terminology. I'm sure there are
more non-used icons I'm not covering here, too. We'll hopefully tackle
it all soon leading up to 1.0.

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

Release Notes:

- N/A
2025-08-23 10:37:18 -04:00
Oleksiy Syvokon
8ff11c1f46
evals: Retry on Anthropic's internal and transient I/O errors (#35395)
Release Notes:

- N/A
2025-08-23 10:37:18 -04:00
Ben Brandt
5f184614e1
Update to new agent schema (#35578)
Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>
2025-08-23 10:37:18 -04:00
Kainoa Kanter
58f2086092
Add icon for KDL files (#35377)
<img width="191" height="83" alt="1753920601"
src="https://github.com/user-attachments/assets/6bf057b0-2f10-4cc7-bab1-2d4aa8675701"
/>

Release Notes:

- Added icon for KDL (`.kdl`) files
2025-08-23 10:37:18 -04:00
Antonio Scandurra
bfa9ac236d
Don't trigger authentication flow unless credentials expired (#35570)
This fixes a regression introduced in
https://github.com/zed-industries/zed/pull/35471, where we treated
stored credentials as invalid when failing to retrieve the authenticated
user for any reason. This had the side effect of triggering the auth
flow even when e.g. the client/server had temporary networking issues.

This pull request changes the logic to only trigger authentication when
getting a 401 from the server.

Release Notes:

- N/A
2025-08-23 10:37:18 -04:00
Kirill Bulatov
3aadd13015
Use a better type for language IDs field (#35566)
Part of the preparation for proto capabilities.

Release Notes:

- N/A
2025-08-23 10:37:18 -04:00
Mikayla Maki
806fc5a3c0
Improve the yaml outline to show the key value if it's a simple string (#35562)
Before:

<img width="753" height="890" alt="Screenshot 2025-08-03 at 8 58 16 PM"
src="https://github.com/user-attachments/assets/a3816acd-66b2-4042-8181-fbc15881bd4b"
/>

After:

<img width="648" height="634" alt="Screenshot 2025-08-03 at 8 59 30 PM"
src="https://github.com/user-attachments/assets/0ab35f3e-36d6-42b5-bb5f-09431985878e"
/>

Release Notes:

- Improved the yaml outline to include the key's value if it's a simple
string.
2025-08-23 10:37:18 -04:00
Joseph T. Lyons
954dc5dcdc
Add option to open settings profile selector in user menu (#35556)
Release Notes:

- N/A
2025-08-23 10:37:18 -04:00
Ben Brandt
2b3376ffa2
Fix false positive for editing status in agent panel (#35554)
Release Notes:

- N/A
2025-08-23 10:37:18 -04:00
Joseph T. Lyons
f4e0a461fa
Reuse is_tab_pinned method (#35551)
Release Notes:

- N/A
2025-08-23 10:37:13 -04:00
Joseph T. Lyons
0c8c3413c4
Fix pinned tab becoming unpinned when dragged onto unpinned tab (#35539)
Case A - Correct:


https://github.com/user-attachments/assets/2ab943ea-ca5b-4b6b-a8ca-a0b02072293e

Case B - Incorrect:


https://github.com/user-attachments/assets/912be46a-73b2-48a8-b490-277a1e89d17d

Case B - Fixed:


https://github.com/user-attachments/assets/98c2311d-eebc-4091-ad7a-6cf857fda9c3

Release Notes:

- Fixed a bug where dragging a pinned tab onto an unpinned tab wouldn't
decrease the pinned tab count
2025-08-23 10:37:13 -04:00
Ben Brandt
85399bbe81
agent_ui: Improve message editor history navigation (#35532)
- We no longer move through history if a message has been edited by the
user -
It is possible to navigate back down to an empty message

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

Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>
2025-08-23 10:37:13 -04:00
Michael Sloan
1ac4dc09c2
Cleanup editor.rs imports (#35509)
Release Notes:

- N/A
2025-08-23 10:37:13 -04:00
Michael Sloan
cf9c4a98a6
Make editor::AcceptPartialCopilotSuggestion a deprecated alias (#35507)
This is consistent with there being no copilot expecific variant of
`editor::AcceptEditPrediction`. It also fixes a case where the
`disable_ai: true` has effects at init time that aren't undone when
changed, added in #35327.

Release Notes:

- N/A
2025-08-23 10:37:13 -04:00
Michael Sloan
2aa1b4e79f
Fix showing/hiding copilot actions when disable_ai setting is changed (#35506)
Release Notes:

- N/A
2025-08-23 10:37:13 -04:00
Smit Barmase
cc0786ce5d
project: Fix extra } at the end of import on completion accept (#35494)
Closes #34094

Bug in https://github.com/zed-industries/zed/pull/11157

**Context:** 

In https://github.com/zed-industries/zed/pull/31872, we added logic to
avoid re-querying language server completions
(`textDocument/completion`) when possible. This means the list of
`lsp::CompletionItem` objects we have might be stale and not contain
accurate data like `text_edit`, which is only valid for the buffer at
the initial position when these completions were requested. We don't
really care about this because we already extract all the useful data we
need (like insert/replace ranges) into `Completion`, which converts
`text_edit` to anchors. This means further user edits simply push/move
those anchors, and our insert/replace ranges persist for completion
accept.

```jsonc
// on initial textDocument/completion
"textEdit":{"insert":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}},"replace":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}}
```

However, for showing documentation of visible `Completion` items, we
need to call resolve (`completionItem/resolve`) with the existing
`lsp::CompletionItem`, which returns the same `text_edit` and other
existing data along with additional new data that was previously
optional, like `documentation` and `detail`.

**Problem:** 

This new data like `documentation` and `detail` doesn't really change on
buffer edits for a given completion item, so we can use it. But
`text_edit` from this resolved `lsp::CompletionItem` was valid when the
the initial (`textDocument/completion`) was queried but now the
underlying buffer is different. Hence, creating anchors from this ends
up creating them in wrong places.

```jsonc
// calling completionItem/resolve on cached lsp::CompletionItem results into same textEdit, despite buffer edits
"textEdit":{"insert":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}},"replace":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}}
```

It looks like the only reason to override the new text and these ranges
was to handle an edge case with `typescript-language-server`, as
mentioned in the code comment. However, according to the LSP
specification for [Completion
Request](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_completion):

> All other properties (usually sortText, filterText, insertText and
textEdit) must be provided in the textDocument/completion response and
**must not be changed during resolve.**

If any language server responds with different `textEdit`, `insertText`,
etc. in `completionItem/resolve` than in `textDocument/completion`, they
should fix that. Bug in this case in `typescript-language-server`:
https://github.com/typescript-language-server/typescript-language-server/pull/303#discussion_r869102064

We don't really need to override these at all. Keeping the existing
Anchors results in correct replacement.

Release Notes:

- Fixed issue where in some cases there would be an extra `}` at the end
of imports when accepting completions.
2025-08-23 10:37:13 -04:00
Anthony Eid
43b2c0b9b2
Add font ligatures and format on save buttons to onboarding UI (#35487)
Release Notes:

- N/A
2025-08-23 10:37:12 -04:00
Michael Sloan
99f0a7e2c5
zeta: Add CLI tool for querying edit predictions and related context (#35491)
Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2025-08-23 10:37:12 -04:00