ddfeb20
editor: Show tooltips on breakpoints (#29523)
Click to expand commit body
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
ddfeb20
editor: Show tooltips on breakpoints (#29523)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
9bd0828
agent tools: Make `read_file.end_line` inclusive (#29524)
One motivation is that the outlines returned by `read_file` for large files list line numbers assuming an inclusive `end_line`. As a result, when the agent uses these outlines for `read_line` calls, it would otherwise miss the last line. Release Notes: - N/A
Oleksiy Syvokon created
4dff47a
Add searchable global tab switcher (#28047)
resolves #24655 resolves #23945 I haven't yet added a default binding for the new command. #27797 added `:ls` and `:buffers` which in my opinion should use the global searchable version given that that matches the vim semantics of those commands better than just showing the tabs in the local pane. There's also a question of what to do when you select a tab from another pane, should the focus jump to that pane or should that tab move to the currently focused pane? For now I've implemented the former. Release Notes: - Added `tab_switcher::ToggleAll` to search open tabs from all panes and focus the selected one. --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Julia Ryan and Conrad Irwin created
52eef3c
editor: Fix inconsistent relative indent when using tab with multi cursors (#29519)
Do not insert hard/soft tabs for cursors at the suggested indent level if any other cursor lies before the suggested indent level. This PR brings us one step closer to fixing https://github.com/zed-industries/zed/issues/26157. Before: https://github.com/user-attachments/assets/8fd5cde4-99f4-4363-9292-5da8dadab658 After: https://github.com/user-attachments/assets/17c9f8ca-5842-452b-8665-7c7138d50162 Release Notes: - Fixed an issue where using tab with multiple cursors would result in inconsistent relative indentation across lines.
Smit Barmase created
f060918
zed: Remove unnecessary clones (#29513)
`App::http_client` and `Client::http_client` both return an owned `Arc` which it clones internally. This means we can remove unnecessary clones when calling these methods. Release Notes: - N/A
tidely created
609c528
Refactor markdown formatting utilities to avoid building intermediate strings (#29511)
These were nearly always used when using `format!` / `write!` etc, so it makes sense to not have an intermediate `String`. Release Notes: - N/A
Michael Sloan created
6db974d
docs: TOML LSP (Taplo) requires a manual restart to apply changes (#29504)
Add note about manual restart Remove taplo LSP settings example (broken) Release Notes: - N/A
Peter Tripp created
60ec55b
Use `u64` instead of `usize` in `ElementId` (#29493)
Truncation to a 32 bit `usize` could cause two distinct IDs to be considered the same element. Release Notes: - N/A
Michael Sloan created
bb7a5b1
[WIP] markdown: Add a test to reproduce the parser's panic (#29479)
Backtrace of the panic in the Agent pane:
```
Thread "<unnamed>" panicked with "called `Option::unwrap()` on a `None` value" at crates/markdown/src/parser.rs:264:55
https://github.com/zed-industries/zed/blob/3fdbc3090d2cc5c2e24014009cccbe5e7c55d217/src/crates/markdown/src/parser.rs#L264 (may not be uploaded, line may be incorrect if files modified)
0: zed::reliability::init_panic_hook::{{closure}}
at /home/silver/develop/zed/crates/zed/src/reliability.rs:56:29
1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1990:9
std::panicking::rust_panic_with_hook
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:839:13
2: std::panicking::begin_panic_handler::{{closure}}
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:697:13
3: std::sys::backtrace::__rust_end_short_backtrace
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/backtrace.rs:168:18
4: rust_begin_unwind
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:695:5
5: core::panicking::panic_fmt
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:75:14
6: core::panicking::panic
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:145:5
7: core::option::unwrap_failed
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/option.rs:2015:5
8: core::option::Option<T>::unwrap
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:978:21
markdown::parser::parse_markdown
at /home/silver/develop/zed/crates/markdown/src/parser.rs:264:37
9: markdown::Markdown::parse::{{closure}}
at /home/silver/develop/zed/crates/markdown/src/markdown.rs:282:51
10: <core::pin::Pin<P> as core::future::future::Future>::poll
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:124:9
11: async_task::raw::RawTask<F,T,S,M>::run
at /home/silver/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-task-4.7.1/src/raw.rs:557:17
12: async_task::runnable::Runnable<M>::run
at /home/silver/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-task-4.7.1/src/runnable.rs:781:18
13: gpui::platform::linux::dispatcher::LinuxDispatcher::new::{{closure}}::{{closure}}
at /home/silver/develop/zed/crates/gpui/src/platform/linux/dispatcher.rs:44:25
14: std::sys::backtrace::__rust_begin_short_backtrace
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:152:18
15: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:559:17
16: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
17: std::panicking::try::do_call
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:587:40
18: __rust_try
19: std::panicking::try
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:550:19
std::panic::catch_unwind
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:358:14
std::thread::Builder::spawn_unchecked_::{{closure}}
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:557:30
20: core::ops::function::FnOnce::call_once{{vtable.shim}}
at /home/silver/.rustup/toolchains/1.86-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
21: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1976:9
<alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/alloc/src/boxed.rs:1976:9
std::sys::pal::unix::thread::Thread::new::thread_start
at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/sys/pal/unix/thread.rs:106:17
22: start_thread
at ./nptl/pthread_create.c:447:8
23: clone3
at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78:0
Segmentation fault
```
Release Notes:
- N/A *or* Added/Fixed/Improved ...
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Oleksiy Syvokon and Conrad Irwin created
1e47dfc
debugger: Improve focus states (#29469)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Piotr Osiewicz created
3fdbc30
Fix error when deserializing Gemini streams (#29470)
Sometimes Gemini would report `Content` without a `parts` field. Release Notes: - Fixed a bug that would sometimes cause Gemini models to fail streaming their response.
Antonio Scandurra created
f2b4004
editor: Improve code completions by prioritizing prefix matching (#29456)
- 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.
Smit Barmase created
ec5821f
docs: Fix relative navigation links (#29468)
Release Notes: - N/A
Oleksiy Syvokon created
e22cae6
chore: Update .gitignore (#29466)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
21bafd7
docs: Fix relative navigation links (#29465)
Release Notes: - N/A
Oleksiy Syvokon created
ee74edb
docs: Add ‹› navigation buttons (#29461)
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
Oleksiy Syvokon created
d832b8e
Sort `Cargo.toml` (#29459)
This PR sorts the workspace `Cargo.toml`. Release Notes: - N/A
Marshall Bowers created
539f4f1
collab: Update billing preference endpoints with new preferences (#29458)
This PR updates the billing preference endpoints with the new overage-related billing preferences. Release Notes: - N/A
Marshall Bowers created
9a325a2
collab: Set overage preferences in LLM token claims (#29457)
This PR sets the user's overage preferences in the LLM token claims. Release Notes: - N/A
Marshall Bowers created
ce31312
collab: Return feature flags with authenticated user (#29455)
This PR makes it so the `GET /user` endpoint returns the user's feature flags with the authenticated user. Release Notes: - N/A
Marshall Bowers created
d468909
debugger: Fix new session modal not having worktree scenarios (#29453)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
67615b9
debugger/tasks: Remove TaskType enum (#29208)
Closes #ISSUE Release Notes: - N/A --------- Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Conrad <conrad@zed.dev>
Piotr Osiewicz , Cole Miller , Anthony Eid , Conrad Irwin , Anthony , and Conrad created
053fafa
Fix markdown escaping
Closes #29255 Release Notes: - Improved handling of markdown escape sequences
Conrad Irwin created
d230246
askpass: Shell escape Zed path in askpass script (#29447)
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)
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)
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)
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)
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)
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)
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
Cole Miller created
8cc2ade
collab: Add `subscription_usage_meters` table (#29433)
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)
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)
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)
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
Danilo Leal created
5f9c91d
danger: Update PR prefix pattern (#29432)
This PR updates the Danger PR prefix pattern to allow underscores (`_`) and spaces (` `) in the prefix. Release Notes: - N/A
Marshall Bowers created
6692bd9
Maybe fix panic (#29352)
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)
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.
Smit Barmase created
c157b1c
rules: How to run clippy (#29247)
Tell model how to run clippy in `.rules` Release Notes: - N/A
Agus Zubiaga created
136e83e
zlog: Fix incorrect assumption with filters (#29428)
- **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
Ben Kunkle created
b28756a
eval: Use workspace dependencies (#29430)
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)
- [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)
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
Marshall Bowers created
4f9cada
Bump Danger's packages (#29422)
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)
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
Marshall Bowers created
9bee765
ci: Fix typo (#29421)
This PR fixes a small typo in a comment added in #29420. Release Notes: - N/A
Marshall Bowers created
8c553ee
ci: Add no-op job for "Run Agent Eval" workflow (#29420)
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)
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
Oleksiy Syvokon created
f106dfc
Avoid unnecessary DB writes (#29417)
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)
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)
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