b349a8f
ai: Auto select user model when there's no default (#36722)
Click to expand commit body
This PR identifies automatic configuration options that users can select
from the agent panel. If no default provider is set in their settings,
the PR defaults to the first recommended option. Additionally, it
updates the selected provider for a thread when a user changes the
default provider through the settings file, if the thread hasn't had any
queries yet.
Release Notes:
- agent: automatically select a language model provider if there's no
user set provider.
---------
Co-authored-by: Michael Sloan <michael@zed.dev>
Anthony Eid
and
Michael Sloan
created
e15856a
Move APCA contrast from terminal_view to ui utils (#36731)
Click to expand commit body
In prep for using this in the editor search/select highlighting.
Release Notes:
- N/A
Smit Barmase
created
8524394
vim: Fix cursor jumping past empty lines with inlay hints in visual mode (#35757)
Click to expand commit body
**Summary**
Fixes #29134 - Visual mode cursor incorrectly jumps past empty lines
that contain inlay hints (type hints).
**Problem**
When in VIM visual mode, pressing j to move down from a longer line to
an empty line that contains an inlay hint would cause the cursor to skip
the empty line entirely and jump to the next line. This only occurred
when moving down (not up) and only in visual mode.
**Root Cause**
The issue was introduced by commit f9ee28db5e which added bias-based
navigation for handling multi-line inlay hints. When using Bias::Right
while moving down, the clipping logic would place the cursor past the
inlay hint, causing it to jump to the next line.
**Solution**
Added logic in up_down_buffer_rows to detect when clipping would place
the cursor within an inlay hint position. When detected, it uses the
buffer column position instead of the display column to avoid jumping
past the hint.
**Testing**
- Added comprehensive test case
test_visual_mode_with_inlay_hints_on_empty_line that reproduces the
exact scenario
- Manually verified the fix with the reproduction case from the issue
- All 356 tests pass with `cargo test -p vim`
**Release Notes:**
- Fixed VIM visual mode cursor jumping past empty lines with type hints
when navigating down
Adam Mulvany
created
f5fd4ac
vim: Implement partial increment/decrement for visual selection (#36553)
Click to expand commit body
This change adds the ability to increment / decrement numbers that are
part of a visual selection. Previously Zed would resolve to the entire
number under visual selection for increment as oppposed to only
incrementing the part of the number that is selected
Release Notes:
- vim: Fixed increment/decrement in visual mode
Prep work for deduping tool names
Release Notes:
- N/A
Ben Brandt
created
ca139b7
keymap_ui: Improve conflict resolution for semantically equal contexts (#36204)
Click to expand commit body
Closes #ISSUE
Creates a function named `normalized_ctx_eq` that compares
`gpui::KeybindContextPredicate`'s while taking into account the
associativity of the binary operators. This function is now used to
compare context predicates in the keymap editor, greatly improving the
number of cases caught by our overloading and conflict detection
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Closes #ISSUE
Adds system GPU collection to crash reporting. Currently this is Linux
only.
The system GPUs are determined by reading the `/sys/class/drm` directory
structure, rather than using the exisiting `gpui::Window::gpu_specs()`
method in order to gather more information, and so that the GPU context
is not dependent on Vulkan context initialization (i.e. we still get GPU
info when Zed fails to start because Vulkan failed to initialize).
Unfortunately, the `blade` APIs do not support querying which GPU _will_
be used, so we do not know which GPU was attempted to be used when
Vulkan context initialization fails, however, when Vulkan initialization
succeeds, we send a message to the crash handler containing the result
of `gpui::Window::gpu_specs()` to include the "Active" gpu in any crash
report that may occur
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
18fe68d
thread view: Add small refinements to tool call UI (#36723)
Hat tip to: @watercubz in
https://github.com/zed-industries/zed/issues/22869#issuecomment-3183850576
Release Notes:
- N/A
Peter Tripp
created
06c0e59
Make tab switcher show preview of selected tab (#36718)
Click to expand commit body
Similar to nvim's telescope this makes it easier to find the right tab
in the list.
The preview takes place in the pane where the tab resides.
- on dismiss: We restore all panes.
- on confirm: We restore all panes except the one where the selected tab
resides. For this reason we collect the active item for each pane before
the tabswither starts.
Release Notes:
- Improved tab switcher, it now shows a preview of the selected tab
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
David Kleingeld
and
Julia Ryan
created
0beb919
acp: Fix `MessageEditor::set_message` for sent messages (#36715)
Click to expand commit body
The `PromptCapabilities` introduced in previous PRs were only getting
set on the main message editor and not for the editors in user messages.
This caused a bug where mentions would disappear after resending the
message, and for the completion provider to be limited to files.
Release Notes:
- N/A
Agus Zubiaga
created
20a0c3e
Disable minidump generation on dev builds (again) (#36716)
Click to expand commit body
We accidentally deleted this in #36267
Release Notes:
- N/A
Julia Ryan
created
731b5d0
acp: Allow editing of thread titles in agent2 (#36706)
Click to expand commit body
Release Notes:
- N/A
---------
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Antonio Scandurra
and
Richard Feldman
created
555692f
thread view: Add improvements to the UI (#36680)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
2234f91
acp: Remove invalid creases on edit (#36708)
Click to expand commit body
Release Notes:
- N/A
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Agus Zubiaga
and
Bennet Bo Fenner
created
725ed5d
acp: Hide loading diff animation for external agents and update in place (#36699)
Click to expand commit body
The loading diff animation can be jarring for external agents because
they stream the diff at the same time the tool call is pushed, so it's
only displayed while we're asynchronously calculating the diff. We'll
now only show it for the native agent.
Also, we'll now only update the diff when it changes, which avoids
unnecessarily hiding it for a few frames.
Release Notes:
- N/A
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Agus Zubiaga
and
Bennet Bo Fenner
created
d0583ed
acp: Move ignored integration tests behind e2e flag (#36711)
Click to expand commit body
Release Notes:
- N/A
Ben Brandt
created
33e05f1
collab_ui: Fix channel text bleeding through buttons on hover (#36710)
Click to expand commit body
Release Notes:
- N/A
Lukas Wirth
created
c1e7499
Add terminal view path like target tests (#35422)
Click to expand commit body
Part of
- #28238
This PR refactors `Event::NewNavigationTarget` and `Event::Open`
handling of `PathLikeTarget` and associated code in `terminal_view.rs`
into its own file, `terminal_path_like_target.rs` for improved
testability, and adds tests which cover cases from:
- #28339
- #28407
- #33498
- #34027
- #34078
Release Notes:
- N/A
Dave Waggoner
created
81cb248
ruby: Improve Ruby test and debug task configurations (#36691)
Click to expand commit body
Hi! This pull request adds missing `cwd` field to all Ruby test tasks
otherwise `rdbg` will be broken when the user tries to debug a test.
Thanks!
Release Notes:
- N/A
Vitaly Slobodin
created
f2899bf
ci: Switch from ubuntu-latest to namespace (2) (#36702)
Click to expand commit body
In response to ongoing [github actions
incident](https://www.githubstatus.com/incidents/c7kq3ctclddp)
Supercedes: https://github.com/zed-industries/zed/pull/36698
Release Notes:
- N/A
Peter Tripp
created
1b2ceae
Use Tokio::spawn instead of getting an executor handle (#36701)
Click to expand commit body
This was causing panics due to the handles being dropped out of order.
It doesn't seem possible to guarantee the correct drop ordering given
that we're holding them over await points, so lets just spawn on the
tokio executor itself which gives us access to the state we needed those
handles for in the first place.
Fixes: ZED-1R
Release Notes:
- N/A
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Julia Ryan
,
Conrad Irwin
, and
Marshall Bowers
created
d166ab9
ci: Switch Windows jobs to target explicit tag (#36693)
Click to expand commit body
The previous tags are non-customizable (added by default).
This will enable us to pull specific runs out of the pool for
maintenance.
Also disable actionlint invoking shellcheck because it chokes on
PowerShell.
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Peter Tripp
and
Cole Miller
created
b284b1a
remote: Fetch shell on ssh remote to use for preparing commands (#36690)
Click to expand commit body
Prerequisite for https://github.com/zed-industries/zed/pull/36576 to
allow us to differentiate the shell in a remote.
Release Notes:
- N/A
Lukas Wirth
created
6f32d36
Upload telemetry event on crashes (#36695)
Click to expand commit body
This will let us track crashes-per-launch using the new minidump-based
crash reporting.
Release Notes:
- N/A
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Julia Ryan
,
Conrad Irwin
, and
Marshall Bowers
created
190217a
acp: Refactor agent2 `send` to have a clearer control flow (#36689)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
132daef
lsp: Add basic test for server tree toolchain use (#36692)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Piotr Osiewicz
created
4bee06e
acp: Use `ResourceLink` for agents that don't support embedded context (#36687)
Click to expand commit body
The completion provider was already limiting the mention kinds according
to `acp::PromptCapabilities`. However, it was still using
`ContentBlock::EmbeddedResource` when
`acp::PromptCapabilities::embedded_context` was `false`. We will now use
`ResourceLink` in that case making it more complaint with the
specification.
Release Notes:
- N/A
Agus Zubiaga
created
f23314b
editor: Use editorconfig's max_line_length for hard wrap (#36426)
Click to expand commit body
PR #20198, "Do not alter soft wrap based on .editorconfig contents"
removed support for setting line lengths for both soft and hard wrap,
not just soft wrap. This causes the `max_line_length` property within a
`.editorconfig` file to be ignored by Zed. This commit restores allowing
for hard wrap limits to be set using `max_line_length` without impacting
soft wrap limits. This is done by merging the `max_line_length` property
from an editorconfig file into Zed's `preferred_line_length` property.
Release Notes:
- Added support for .editorconfig's `max_line_length` property
Signed-off-by: Ryan Drew <git@ry4n.me>
Ryan Drew
created
697a39c
Fix issue where renaming a file would not update imports in related files if they are not open (#36681)
Click to expand commit body
Closes #34445
Now we open a multi-buffer consisting of buffers that have updated,
renamed file imports.
Only local is handled, for now.
Release Notes:
- Fixed an issue where renaming a file would not update imports in
related files if they are not already open.
Smit Barmase
created
d9ea97e
acp: Detect gemini auth errors and show a button (#36641)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Conrad Irwin
created
d8fc779
acp: Hide history unless in native agent (#36644)
Click to expand commit body
Release Notes:
- N/A
Conrad Irwin
created
001ec97
acp: Use file icons for edit tool cards when ToolCallLocation is known (#36684)
Click to expand commit body
Release Notes:
- N/A
Bennet Bo Fenner
created
2781a30
collab: Add Orb subscription status and period to `billing_subscriptions` table (#36682)
Click to expand commit body
This PR adds the following new columns to the `billing_subscriptions`
table:
- `orb_subscription_status`
- `orb_current_billing_period_start_date`
- `orb_current_billing_period_end_date`
Release Notes:
- N/A
Marshall Bowers
created
e0613cb
Add Rodio audio pipeline as alternative to current LiveKit pipeline (#36607)
Click to expand commit body
Rodio parts are well tested and need less configuration then the livekit
parts. I suspect there is a bug in the livekit configuration regarding
resampling. Rather then investigate that it seemed faster & easier to
swap in Rodio.
This opens the door to using other Rodio parts like:
- Decibel based volume control
- Limiter (prevents sound from becoming too loud)
- Automatic gain control
To use this add to settings:
```
"audio": {
"experimental.rodio_audio": true
}
```
Release Notes:
- N/A
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
David Kleingeld
,
Mikayla
, and
Antonio Scandurra
created
1dd2371
Fix more improper uses of the `buffer_id` field of `Anchor` (#36636)
Click to expand commit body
Follow-up to #36524
Release Notes:
- N/A
Cole Miller
created
f63d8e4
Show excerpt dividers in `without_headers` multibuffers (#36647)
Click to expand commit body
Release Notes:
- Fixed diff cards in agent threads not showing dividers between
disjoint edited regions.
f435af2
acp: Use unstaged style for diffs (#36674)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
c5ee3f3
Avoid suspending panicking thread while crashing (#36645)
Click to expand commit body
On the latest build @maxbrunsfeld got a panic that hung zed. It appeared
that the hang occured after the minidump had been successfully written,
so our theory on what happened is that the `suspend_all_other_threads`
call in the crash handler suspended the panicking thread (due to the
signal from simulate_exception being received on a different thread),
and then when the crash handler returned everything was suspended so the
panic hook never made it to the `process::abort`.
This change makes the crash handler avoid _both_ the current and the
panicking thread which should avoid that scenario.
Release Notes:
- N/A
Julia Ryan
created
7f1bd2f
remote: Fix toolchain RPC messages not being handled because of the entity getting dropped (#36665)
Follow-up of https://github.com/zed-industries/zed/pull/36557 that is
needed after https://github.com/zed-industries/zed/pull/36652
Release Notes:
- N/A
68f97d6
editor: Use `highlight_text` to highlight matching brackets, fix unnecessary inlay hint highlighting (#36540)
Click to expand commit body
Closes #35981
Release Notes:
- Fixed bracket highlights overly including parts of inlays when
highlighting
Before -
<img width="1480" height="602" alt="Screenshot from 2025-08-19 17-15-06"
src="https://github.com/user-attachments/assets/8e6b5ed8-f133-4867-8352-ed93441fbd8b"
/>
After -
<img width="1480" height="602" alt="Screenshot from 2025-08-19 17-24-26"
src="https://github.com/user-attachments/assets/1314e54e-ecf9-4280-9d53-eed6e96e393f"
/>
Sachith Shetty
created
5dcb908
Stop waiting for part of LSP responses on remote Collab clients' part (#36557)
Click to expand commit body
Instead of holding a connection for potentially long LSP queries (e.g.
rust-analyzer might take minutes to look up a definition), disconnect
right after sending the initial request and handle the follow-up
responses later.
As a bonus, this allows to cancel previously sent request on the local
Collab clients' side due to this, as instead of holding and serving the
old connection, local clients now can stop previous requests, if needed.
Current PR does not convert all LSP requests to the new paradigm, but
the problematic ones, deprecating `MultiLspQuery` and moving all its
requests to the new paradigm.
Release Notes:
- Improved resource usage when querying LSP over Collab
---------
Co-authored-by: David Kleingeld <git@davidsk.dev>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: David Kleingeld <davidsk@zed.dev>
Kirill Bulatov
,
David Kleingeld
,
Mikayla Maki
, and
David Kleingeld
created