This new default profile is one that doesn't use any tools; it's
completely "naked" and it shouldn't lean into trying to read things from
the current project at hand. Better suited for general topic chats with
the LLM.
PS: Still expecting some wordsmithing here before merging.
Release Notes:
- agent: Added a new default profile called "Manual" that doesn't
include any tools, for general topic chats with the LLM.
59708ef
Revert "python: Enable subroot detection for pylsp and pyright (#27364)" (#29658)
Click to expand commit body
This reverts commit e661a0afd64e3e6e1e51c981cb7bda4e0af724fd.
Closes #ISSUE
Release Notes:
- Reverted changes to Python subroot detection which could have caused
multiple python processes to be spawned when working in projects with
multiple `pyproject.toml` files.
Piotr Osiewicz
created
152ea04
chore: Move Windows dependencies to windows section (#29649)
9767033
debugger: Extract running state from DebugSession mode and remove mode field (#29646)
Click to expand commit body
DebugSession.mode is no longer needed because project::debugger::Session
manages its own state now (booting, running, terminated), and removing
mode simplifies a lot of the code that uses running state.
I used Zed AI to do a good chunk of the refactor, but I doubled-checked
everything it did and changed a good amount of its updates.
Release Notes:
- N/A
Co-authored-by: Zed AI <ai@zed.dev>
Anthony Eid
and
Zed AI
created
edf78e7
Fix token counting requests in Gemini (#29643)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
8d77efa
extensions_ui: Fix scroll to top only on refetch (#29640)
Click to expand commit body
Closes #29604
Release Notes:
- Fixes case where extension page scrolls up to the top when installing
an extension.
Smit Barmase
created
747a029
Split diagnostics markdown style out (#29637)
c8685dc
Fix eval judging missing final response (#29638)
Click to expand commit body
Fixed issue where eval thread judges were not considering the last
response in the thread.
The problem was that they were getting the full list of messages from
`last_request`, which (being a request!) did not have the response yet.
Release Notes:
- N/A
Richard Feldman
created
d566864
Make code block eval resilient to indentation (#29633)
Click to expand commit body
This reduces spurious failures in the eval.
Release Notes:
- N/A
Richard Feldman
created
75a9ed1
vim: Fix incorrect escaping parenthesis of replacement string (#29555)
Click to expand commit body
Closes #29356

Release Notes:
- vim: Fixed a bug when escaping `(` and `)` in command-palette find and
replace
- Stop merging same row diagnostics
- (for Rust) show code fragments surrounded by `'s in monospace
Co-authored-by: Serge Radinovich <sergeradinovich@gmail.com>
Closes #29362
Release Notes:
- diagnostics: Diagnostics are no longer merged when they're on the same
line
- rust: Diagnostics now show code snippets in monospace font:
<img width="551" alt="Screenshot 2025-04-29 at 16 13 45"
src="https://github.com/user-attachments/assets/d289be31-717d-404f-a76a-a0cda3e96fbe"
/>
Co-authored-by: Serge Radinovich <sergeradinovich@gmail.com>
Conrad Irwin
and
Serge Radinovich
created
b473223
Skip serializing `None` fields in Gemini API (#29632)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
b1395c5
agent: Add new panel navigation dropdown (#29539)
Click to expand commit body
- [x] Ensure what appears in the dropdown is really what is accurate
- [x] Ensure keyboard navigation works:
- [x] Switching tabs with `enter`
- [x] Closing items from the menu item
- [x] Opening the dropdown
- [x] Focus assistant panel on dismiss
- [x] Add ability to close items from the dropdown menu
- [x] Persistence
- [x] Correct behavior when opening a text thread
Release Notes:
- agent: Added a navigation menu that shows the recently opened threads.
The button to see the full history view has been changed inside this
menu.
---------
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
Co-authored-by: Cole Miller <cole@zed.dev>
Danilo Leal
,
Bennet Bo Fenner
,
Cole Miller
,
Bennet Bo Fenner
, and
Cole Miller
created
1a4d724
agent: Make token indicator not flash if last count tokens request failed (#29628)
Add a targeted eval for code block formatting, and revise the system
prompt accordingly.
### Eval before, n=8
<img width="728" alt="eval before"
src="https://github.com/user-attachments/assets/552b6146-3d26-4eaa-86f9-9fc36c0cadf2"
/>
### Eval after prompt change, n=8 (excluding the new evals, so just
testing the prompt change)
<img width="717" alt="eval after"
src="https://github.com/user-attachments/assets/c78c7a54-4c65-470c-b135-8691584cd73e"
/>
Release Notes:
- N/A
Adds popular examples of long-running commands to system prompt.
Unfortunately, I couldn't add an eval example as the new terminal tool
no longer works in `eval`. We can look into that tomorrow, but I'm
seeing improvements when manually testing this, so I'd like to merge it.
<img
src="https://github.com/user-attachments/assets/ac24e617-e068-466f-875d-c30e1f2465c4"
width=400></img>
Release Notes:
- agent: Discourage long-running commands
Agus Zubiaga
created
a09e5d2
vim: Create anyquotes, anybrackets, miniquotes, and minibrackets text objects (#26748)
Click to expand commit body
## Why?
Some users expressed a preference for the AnyQuotes and AnyBrackets text
objects to align more closely with traditional Vim behavior, rather than
the mini.ai plugin's approach. To address this, Iβve introduced two new
text objects: MiniQuotes and MiniBrackets. These retain the mini.ai
plugin behavior, while the updated AnyQuotes and AnyBrackets now follow
the logic described in [this bug
report](https://github.com/zed-industries/zed/issues/25563) and [this
bug report](https://github.com/zed-industries/zed/issues/25562).
## Behavior Overview:
### AnyQuotes and AnyBrackets:
These now prioritize the innermost range first (e.g., the closest quotes
or brackets). If none are found, they fall back to searching the current
line. This aligns with the behavior requested in the issue.
### MiniQuotes and MiniBrackets:
These maintain the mini.ai plugin behavior, prioritizing the current
line before expanding the search outward.
### Usage Examples:
AnyQuotes: Works like ```ci', ci", ci` , ca', ca", ca` , etc.```
AnyBrackets: Works like ```ci(, ci[, ci{, ci<, ca(, ca[, ca{, ca<,
etc.```
Please give these changes a try and let me know your thoughts!
### Release Notes:
- vim: Add AnyQuotes, AnyBrackets, MiniQuotes and MiniBrackets text
objects
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Osvaldo
and
Ben Kunkle
created
33abf1e
agent: Log errors from token counting APIs (#29626)
Until we land #28128, we're disabling the nightly nix builds so they're
not constantly failing.
Release Notes:
- N/A
Julia Ryan
created
24e47de
collab: Add `has_extended_trial` to `LlmTokenClaims` (#29622)
Click to expand commit body
This PR adds the `has_extended_trial` field to the LLM token claims.
Release Notes:
- N/A
Marshall Bowers
created
15a83b5
Stop routing session events via the DAP store (#29588)
Click to expand commit body
This cleans up a bunch of indirection and will make it easier to
show the session building state in the debugger terminal
Closes #ISSUE
Release Notes:
- N/A
Loosen trait bounds from `std::error::Error` to `std::fmt::Display`,
since it's not required for the `log::error!` macro or any other bounds.
Specify that `AssetLogger` specifically logs errors in its
documentation.
Use the `futures::TryFutureExt` trait extension to use `inspect_err`
directly on a future.
Release Notes:
- N/A
tidely
created
f2813f6
vim: Fix end of paragraph deletion when there's no blank lines (#29490)
Click to expand commit body
This Pull Request attempts to fix an issue where using `d}` in vim mode
would not delete all characters in case there's no blank lines at the
end of the buffer.
When calculating the end point for this motion, if there's no blank
lines at the end of the buffer, Zed was calculating it to be the last
character in the last line. However, if there's a newline at the end of
the buffer, it calculates the end point to be the point at the right of
the last character.
Here's an example, for the following buffer contents:
```
Hello!
Hello!
```
If the `d}` command is run at `(0, 0)`, the end point will be set to
`(1, 5)`. However, fi the same command is run for this buffer instead:
```
Hello!
Hello!
```
The end point will be set to `(1, 6)`, there's a 1 unit difference in
the column, which leads to all characters actually being deleted.
Closes #29393
Release Notes:
- Fixed deleting to the end of paragraph when there's no blank lines
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Dino
and
Conrad Irwin
created
4758173
Use image cache to stop leaking images (#29452)
Click to expand commit body
This PR fixes several possible memory leaks due to loading images in
markdown files and the image viewer, using the new image cache APIs
TODO:
- [x] Ensure this didn't break rendering in any of the affected
components.
Release Notes:
- Fixed several image related memory leaks
cf6b051
keymap: Make F10 toggle the menu on Linux (#29607)
Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/27271
Release Notes:
- Added support for F10 toggling menus on Linux
Peter Tripp
created
a376038
agent: Add icon for Zed's max mode (#29610)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
2973bf1
bash: Don't treat `raw_string` as bracket (#29617)
Click to expand commit body
Closes #29222
Release Notes:
- Fixed a crash when inputting `ciq` in vim mode inside of a raw string
in a bash file
Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>
Ben Kunkle
,
Conrad
, and
Anthony
created
386970c
collab: Add support for extended Zed Pro trial (#29612)
Click to expand commit body
This PR adds support for an extended Zed Pro trial, applied based on the
presence of the `agent-extended-trial` feature flag.
Release Notes:
- N/A
Marshall Bowers
created
f7f44bf
Fix channel notes searching in buffer picker (#29611)
Click to expand commit body
Previously they all used the name "Channels" for searching, now it uses
the actual content of the channel name and status.
Release Notes:
- N/A
Julia Ryan
created
fd17f2d
agent: Enrich `grep` tool output with syntax information (#29601)
Click to expand commit body
The `grep` tool used to include 4 lines of context around the match, but
the lines included would often be unhelpful. This PR improves this
behavior by using the range of the parent syntax node that contains the
full line(s) matched.
The match headers will also now include symbol breadcrumbs so that the
model can already gather code structure before/without reading files.
````md
### impl GitRepository for RealGitRepository βΊ fn compare_checkpoints βΊ L1278-1284
```rust
let result = git
.run(&[
"diff-tree",
"--quiet",
&left.commit_sha.to_string(),
&right.commit_sha.to_string(),
])
```
````
This positively impacts the `add_arg_to_trait_method` eval example with
better diff output, fewer tool failures, and reduced total turns.
Note: We have some plans to use a an "elision" approach where we would
combine all matches for a given file, skipping lines between them while
keeping symbol declaration lines. The theory is that this would be map
more closely to the expected input for edits. For now, this PR is a
significant improvement.
Release Notes:
- Agent: Enrich `grep` tool output with syntax information
Agus Zubiaga
created
5507958
debugger: Transition to path! macro to create paths in debugger tests (#29605)
Click to expand commit body
This should prevent some cases where a test passes on one platform and
not another
Release Notes:
- N/A
Co-authored-by: Zed AI <ai@zed.dev>
Anthony Eid
and
Zed AI
created
fa40353
bedrock: Preserve thinking blocks for Bedrock (#29602)
Click to expand commit body
Fixes a regression from #29055, resolves #29290
Release Notes:
- agent: Fixed a regression that rendered Claude 3.7 Thinking unusable
on Bedrock.
Shardul Vaidya
created
83b8530
agent: Create `TerminalToolCard` and display shell output while it's running (#29546)
Click to expand commit body
Also, don't require a worktree to run the terminal tool.
Release Notes:
- N/A
JoΓ£o Marcos
created
5afb89c
collab: Take the mode into account when syncing usage to Stripe (#29606)
Click to expand commit body
This PR makes it so we take the mode that was used into account when
syncing usage over to Stripe.
Release Notes:
- N/A
Marshall Bowers
created
6386336
debugger: Fix bug where active debug line highlights weren't cleared (#29562)
Click to expand commit body
## Context
The bug occurred because we stopped propagating the
`BreakpointStoreEvent::SetDebugLine` whenever a new debug line highlight
had been set. This was done to prevent multiple panes from having
editors focus on the debug line. However, it stopped the event from
propagating to editors that needed to clear their debug line highlights.
I fixed this by introducing two phases
1. Clear all debug line highlights
2. Set active debug line highlight in singular editor
I also added a test to prevent regressions from occurring
Release Notes:
- N/A
Anthony Eid
created
c168fc3
collab: Add `mode` column to `subscription_usage_meters` table (#29603)
Click to expand commit body
This PR adds a `mode` column to the `subscription_usage_meters` table in
the LLM database.
Release Notes:
- N/A
Marshall Bowers
created
b2df395
language_models: Change default fast model for Zed provider (#29600)
Click to expand commit body
This PR changes the default fast model for the Zed provider from Claude
3.5 Haiku to Claude 3.5 Sonnet.
We don't offer Claude 3.5 Haiku to users.
Closes https://github.com/zed-industries/zed/issues/29505.
Release Notes:
- agent: Changed the default fast model for the Zed provider to Claude
3.5 Sonnet.
4812c90
agent: Support images via @file and the file context picker (#29596)
Click to expand commit body
Release Notes:
- agent: Add support for @mentioning images
- agent: Add support for including images via file context picker
---------
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Bennet Bo Fenner
and
Oleksiy Syvokon
created
fcef101
agent: Only show expand message editor when focused on it (#29595)
Click to expand commit body
Simplifying the UI as much as possible.
Release Notes:
- N/A
Probably the most relevant change in this PR is the commented out (still
pending) line number diffs. Aside from this, commits are pretty
descriptive.
Release Notes:
- N/A
Danilo Leal
created
9b37206
extensions_ui: Add design changes to expose the filters more (#29582)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/28086
The main motivator for this change is to have the "MCP Servers" filter
more clearly visible. And because of this, all other filters end up more
visible, as they're not in a dropdown menu anymore. Ended up pushing
some other small changes here and there as well. This is our final
product:
<img
src="https://github.com/user-attachments/assets/16ac78b6-72d9-4a8a-801b-b4b992221331"
width="700"/>
Release Notes:
- N/A
Release Notes:
- git: Add a `git_panel.sort_by_path` setting to mix untracked/tracked
files in the diff list.
- git: Remove the "β’" placeholder for "Tracked". The commit button says
"Commit Tracked" still by default, and this was misinterpreted to mean
"partially staged". Hovering over the button will show you which files
are tracked (in addition to the yellow square-with-a-dot-in-it).
- Increase the default value of `expand_excerpt_lines` from 3 to 5. This
makes it faster to see more context in the git diff view.
---------
Co-authored-by: Birk Skyum <birk.skyum@pm.me>
Co-authored-by: Peter Tripp <peter@zed.dev>
Conrad Irwin
,
Birk Skyum
, and
Peter Tripp
created
main was failing to build on FreeBSD.
[joblink](https://github.com/zed-industries/zed/actions/runs/14721383651/job/41315738893)
```
error[E0425]: cannot find value `platform` in this scope
--> crates/terminal/src/terminal_settings.rs:298:36
|
298 | let shell_name = format!("{platform}Exec");
| ^^^^^^^^ not found in this scope
error[E0425]: cannot find value `platform` in this scope
--> crates/terminal/src/terminal_settings.rs:304:46
|
304 | .read_value(&name(&format!("env.{platform}")))
| ^^^^^^^^ not found in this scope
```
CC: @P1n3appl3
Release Notes:
- N/A