472b820
zed 0.185.3
Joseph T. Lyons created
472b820
zed 0.185.3
Joseph T. Lyons created
7da1166
Allow `StreamingEditFileTool` to also create files (#29785)
Refs #29733 This pull request introduces a new field to the `StreamingEditFileTool` that lets the model create or overwrite a file in a streaming way. When one of the `assistant.stream_edits` setting / `agent-stream-edits` feature flag is enabled, we are going to disable the `CreateFileTool` so that the agent model can only use `StreamingEditFileTool` for file creation. Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Antonio Scandurra , Ben Brandt , and Oleksiy Syvokon created
a329e67
agent: Make thread completion mode non-optional (#29772)
This PR makes the thread completion mode non-optional. Release Notes: - N/A
Marshall Bowers created
cde6c2f
agent: Do not render unnecessary lines in edit file tool card (#29766)
This PR prevents any unnecessary lines from being rendered in the edit file tool card in the case of small diffs. I think this (hopefully) addresses the last remaining task from https://github.com/zed-industries/zed/pull/29448. | `main` | This PR | | --- | --- | | <img width="634" alt="main" src="https://github.com/user-attachments/assets/7c06394e-957a-4d36-a484-5974687041e9" /> | <img width="634" alt="PR" src="https://github.com/user-attachments/assets/84206d5a-a93a-4a42-99ca-7cdebb0d91bb" /> | (The last empty line in the second image is an empty line present in the file itself) --- n the second commit I also preemtively disabled vertical overscrolling for full mode editors which are sized by content. This is basically the same fix as in https://github.com/zed-industries/zed/pull/28471. Strictly speaking, this is not needed for the fix here, but I thought it might be nice to have for the future to prevent any issues from occuring due to overscroll. Release Notes: - agent: Improved rendering of small diffs for the edit file tool card.
Finn Evers created
40b51c2
agent: Add design adjustments to MCP config flow (#29765)
Mostly somewhat small UI tweaks around the MCP extension config flow and the settings section. Release Notes: - N/A
Danilo Leal created
7c56afd
agent: Render the max mode toggle using a muted color (#29763)
This PR updates the max mode toggle to use the muted color. This makes it fit in more with the rest of the controls. <img width="243" alt="Screenshot 2025-05-01 at 5 24 01 PM" src="https://github.com/user-attachments/assets/57267d29-3c7b-4ea9-b6b9-81c42f6b7e1c" /> Release Notes: - agent: Adjusted the color of the max mode toggle.
Marshall Bowers created
8e31309
Make context pills clickable while editing (#29740)
Release Notes: - Fixed a bug where clicking context pills switched into the "editing message" state instead of clicking the pill. Co-authored-by: Michael <michael@zed.dev> Co-authored-by: Ben <ben@zed.dev>
Richard Feldman , Michael , and Ben created
990acdf
Allow MIT-0 license in checks (#29748)
Part of #29309 The license is on par with other licenses in the list: https://github.com/aws/mit-0 Release Notes: - N/A
Bennet Bo Fenner created
e4d7f98
zed 0.185.2
Joseph T. Lyons created
c8b456d
Fix user rules ignored by agent (#29754)
Closes #29753 The template contains an error: `has_default_user_rules` is always undefined and should be `has_user_rules` instead. Release Notes: - Fixed default user rules ignored during prompt building.
Jonathan LEI created
6dbb356
agent: Remove unused `agent: chat mode` command palette action (#29741)
We weren't using this one anymore. We used to use it for the switch that toggled tools on, which doesn't exist anymore. Release Notes: - N/A --------- Co-authored-by: Joseph T. Lyons <josephtlyons@gmail.com>
Danilo Leal and Joseph T. Lyons created
a6a94f7
context servers: Show configuration modal when extension is installed (#29309)
WIP Release Notes: - N/A --------- Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Marshall Bowers <git@maxdeviant.com> Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Bennet Bo Fenner , Danilo Leal , Danilo Leal , Marshall Bowers , Cole Miller , Antonio Scandurra , and Oleksiy Syvokon created
9107473
Introduce a new `StreamingEditFileTool` (#29733)
This pull request introduces a new tool for streaming edits. The short-term goal is for this tool to replace the existing `EditFileTool`, but we want to get this out the door as soon as possible so that we can start testing it. `StreamingEditFileTool` is mutually exclusive with `EditFileTool`. It will be enabled by default for anyone who has the `agent-stream-edits` feature flag, as well as people that set `assistant.stream_edits` to `true` in their settings. ### Implementation Streaming is achieved by requesting a completion while the `edit_file` tool gets called. We invoke the model by taking the existing conversation with the agent and appending a prompt specifically tailored for editing. In that prompt, we ask the model to produce a stream of `<old_text>`/`<new_text>` tags. As the model streams text in, we incrementally parse it and start editing as soon as we can. ### Evals Note that, as part of this pull request, I also defined some new evals that I used to drive the behavior of the recursive LLM call. To run them, use this command: ```bash cargo test --package=assistant_tools --features eval -- eval_extract_handle_command_output ``` Or comment out the `#[cfg_attr(not(feature = "eval"), ignore)]` macro. I recommend running them one at a time, because right now we don't really have a way of orchestrating of all these evals. I think we should invest into that effort once the new agent panel goes live. Release Notes: - N/A --------- Co-authored-by: Nathan Sobo <nathan@zed.dev> Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Antonio Scandurra , Nathan Sobo , Bennet Bo Fenner , and Oleksiy Syvokon created
88bd4ee
agent: Show nav dropdown close button only on hover (#29732)
Danilo Leal created
60acc3e
zed 0.185.1
Joseph T. Lyons created
ec4dc95
Re-enable `open` tool (#29707)
Release Notes: - Added `open` tool for opening files or URLs.
Richard Feldman created
6030ecb
agent: Allow adding/removing context when editing existing messages (#29698)
Release Notes: - agent: Support adding/removing context when editing existing message --------- Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Cole Miller <cole@zed.dev>
Bennet Bo Fenner , Cole Miller , and Cole Miller created
a1f0dfc
Fix potential subtraction overflow (#29697)
I saw this come up in an eval, where the LLM provided a start line of 0. Release Notes: - N/A
Richard Feldman created
ad11646
Fix parsing of author name in git show output (#29704)
Closes #ISSUE Release Notes: - Fixed a bug causing incorrect formatting of git commit tooltips
Cole Miller created
87d1beb
Use outline (#29687)
## Before  ## After  Release Notes: - Context picker and `@`-mentions now work with very large files.
Richard Feldman created
cdcf035
v0.185.x preview
Joseph T. Lyons created
e4e455a
Fix duplicate thread entries in agent navigation menu (#29672)
Closes #ISSUE Release Notes: - N/A
Cole Miller created
ff4900c
Mitigate panic in merge conflict resolution (#29678)
We have a report of a panic when indexing into `BufferConflicts.block_ids` using the `old_range` from the `ConflictsUpdated` event, indicating that the `block_ids` array can get out of sync with the underlying `ConflictSet`. This PR adds a mitigation so that we won't panic in this situation, as a stopgap until the bug can be reproduced in a test and fixed at the root. Release Notes: - N/A
Cole Miller created
632f08d
project: Check path extension first, then worktree's (#29671)
This fixes a bug with opening images on worktrees that contain "extension" in the dir name, like `zed.dev` Release Notes: - N/A
Oleksiy Syvokon created
5589e78
python: Do not look up venv path from source file path (#29676)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
128b7d2
agent: Improve edit file tool card (#29448)
⚠️ Work in progress until all of the to-dos are knocked out: - [x] Disable soft-wrapping - [x] Make it foldable only after a certain number of lines - [x] Display tool status errors - [x] Fix horizontal scroll now that we've disabled soft-wrap - [ ] Don't render unnecessary extra lines (will be added later, on a follow-up PR) Release Notes: - N/A --------- Co-authored-by: Agus Zubiaga <hi@aguz.me> Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Danilo Leal , Agus Zubiaga , and Michael Sloan created
fbb0fe4
agent: Add small design tweaks (#29674)
Mostly spacing and whatnot; tiny stuff here. Release Notes: - N/A
Danilo Leal created
7587340
Fix a bug that interfered with sorting of conflicted paths in the git panel (#29534)
This PR updates the git store to not register a change in a repository's merge heads until conflicted paths are seen. We currently use the repository's merge heads only to decide when the list of conflicted paths should be refreshed. Previously, the logic looked like this: - Whenever we see a change in the merge heads, set the list of conflicted paths by filtering the output of `git status`. It turns out that when a conflicting merge takes a while, we can see this sequence of events: 1. We get an event in .git and reload statuses and merge heads. Previously there were no merge heads, and now we have some, but git hasn't finished figuring out which paths have conflicts, so we set the list of conflicted paths to `[]`. 2. Git finishes computing the list of conflicted paths, and we run another scan that picks these up from `git status`, but then we throw them away because the merge heads are the same as in (1). By not updating our stored merge heads until we see some conflicts in `git status`, we delay this step until (2), and so the conflicted paths show up in the git panel as intended. This means that our merge heads state no longer matches what's on disk (in particular, during a clean merge we'll never update them at all), but that's okay because we only keep this state for the purpose of organizing conflicts. Release Notes: - Fixed a bug that could cause conflicted paths to not appear in their own section in the git panel.
Cole Miller created
5073cba
agent: Add keybindings to open the panel's extra menu (#29663)
Maybe "extra" isn't the best word, but I'm referring to the ellipsis menu on the far right of the panel that holds "extra" or "additional options". There is a known issue with context menus, at least if implemented this way, that makes hitting enter to select an option not work. Will leave this fix to a later PR. Release Notes: - N/A
Danilo Leal created
0a02869
agent: Add new "Manual" profile (#29636)
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.
Danilo Leal created
854c554
agent: Update panel navigation dropdown keybindings (#29660)
Release Notes: - N/A
Danilo Leal created
59708ef
Revert "python: Enable subroot detection for pylsp and pyright (#27364)" (#29658)
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)
Release Notes: - N/A Avoid install on macOS: <img width="752" alt="image" src="https://github.com/user-attachments/assets/9b13d1c5-1734-49b7-b1f0-cffbc49a3820" />
Jason Lee created
074b696
gpui: Refactor `PlatformKeyboardLayout` (#29653)
Release Notes: - N/A
张小白 created
edda386
windows: Remove `allow(deadcode)` (#29651)
Release Notes: - N/A
张小白 created
9767033
debugger: Extract running state from DebugSession mode and remove mode field (#29646)
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)
Release Notes: - N/A
Michael Sloan created
8d77efa
extensions_ui: Fix scroll to top only on refetch (#29640)
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)
Closes #29572 Release Notes: - Fixed paragraph spacing in git commit messages
Conrad Irwin created
c8685dc
Fix eval judging missing final response (#29638)
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)
This reduces spurious failures in the eval. Release Notes: - N/A
Richard Feldman created
75a9ed1
vim: Fix incorrect escaping parenthesis of replacement string (#29555)
Closes #29356  Release Notes: - vim: Fixed a bug when escaping `(` and `)` in command-palette find and replace
Hilda24 created
e364e48
Tidy up diagnostics more (#29629)
- 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)
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