f2b4004
editor: Improve code completions by prioritizing prefix matching (#29456)
Click to expand commit body
- Use common prefix length-based matching as primary criteria.
- Test added for multiple cases.
Before:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/8c653225-cac2-41bd-95f0-0fb8724284c9"
/>
After:
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/a3d59399-cff2-435d-9b56-69a530f35da4"
/>
Release Notes:
- Fixed issues with code completions where they wouldn't show
completions with matched prefix at top.
While visually unintrusive, these navigation links enable proper
navigation in readers and extensions like Vimium that rely on
rel=next/prev
Release Notes:
- N/A
d230246
askpass: Shell escape Zed path in askpass script (#29447)
Click to expand commit body
Closes #29439
Add shell escaping as well as additional sanity check for Zed path when
used in askpass. This caused issues on preview and nightly as the
standard paths for those releases contain spaces which were not escaped
appropriately leading to erroneous "Permission denied" errors from SSH
when the askpass script failed
Release Notes:
- Fixed a missing shell-escape in askpass resulting in erroneous
"Permission denied" errors when trying to connect to a remote server
over ssh (effecting preview release v0.184.1 and nightly only)
Ben Kunkle
created
3961d87
editor: Improve fuzzy match bucket logic for code completions (#29442)
Click to expand commit body
Add new test and improve fuzzy match bucket logic which results into far
better balance between LSP and fuzzy search.
Before:
<img width="500" alt="before"
src="https://github.com/user-attachments/assets/3e8900a6-c0ff-4f37-b88e-b0e3783b7e9a"
/>
After:
<img width="500" alt="after"
src="https://github.com/user-attachments/assets/738c074c-d446-4697-aac6-9814362e88db"
/>
Release Notes:
- N/A
Smit Barmase
created
8b910e1
collab: Add LLM request overage columns to `billing_preferences` (#29446)
Click to expand commit body
This PR adds two new columns to the `billing_preferences` table to allow
users to opt in to overages on LLM requests.
Release Notes:
- N/A
Marshall Bowers
created
12c645e
Fix inclusion of message when counting tokens from message editor (#29443)
Click to expand commit body
Accidentally omitted this in #29233
Release Notes:
- N/A
Michael Sloan
created
cfb7a30
Fix agent rules files for remote project by loading via buffer (#29440)
Click to expand commit body
When using the agent with a project shared by a collaborator, rules file
loading didn't work as it was trying to read from the client's
filesystem
Release Notes:
- Fixed rules file loading when using the agent with a project shared by
a collaborator.
Michael Sloan
created
7623fce
Start improving support for keyboard-driven debugging (#29380)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
---------
Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Cole Miller
,
Piotr Osiewicz
, and
Anthony Eid
created
7f5c874
git: Use the CLI for loading commit SHAs and details (#29351)
Click to expand commit body
Since #28065 merged we've seen deadlocks inside iconv when opening Zed
in a repository containing many submodules. These calls to iconv happen
inside libgit2, in our implementations of the methods `head_sha`,
`merge_head_shas`, and `show` on `RealGitRepository`. This PR moves
those methods to use the git CLI instead, sidestepping the issue. For
the sake of efficiency, a new `revparse_batch` method is added that uses
`git cat-file` to resolve several ref names in one invocation. I
originally intended to make `show` operate in batch mode as well (or
instead), but I can't see a good way to do that with the git CLI; `git
show` always bails on the first ref that it can't resolve, and
`for-each-ref` doesn't support symbolic refs like `HEAD`.
Separately, I removed the calls to `show` in `MergeDetails::load`, going
back to only loading the SHAs of the various merge heads. Loading full
commit details was intended to support the inlays feature that ended up
being cut from #28065, and we can add it back in when we need it.
Release Notes:
- N/A
This PR adds a new `subscription_usage_meters` table to the LLM
database.
We'll use this to track usage of individual models over the number of
requests built-in to the plan.
Release Notes:
- N/A
Marshall Bowers
created
c3177e6
debugger: Fix deadlock in on_app_quit with debugger running (#29372)
Click to expand commit body
This fixes a deadlock that would occur when `DapStore` had its on quit
handler called. The deadlock was caused by `DapStore` spawning on the
main thread while `App::shutdown` blocks the main thread.
We added a debug_panic in GPUI that panics if a foreground task is
spawned while the App context is shutting down. This will help tests
catch hangs in `cx.on_app_quit` calls.
Release Notes:
- N/A
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Anthony Eid
and
Conrad Irwin
created
c3570fb
agent: Render path search results with `ToolCard` (#28894)
Click to expand commit body
Implementing the `ToolCard` for the path_search tool. It also adds the
"jump to file" functionality if you expand the results.
Release Notes:
- N/A
---------
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal
,
Richard Feldman
, and
Agus Zubiaga
created
3aa3130
agent: Make markdown code blocks uncollapsed by default (#29424)
Click to expand commit body
Seeing the markdown code stream in is actually more helpful than hiding
parts of it; parts that you may be interested in.
Release Notes:
- N/A
Since around the time we shipped block diagnostics, we've been seeing an
out of range panic in the editor.
Although the code is heavily inlined, so the stacktrace is missing, this
seems like a likely place that indexing may have gone wrong.
Release Notes:
- Fixed a rare panic in the editor
Conrad Irwin
created
cc57bc7
editor: Add setting for snippet sorting behavior for code completion (#29429)
Click to expand commit body
Added `snippet_sort_order`, which determines how snippets are sorted
relative to other completion items. It can have the values `top`,
`bottom`, or `inline`, with `inline` being the default.
This mimics VS Code’s setting:
https://code.visualstudio.com/docs/editing/intellisense#_snippets-in-suggestions
Release Notes:
- Added support for `snippet_sort_order` to control snippet sorting
behavior in code completion menus.
Tell model how to run clippy in `.rules`
Release Notes:
- N/A
Agus Zubiaga
created
136e83e
zlog: Fix incorrect assumption with filters (#29428)
Click to expand commit body
- **do not assume logs over LEVEL_ENABLED_MAX_STATIC (the static global
log level) are enabled**
- **make it so filters that are just module names get overridden by
submodule path filters**
Closes #ISSUE
Release Notes:
- N/A
This PR updates the `eval` crate to use workspace dependencies.
Also did a bit of cleanup of the `Cargo.toml`.
Release Notes:
- N/A
Marshall Bowers
created
65401d6
debugger: Make debug panes zoomable (#29365)
Click to expand commit body
- [x] Buttons
- [x] Make it keyboard-driven
Co-authored-by: Anthony <anthony@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Cole Miller
and
Anthony Eid
created
a5405fc
eval: Add support for reading from a `.env` file (#29426)
Click to expand commit body
This PR adds support for the eval to read environment variables from a
`.env` file located in the `crates/eval` directory.
For instance, you can use it to set your Anthropic API key:
```
ANTHROPIC_API_KEY=<secret>
```
Release Notes:
- N/A
https://github.com/zed-industries/zed/security/dependabot reports a
number of vulnerabilities, attempt to fix them with the dependency bump.
Release Notes:
- N/A
Kirill Bulatov
created
7443f89
xtask: Ignore `workspace-hack` when checking for non-workspace dependencies (#29419)
Click to expand commit body
This PR makes it so `workspace-hack` is ignored by `cargo xtask
package-conformity` when looking for non-workspace dependencies.
Also added `zed_extension_api` to the exclude list.
Release Notes:
- N/A
This PR adds a no-op job for the "Run Agent Eval" workflow.
This aims to avoid marking the check as failed on a PR that does not
include the `run-eval` label.
Release Notes:
- N/A
Marshall Bowers
created
3389327
eval: Add HTML overview for evaluation runs (#29413)
Click to expand commit body
This update generates a single self-contained .html file that shows an
overview of evaluation threads in the browser. It's useful for:
- Quickly reviewing results
- Sharing evaluation runs
- Debugging
- Comparing models (TBD)
Features:
- Export thread JSON from the UI
- Keyboard navigation (j/k or Ctrl + ←/→)
- Toggle between compact and full views
Generating the overview:
- `cargo run -p eval` will write this file in the run dir's root.
- Or you can call `cargo run -p eval --bin explorer` to generate it
without running evals.
Screenshot:

Release Notes:
- N/A
Part of https://github.com/zed-industries/zed/issues/16472
* Adds debug logging to everywhere near INSERT/UPDATEs in the DB
So something like
`env RUST_LOG=debug,wasmtime_cranelift=off,cranelift_codegen=off,vte=off
cargo run` could be used to view these (current zlog seems to process
the exclusions odd, so not sure this is the optimal RUST_LOG line) can
be used to debug any further writes.
* Removes excessive window stack serialization
Previously, it serialized unconditionally every 100ms.
Now, only if the stack had changed, which is now check every 500ms.
* Removes excessive terminal serialization
Previously, it serialized its `cwd` on every `ItemEvent::UpdateTab`
which was caused by e.g. any character output.
Now, only if the `cwd` has changed at the next event processing time.
Release Notes:
- Fixed more excessive DB writes
Kirill Bulatov
created
37fa437
agent: Allow to explictly disable tools when using `enable_all_context_servers` (#29414)
Click to expand commit body
Previously, all MCP tools would be completed regardless if they were
disabled/enabled for the profile. This meant that the "Write" profile
was always using all MCP tools, even if you disabled them in the
settings.
Now, when `enable_all_context_servers` is set to `true`, we will enable
all tools from all MCP servers by default but disable the ones that are
explicitly disabled for the profile.
Also fixes an issue where the tools would not show up as enabled when
using `enable_all_context_servers: true`
Release Notes:
- agent: Fix an issue where MCP tools could not be enabled/disabled
Bennet Bo Fenner
created
9be7bf7
language_models: Remove `language-models` feature flag (#29416)
Click to expand commit body
This PR removes the `language-models` feature flag.
This feature is already generally available, so we no longer need the
feature flag.
Release Notes:
- N/A
Marshall Bowers
created
357e38b
workspace: Add right border to pinned tabs only on scroll (#29405)
Click to expand commit body
Before (scrolled state, bug):
<img width="392" alt="before - with scroll"
src="https://github.com/user-attachments/assets/5f62f050-41e0-4740-8f90-9822348eaa4b"
/>
After (scrolled state, bug fixed):
<img width="344" alt="after - with scroll"
src="https://github.com/user-attachments/assets/33003358-0009-4748-8a6e-642158114b82"
/>
Before (without scrolled state, as it is):
<img width="541" alt="before - without scroll"
src="https://github.com/user-attachments/assets/42487d61-7f7c-49a7-a087-da7faf5a0a89"
/>
After (without scrolled state, as it is):
<img width="462" alt="after - without scroll"
src="https://github.com/user-attachments/assets/738a4d24-3a89-466b-8976-2bf47cfeb0f5"
/>
cc @danilo-leal
Release Notes:
- N/A
Smit Barmase
created
ae37f3c
agent: Improve MCP tools compatibility with Gemini models (#29411)
49003d8
When hovering paths in terminal, search worktree entries for relative ones only (#29406)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/29274
Release Notes:
- N/A
Kirill Bulatov
created
9386283
assistant: Fix issue when using inline assistant with Gemini models (#29407)
Click to expand commit body
Closes #29020
Release Notes:
- assistant: Fix issue when using inline assistant with Gemini models
Bennet Bo Fenner
created
c39adc5
Select collab channel filter query upon focusing (#29383)
Click to expand commit body
In the process of implementing this I learned that you can also hit
escape to clear the query which is a decent workaround, but I think this
behavior more closely matches expectations. For example when you run the
"focus search" actions, those select the query.
Release Notes:
- N/A
Julia Ryan
created
ebb39d9
Add "upstream" as a hardcoded remote name (#29382)
Click to expand commit body
The ideal solution here would be the ability to pick a default remote
the first time you click on a PR or commit link from a blame, and then
store that state in the repo or project and allow you to change it
somehow.
Because that's complicated, and because the vast majority of users
follow the convention of using `upstream` and `origin`, this change just
adds `upstream` as a possible remote that takes precedence for
generating links. I've sometimes seen `origin` and `fork` used for the
same purposes, which will still work fine with this change.
Here are some sources recommending the `upstream`/`origin` convention:
-
https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow
-
https://github.blog/open-source/git/git-2-5-including-multiple-worktrees-and-triangular-workflows/
- https://cli.github.com/manual/gh_repo_fork
The fact that the github cli renames them to those when you `gh repo
fork` is pretty strong evidence that it's worth supporting them even if
users can set arbitrary remote names or could actually want to open a PR
link on their fork.
Resolves #13511
Release Notes:
- Git blame links now prefer the `upstream` remote over `origin` if it
exists.
Julia Ryan
created
187f851
feature_flags: Add `FeatureFlag` suffix to feature flag types (#29392)
Click to expand commit body
This PR adds the `FeatureFlag` suffix to the feature flag types that
were missing them.
This makes the names easier to search in the codebase.
Release Notes:
- N/A
Marshall Bowers
created
a77db45
feature_flags: Remove `remoting` feature flag (#29390)
Click to expand commit body
This PR removes the `remoting` feature flag.
The feature is shipped, and we aren't referencing the flag anywhere
anymore.
Release Notes:
- N/A
Marshall Bowers
created
6bb6be8
language_models: Use `POST /completions` endpoint for Zed provider (#29389)
Click to expand commit body
This PR updates the Zed provider to use the `POST /completions`
endpoint.
There is no functional difference from `POST /completion`, but the
pluralized version reads better.
Release Notes:
- N/A
Marshall Bowers
created
7d9a55d
Bring back reload of agent context before sending message (#29385)
Click to expand commit body
Realized after merging #29233 that this behavior is desired
Release Notes:
- N/A
Michael Sloan
created
57d8397
Remove unnecessary fields from the tool schemas (#29381)
Click to expand commit body
This PR removes two fields from JSON schemas (`$schema` and `title`),
which are not expected by any model provider, but were spuriously
included by our JSON schema library, `schemars`.
These added noise to requests and cost wasted input tokens.
### Old
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "FetchToolInput",
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"description": "The URL to fetch.",
"type": "string"
}
}
}
```
### New:
```json
{
"properties": {
"url": {
"description": "The URL to fetch.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
```
- N/A