b473223
Skip serializing `None` fields in Gemini API (#29632)
Click to expand commit body
Release Notes: - N/A
Michael Sloan created
b473223
Skip serializing `None` fields in Gemini API (#29632)
Release Notes: - N/A
Michael Sloan created
b1395c5
agent: Add new panel navigation dropdown (#29539)
- [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)
Release Notes: - N/A
Michael Sloan created
d700403
Code block evals (#29619)
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
Richard Feldman created
2508e49
agent: Discourage long-running commands (#29627)
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)
## 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)
Release Notes: - N/A
Michael Sloan created
f7a3e00
Disable nix nightly builds (#29624)
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)
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)
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
Conrad Irwin created
fde1cc7
gpui: Relax AssetLogger trait bounds (#29450)
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)
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)
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
Mikayla Maki created
d732a7d
Fix worktree test flakiness (#29613)
Co-Authored-By: Cole <cole@zed.dev> Closes #ISSUE Release Notes: - N/A Co-authored-by: Cole <cole@zed.dev>
Conrad Irwin and Cole created
cf6b051
keymap: Make F10 toggle the menu on Linux (#29607)
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)
Release Notes: - N/A
Danilo Leal created
2973bf1
bash: Don't treat `raw_string` as bracket (#29617)
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)
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)
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)
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)
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)
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)
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)
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)
## 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)
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)
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.
Marshall Bowers created
2b431d3
Re-add code block formatting instructions (#29574)
Re-enabled instructions about code block formatting.
In practice, the model doesn't seem to use these very often, but there's
no negative effect on evals. In a future PR, I'll experiment with adding
more evals around the model actually using the code blocks.
2 runs before: (`--repetitions=8`)
```
=================================================================
AGGREGATE
=================================================================
4 examples failed to run!
Average programmatic score: 37%
Average diff score: 66%
Average thread score: 93%
-----------------------------------------------------------------
CUMULATIVE TOOL METRICS
-----------------------------------------------------------------
ββββββββββββββββββββββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
β Tool β Uses β Failures β Rate β
ββββββββββββββββββββββββββββββββΌβββββββββββΌβββββββββββΌβββββββββββ€
βedit_file β 398 β 53 β 13% β
βterminal β 11 β 1 β 9% β
βcreate_file β 40 β 2 β 5% β
βread_file β 245 β 8 β 3% β
βfind_path β 48 β 0 β 0% β
βlist_directory β 13 β 0 β 0% β
βgrep β 133 β 0 β 0% β
βthinking β 18 β 0 β 0% β
βdiagnostics β 130 β 0 β 0% β
```
```
=================================================================
AGGREGATE
=================================================================
1 examples failed to run!
Average programmatic score: 41%
Average diff score: 68%
Average thread score: 96%
-----------------------------------------------------------------
CUMULATIVE TOOL METRICS
-----------------------------------------------------------------
ββββββββββββββββββββββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
β Tool β Uses β Failures β Rate β
ββββββββββββββββββββββββββββββββΌβββββββββββΌβββββββββββΌβββββββββββ€
βfetch β 1 β 1 β 100% β
βedit_file β 553 β 63 β 11% β
βread_file β 349 β 3 β 1% β
βdiagnostics β 158 β 0 β 0% β
βfind_path β 70 β 0 β 0% β
βlist_directory β 10 β 0 β 0% β
βthinking β 45 β 0 β 0% β
βgrep β 213 β 0 β 0% β
βcreate_file β 24 β 0 β 0% β
βterminal β 17 β 0 β 0% β
ββββββββββββββββββββββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ
```
1 run after this change:
```
=================================================================
AGGREGATE
=================================================================
Average programmatic score: 42%
Average diff score: 74%
Average thread score: 100%
-----------------------------------------------------------------
CUMULATIVE TOOL METRICS
-----------------------------------------------------------------
ββββββββββββββββββββββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
β Tool β Uses β Failures β Rate β
ββββββββββββββββββββββββββββββββΌβββββββββββΌβββββββββββΌβββββββββββ€
βedit_file β 534 β 92 β 17% β
βread_file β 325 β 6 β 2% β
βlist_directory β 6 β 0 β 0% β
βthinking β 12 β 0 β 0% β
βcreate_file β 16 β 0 β 0% β
βdiagnostics β 49 β 0 β 0% β
βgrep β 234 β 0 β 0% β
βfind_path β 65 β 0 β 0% β
βterminal β 38 β 0 β 0% β
ββββββββββββββββββββββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ
```
Release Notes:
- N/A
Richard Feldman created
4812c90
agent: Support images via @file and the file context picker (#29596)
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)
Simplifying the UI as much as possible. Release Notes: - N/A
Danilo Leal created
7e25460
agent: Add message editor UI improvements (#29594)
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)
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
Danilo Leal created
756fcd0
Git tweaks (#28791)
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
3fd3779
freebsd: Fix failure to build (#29587)
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
Peter Tripp created
ab18085
Debug console tweaks (#29586)
Closes #ISSUE Release Notes: - N/A --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Cole Miller <m@cole-miller.net>
Conrad Irwin , Anthony Eid , and Cole Miller created
2beefc8
Fix gemini model token limits (#29584)
Release Notes: - N/A
Michael Sloan created
5092f0f
collab: Sync model request overages to Stripe (#29583)
This PR adds syncing of model request overages to Stripe. Release Notes: - N/A
Marshall Bowers created
3a212e7
Fix data loss when project settings opened with ".zed" in `file_scan_exclusions` (#29578)
Closes #28640 Before creating an entry for a file opened with `open_local_file`, make sure it doesn't exist, in addition to checking that it isn't already tracked in the workspace Release Notes: - Fixed an issue where the project settings file would be truncated when opened with `zed: open project settings` if the ".zed" directory was excluded from the files scanned in a workspace (in "file_scan_exclusions")
Ben Kunkle created
4dc8ce8
ollama: Add Qwen3 and Gemma3 (default to 16K context) (#29580)
If you have the VRAM you can increase the context by adding this to your
settings.json:
```json
"language_models": {
"ollama": {
"available_models": [
{ "max_tokens": 65536, "name": "qwen3", "display_name": "Qwen3-64k" }
]
}
},
```
Release Notes:
- ollama: Add support for Qwen3. Defaults to 16K token context. See:
[Assistant Configuration
Docs](https://zed.dev/docs/assistant/configuration#ollama-context) to
increase.
Peter Tripp created
2cc5a0d
zed_extension_api: Fork new version of extension API (#29579)
This PR forks a new version of the `zed_extension_api` in preparation for new changes. Release Notes: - N/A
Marshall Bowers created
bc665b2
Ensure thread's model is initialized once settings are loaded
Also, avoid showing token threshold warning when thread has no model. Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Max Brunsfeld and Michael Sloan created
17903a0
Associate each thread with a model (#29573)
This PR makes it possible to use different LLM models in the agent panels of two different projects, simultaneously. It also properly restores a thread's original model when restoring it from the history, rather than having it use the default model. As before, newly-created threads will use the current default model. Release Notes: - Enabled different project windows to use different models in the agent panel - Enhanced the agent panel so that when revisiting old threads, their original model will be used. --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Max Brunsfeld and Richard Feldman created
5102c4c
gpui: Fix markdown wrapped background not correctly rendering (#29571)
Closes #29532 Fixes case where the markdown background was not rendering correctly. This regression was introduced in https://github.com/zed-industries/zed/pull/26454. <img src="https://github.com/user-attachments/assets/1e64930f-c98e-4042-a20e-46eed03293d6" alt="image" width="400" /> Release Notes: - Fixed an issue where markdown code blocks did not wrap correctly.
Smit Barmase created
2139219
editor: Fix selection and bracket pair highlight not appearing on collab updates (#29558)
This PR fixes bug where selection and bracket pair highlights would not update when new text was added via collab. Release Notes: - Fixed an issue where selection and bracket pair highlights would not update when new text was added via collab. --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Smit Barmase and Ben Kunkle created
9abeedf
collab: Rename symbols for existing Stripe synchronization (#29570)
This PR renames the symbols for the existing Stripe synchronization. This will make things clearer once the new synchronization job for the new billing is added. Release Notes: - N/A
Marshall Bowers created
1d7c86b
Simplify the SerializableItem::cleanup implementation (#29567)
Release Notes: - N/A --------- Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
Mikayla Maki and Julia Ryan created
1770331
collab: Avoid creating duplicate Stripe customers (#29566)
This PR makes it so we check for an existing Stripe customer by email address before attempting to create a new one. This should avoid the case where we end up creating multiple Stripe customers for the same user. Release Notes: - N/A
Marshall Bowers created
bbe8d6a
agent: Cancel pending in-edit user message upon new message submit (#29565)
Previously, if you clicked on a user message to edit it, and then, while the user message has the editor pending, sent a new message via the textarea, the whole thread would be grayed out because we hadn't dismissed the to-be-edited pending user message. That's now fixed. Release Notes: - agent: Fixed a bug that would make the whole thread be grayed out upon sending a new message while a user message had a pending edit.
Danilo Leal created
bbc6674
Make thread context wait on detailed summary + remove "Summarizing context..." (#29564)
This moves summarization task management out of `context_store`. The code there was draining a Vec of tasks to block on, but this is no longer a good fit for message_editor's context loading. It needs to be able to repeatedly await on the thread summarization tasks involved in the context. Discussed with Danilo, and he thinks it'd be good to remove the current "Summarizing context" anyway since it causes layout shift. If message send is blocked on summarizing, the pulsing context pill is sufficient for now. This UI change made this overall change more straightforward. Release Notes: - N/A
Michael Sloan created
99df119
agent: Include grep-related instructions in the prompt only if the tool is available (#29536)
This change updates the system prompt to conditionally include
`grep`-related instructions based on whether the `grep` tool is enabled.
Implementation details:
1. Add a `has_tool` handlebars helper.
2. Pass the `model` to all locations where the prompt is built.
3. Use `{{#if has_tool "grep"}}` in the system prompt to gate
`grep`-specific instructions.
Testing:
- Unit tests for the `hasTool` helper.
- Unit tests to verify that `grep`-related instructions are included /
omitted from the prompt as appropriate.
- Manual agent evaluation:
- Setup: Asked the Agent "List all impls of MyTrait in the project"
using a custom "No tools" profile (all tools disabled).
- Before the change: The Agent attempted to call `grep`, encountered an
error, then realized the tool was unavailable.
- After the change: The Agent immediately asked to enable a search tool.
Note: in principle, `grep`/`read_file` tool descriptions alone might be
enough, but to confirm this we need more evaluation. If it turns out to
be true, we'll be able to remove grep-specific instructions from the
system prompt and undo this change.
Release Notes:
- N/A
Oleksiy Syvokon created