122af4f
agent: Show nav dropdown close button only on hover (#29732)
Danilo Leal created
122af4f
agent: Show nav dropdown close button only on hover (#29732)
Danilo Leal created
e07ffe7
Allow to fetch cargo diagnostics separately (#29706)
Adjusts the way `cargo` and `rust-analyzer` diagnostics are fetched into
Zed.
Nothing is changed for defaults: in this mode, Zed does nothing but
reports file updates, which trigger rust-analyzers'
mechanisms:
* generating internal diagnostics, which it is able to produce on the
fly, without blocking cargo lock.
Unfortunately, there are not that many diagnostics in r-a, and some of
them have false-positives compared to rustc ones
* running `cargo check --workspace --all-targets` on each file save,
taking the cargo lock
For large projects like Zed, this might take a while, reducing the
ability to choose how to work with the project: e.g. it's impossible to
save multiple times without long diagnostics refreshes (may happen
automatically on e.g. focus loss), save the project and run it instantly
without waiting for cargo check to finish, etc.
In addition, it's relatively tricky to reconfigure r-a to run a
different command, with different arguments and maybe different env
vars: that would require a language server restart (and a large project
reindex) and fiddling with multiple JSON fields.
The new mode aims to separate out cargo diagnostics into its own loop so
that all Zed diagnostics features are supported still.
For that, an extra mode was introduced:
```jsonc
"rust": {
// When enabled, Zed runs `cargo check --message-format=json`-based commands and
// collect cargo diagnostics instead of rust-analyzer.
"fetch_cargo_diagnostics": false,
// A command override for fetching the cargo diagnostics.
// First argument is the command, followed by the arguments.
"diagnostics_fetch_command": [
"cargo",
"check",
"--quiet",
"--workspace",
"--message-format=json",
"--all-targets",
"--keep-going"
],
// Extra environment variables to pass to the diagnostics fetch command.
"env": {}
}
```
which calls to cargo, parses its output and mixes in with the existing
diagnostics:
https://github.com/user-attachments/assets/e986f955-b452-4995-8aac-3049683dd22c
Release Notes:
- Added a way to get diagnostics from cargo and rust-analyzer without
mutually locking each other
- Added `ctrl-r` binding to refresh diagnostics in the project
diagnostics editor context
Kirill Bulatov created
5e4be01
zed: Fix application menu capitalization (#29722)
This PR is a quick follow-up to #29717 to ensure that the action within the app menu has the same capitalization as in the context menu. Release Notes: - N/A
Finn Evers created
f055dca
editor: Fix context menu capitalization (#29717)
Fixes context menu capitalization for consistency. Release Notes: - N/A
Aaron Feickert created
5872276
Re-enable `open` tool (#29707)
Release Notes: - Added `open` tool for opening files or URLs.
Richard Feldman created
1bf9e15
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
f046d70
collab: Look up Stripe prices with lookup keys (#29715)
This PR makes it so we look up Stripe prices via lookup keys instead of passing in the price IDs as environment variables. Release Notes: - N/A
Marshall Bowers created
afeb3d4
Make eval more resilient to bad input from LLM (#29703)
I saw a slice panic (for begin > end) in a debug build of the eval. This should just be a failed assertion, not a panic that takes out the whole eval run! Release Notes: - N/A
Richard Feldman created
92dd6b6
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
38ede4b
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
fc920bf
Improve behavior around word-based brackets in bash (#29700)
Closes #28414
Makes it so that `do`, `then`, `done`, `else`, etc are treated as
brackets in bash. They are not auto-closed *yet* as that requires
additional work to function properly, however they can now be toggled
between using `%` in vim. Additionally, newlines are inserted like they
are with regular brackets (`{}()[]""''`) when hitting enter between
them.
While `if <-> fi` `while/for <-> done` and `case <-> esac` are the
*logical* matching pairs, I've opted to instead match between `then <->
else/elif/fi` `do <-> done` and `in <-> esac` as these are the pairs
that delimit the sub-scope, and are more similar to the `{}` style
bracket pairs than `if <-> }` in a c-like syntax. This does cause some
wierd behavior with `else` in `if` expressions as it matches both with
the previous `then` as well as the following `fi`, so in this case
```bash
if true; then
foo
else
bar
f|i
```
after hitting `%` twice times (where cursor is `|`), the cursor will end
up on the `then` instead of back on the `fi` as hitting `%` on the else
will *always* navigate up to the `then`
Release Notes:
- vim: Improved behavior around word-based delimiters in bash (`do <->
done`, `then <-> fi`, etc) so they can be toggled between using `%`
Ben Kunkle created
04c68dc
Make the default repetitions be 8, and concurrency 4 (#29576)
This is based on having observed that there is a lot of variation between runs on `n=1` and `n=3`. * With `n=8` two runs on the same branch give answers that seem close enough to be reasonably consistent. * With higher concurrency, trying to run this many repetitions seems to lead language servers to time out a lot, causing evals to fail. Release Notes: - N/A
Richard Feldman created
399eced
collab: Return current usage by model from `GET /billing/usage` (#29693)
This PR updates the `GET /billing/usage` endpoint to return the number of requests made to each model and mode. Release Notes: - N/A
Marshall Bowers created
50f705e
Use outline (#29687)
## Before  ## After  Release Notes: - Context picker and `@`-mentions now work with very large files.
Richard Feldman created
8173534
zed: Reinstate default `file_scan_exclusions` in Zed repo project settings (#29690)
Closes #ISSUE Re-adds default `file_scan_exclusions` to [project settings](https://github.com/zed-industries/zed/blob/84e4891d544f14e7e22348b89ecaf261b44ca611/.zed/settings.json) that were overridden in #29106 Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
8c03934
welcome: Theme preview tile (#29689)
 - Adds the ThemePreviewTile component, used for upcoming onboarding UI - Adds the CornerSolver utility for resolving correct nested corner radii Release Notes: - N/A
Nate Butler created
84e4891
file_finder: Add `skip_focus_for_active_in_search` setting (#27624)
Closes #27073 Currently, when searching for a file with Ctrl+P, and the first file found is the active one, file_finder skips focus to the second file automatically. This PR adds a setting to disable this and make the first file always the focused one. Default setting is still skipping the active file. Release Notes: - Added the `skip_focus_for_active_in_search` setting for the file finder, which allows turning off the default behavior of skipping focus on the active file while searching in the file finder. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Patrick and Smit Barmase created
d03d8cc
python: Fix identification of runnable tests within decorated test classes (#29688)
Closes #29486 Release Notes: - python: Fixed identification of runnable test functions within decorated pytest classes
Ben Kunkle created
4d934f2
Bump Zed to v0.186 (#29680)
Release Notes: -N/A
Joseph T. Lyons created
e697cf9
editor: Fix edit range for linked edits on do completion (#29650)
Closes #29544 Fixes an issue where accepting an HTML completion would correctly edit the start tag but incorrectly update the end tag due to incorrect linked edit ranges. I want to handle multi cursor case (as it barely works now), but seems like this should go first. As, it might need whole `do_completions` overhaul. Todo: - [x] Tests for completion aceept on linked edits Before: https://github.com/user-attachments/assets/917f8d2a-4a0f-46e8-a004-675fde55fe3d After: https://github.com/user-attachments/assets/84b760b6-a5b9-45c4-85d8-b5dccf97775f Release Notes: - Fixes an issue where accepting an HTML completion would correctly edit the start tag but incorrectly update the end tag.
Smit Barmase 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
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