ad9e104
Clippy
Bennet Bo Fenner created
ad9e104
Clippy
Bennet Bo Fenner created
f4ffd8f
Fix deserialization issue with `StreamingEditFileTool`
Bennet Bo Fenner created
502460a
zlog: Fix log file rotation never truncating original file (#50571)
Release Notes: - Fixed an issue where the log file and log file backup would keep grow indefinitely
Lukas Wirth created
6808acc
Fix a few cases where we weren't escaping shell vars correctly (#50562)
Release Notes: - N/A
Conrad Irwin created
880b2e5
Remove Zeta1 logic, allow choosing zeta2 experiment (#50560)
Release Notes: - N/A
Max Brunsfeld created
815c6f5
Add small alloc and lookup optimizations (#49041)
A vector was being instantiated when the callsite only required an iterable. Another part of the code was performing multiple `contains()` lookups on a vector, and now it does it on a hashed set. This change has required some extra modifications across the codebase, but the affected sites are minimal and have been adjusted without major issues. The changes include some `Hash` derived implementations, which were proposed in the original `lsp-types` in [[1]], and maybe could be merged into Zed's fork. I went ahead and used a newtype with a custom `Hash` implementation that simply called on the structure's public members' implementations of `Hash`. The next change includes the removal of a check of the request capabilities after having already checked the same thing in the call to `to_lsp_params_or_response()` right before. The result of the `match` expression should already have returned a `Task::ready()` if the above mentioned function failed in performing the check that was later repeated and now removed. Finally, in the `edits_from_lsp()` method, stable sorting was being performed when only unstable sorting would suffice. The method can only sort with respect to the key data, and not the satellite data, as the latter are the literal strings of the edit. It matters not which one of a sequence of overlapping edits (with same ranges that thus resolve the edits for equivalence) should come before the other. [1]: https://github.com/gluon-lang/lsp-types/pull/295/changes#diff-b1a35a68f14e696205874893c07fd24fdb88882b47c23cc0e0c80a30c7d53759R540 - [ ] Tests or screenshots needed? - [ ] Code Reviewed - [ ] Manual QA Release Notes: - Removed a vector allocation where the callsite only required an iterable. - Improved multiple lookup operations when deserializing LSP edit operations. - Removed a double-check of capabilities after requesting and thus determining LSP capabilities. - Replaced stable sorting with unstable sorting of edits returned by the LSP.
dybucc created
3f6a6cf
Truncate tabs in filenames (#50550)
Closes #19208 Authored-By: @ngauder Release Notes: - Editor: truncate long file names in tab titles --------- Co-authored-by: Nikolas Gauder <nikolas.gauder@tum.de> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Conrad Irwin , Nikolas Gauder , and Zed Zippy created
42ba961
Persist unsent draft prompt across Zed restarts (#49541)
Store the user's unsent message editor text in DbThread so it survives quitting and reloading Zed. The draft flows through Thread → AcpThread → AcpThreadView on load, and back via a debounced observer on the message editor for saves. Currently works for native Zed agents only; external ACP agents will pick this up once general ACP history persistence lands. ## Changes - **`DbThread`** / **`Thread`**: New `draft_prompt: Option<String>` field, included in `to_db()`/`from_db()` - **`AcpThread`**: Bridge field with getter/setter, populated during `register_session()` - **`NativeAgent::save_thread()`**: Copies draft from `AcpThread` → `Thread` before persisting - **`AcpThreadView`**: Restores draft into `MessageEditor` on load; syncs editor text → `AcpThread` via observer; debounced (500ms) Thread notify triggers DB save Co-authored-by: Anthony Eid <anthony@zed.dev> Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Eric Holk , Anthony Eid , and Mikayla Maki created
4392e3a
workspace: Fix scrolling to active tab when pinned tabs are present (#50538)
When pinned tabs are present, activating an unpinned tab passed the absolute tab index to the scroll handle, which only contains unpinned tabs. This caused the scroll-into-view to silently fail. Subtract `pinned_tab_count` from the index so it maps to the correct child in the unpinned tabs scroll container. Release Notes: - Fixed tab bar not reliably scrolling to the active tab when pinned tabs are present.
Sergei Zharinov created
67b375c
Restore accidental change (#50543)
I'm not sure why, but my dev builds on linux don't output to stdout Release Notes: - N/A *or* Added/Fixed/Improved ...
Conrad Irwin created
1d443f6
Add error handling to keep Zed running in the face of transient wgpu errors (#50539)
Release Notes: - linux: Reduce crashes in the face of transient GPU errors
Conrad Irwin created
465e2b5
editor: Avoid autoscroll in SplitSelectionIntoLines (#49399)
Closes #48812 ## Summary `editor::SplitSelectionIntoLines` currently triggers autoscroll and can jump to the end of a long file. This PR makes the action explicitly no-scroll. ## What changed - Disabled autoscroll in the `unfold_ranges` call inside `split_selection_into_lines`. - Switched selection update to `SelectionEffects::no_scroll()`. ## Testing - Added `test_split_selection_into_lines_does_not_scroll`. ### Screenshots: - Before: see issue video - After: <img width="2486" height="1299" alt="image" src="https://github.com/user-attachments/assets/8408a2f1-7dd7-4984-aa89-927d5a588322" /> Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Stop scrolling on `editor::SplitSelectionIntoLines` called in the long files
it-education-md created
ed35534
ep: Include more context (#50533)
Closes #ISSUE Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Max <max@zed.dev>
Ben Kunkle and Max created
7ad5246
Remove Supermaven-related code from Zed (#50537)
Follow-up of https://github.com/zed-industries/zed/pull/49317 See also https://supermaven.com/blog/sunsetting-supermaven - N/A
Kirill Bulatov created
1f11592
editor: Remove folded buffer ID on all excerpts removed (#50525)
Fix a bug in the editor's handling of the `multi_buffer::Event::ExcerptsRemoved` event, where the display map's `folded_buffers` set was not updated according to the list of removed buffer ids. Since the `ProjectSearchView` now relies on the `Editor.has_any_buffer_folded` method in order to decide the state of the expand/collapse all excerpts button this could lead to a bug where, after an initial project search, all excerpts would be collapsed, and performing a new search would leave the button in a wrong state, as all excerpts from the new search result would be expanded, but the button would still consider that there were folded excerpts for the buffers. Closes #50521 Release Notes: - Fixed bug in project search where collapsing a single buffer then performing a new search in the same view, would break the expand/collapse all button behavior
Dino created
f0620c6
editor: Preserve compound emojis (#50082)
Closes #45466 Emojis like 🧑✈️ are grapheme clusters formed using zero-width joiners and variation selectors. Iterating over the string by individual chars in `highlight_invisibles` breaks these clusters, even though they represent a single visible character. Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Zed now supports compound emojis
Marco Mihai Condrache created
0d79f44
Update legal docs to reflect new terms of service (#50530)
Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Update legal docs to reflect new Terms, Privacy Policy, Subprocessors, and Acceptable Use Policies (fka Third Party Terms)
Lucas White created
4be8544
wGPU: Select more specifically (#50528)
This uses the compositor hints if available to pick the best GPU. If none is available, it tries each GPU in turn, and the first that actually works is chosen Release Notes: - Linux: Select a more appropriate GPU --------- Co-authored-by: John Tur <john-tur@outlook.com>
Conrad Irwin and John Tur created
b47b353
Docs/privacy documentation refresh (#50522)
Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Updated Privacy and Telemetry docs for improved clarity --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Lucas White , Claude Sonnet 4.6 , and Zed Zippy created
2879349
agent: Fix review experience for `StreamingEditFileTool` (#50518)
Release Notes: - N/A
Bennet Bo Fenner created
56ae095
agent: Use correct subagent thread entity to get the entries list (#50515)
Was grabbing off the Thread not the AcpThead :facepalm: Release Notes: - N/A
Ben Brandt created
41a0c63
agent: Add linked action log support for subagent threads (#50500)
Subagents now forward buffer reads/writes/edits to a parent action log, allowing the parent's review experience to track all file changes made by subagents alongside its own. Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt and Bennet Bo Fenner created
db8f649
remote_server: Don't panic when forwarding stderr (#50505)
Closes ZED-5B7 Release Notes: - N/A
Cole Miller created
a6106d2
agent: Add back in discouragement of useless subagents (#50512)
Release Notes: - N/A
Ben Brandt created
c6319d3
agent: Propagate model settings to running subagents (#50510)
When the model, summarization model, thinking settings, speed, or profile are updated on a thread, apply the same settings to any currently running subagents. Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt and Bennet Bo Fenner created
f9895c5
devcontainer: Fix git output (#49230)
Closes #48434 In Dev Containers, failed git operations were surfaced with a generic failure message, while the useful git output (stderr/stdout) was not reliably available to users. This happened because in devcontainers the git operation errors go through an RPC layer and then got wrapped with `anyhow::Context` (e.g. “sending pull request”); the toast displayed only that outer context via `to_string()`, masking the underlying git stderr message. This change ensures the full git operation output is preserved and surfaced via Zed’s “See logs” flow in Dev Containers, matching the information you get when running the same git command in a terminal. ### What you should expect in the UI - You will see a generic toast like “git pull failed” / “git push failed”. - When clicking on the toast’s “See logs”, the log tab now contains the full git error output (e.g. non-fast-forward hints, merge conflict details, “local changes would be overwritten”, etc.), which previously could be missing/too generic. --- ## Manual testing Run inside a Dev Container and ensure git auth works (SSH keys/agent or HTTPS credentials). 1. **Dirty-tree pull failure** - Make remote ahead by 1 commit (push from another clone). - Locally modify the same file without committing. - In Zed: **Pull** - **Expect:** toast “git pull failed” + **See logs** shows “local changes would be overwritten…” (or equivalent). 2. **Non-fast-forward push failure** - Ensure remote ahead. - Locally create 1 commit. - In Zed: **Push** - **Expect:** toast “git push failed” + **See logs** shows “rejected (non-fast-forward)” + hint to pull first. 3. **Merge-conflict pull failure** - Create conflicting commits on the same lines (one local commit, one remote commit). - In Zed: **Pull** - **Expect:** toast “git pull failed” + **See logs** shows conflict output (“CONFLICT…”, “Automatic merge failed…”). Release Notes: - Fixed devcontainer git failure toasts so they show the actual git error --------- Co-authored-by: KyleBarton <kjb@initialcapacity.io>
Oliver Azevedo Barnes and KyleBarton created
2b774e5
extension_host: Allow extensions to define semantic highlighting rules (#49282)
for their given language via a `semantic_token_rules.json` file Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
04fc31f
Fix another case where we could apply highlights with wrong indices (#50367)
Closes #ISSUE Release Notes: - N/A
Conrad Irwin created
2d3c05e
Add `libva-devel` as required deps for `dnf` section (#50476)
If I follow the steps outlined in https://zed.dev/docs/development/linux then `cargo run` on my Fedora workstation fails because the install script is missing `libva-devel` as a required dependency under `dnf` / `yum` sections. Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Kunall Banerjee created
9ca695d
Remove `dbg!` from tests (#50506)
Removes a bunch of `dbg!`'s from strings in test code. It's annoying cause these show up in project search, when you are removing `dbg!(...)`'s after debugging something Release Notes: - N/A
Bennet Bo Fenner created
bb6c52b
agent: Log thread title generation errors (#50504)
Ben Kunkle created
3630ac9
Fix renaming with `.` in JSX tags (#50373)
Fixes #50245 ### Summary : This PR fixes linked tag renaming when typing . in tag names like <Table.Headers>...</Table.Headers>. Previously, linked editing treated . as punctuation (unless a language explicitly configured it as a linked-edit character), so renaming could stop syncing at the dot and produce mismatched closing tags. ### What changed Updated linked-edit input handling to preserve linked edits when the typed input is exactly ".", even if the active language does not explicitly include dot in linked_edit_characters. Added a regression test covering dot typing in linked edits without language override. Kept existing punctuation behavior (e.g. >) unchanged. ### Files changed [editor.rs] [editor_tests.rs] ### Why this approach Minimal, targeted fix in shared linked-edit path. Works for .svelte and similar markup contexts where dot-separated component names are valid in practice. Avoids requiring every language/extension to add dot config individually. ### Validation Manual repro confirmed: opening tag rename with dot now keeps closing tag synced. Added test: test_linked_edits_on_typing_dot_without_language_override. Existing related test remains relevant: test_linked_edits_on_typing_punctuation.
Om Chillure created
0214d6e
Adjust scroll top by number of sticky headers (#50359)
In cases where sticky headers are enabled, count the number of sticky headers that would be present when performing `editor:scroll cursor top`. Take the maximum of that number and `verical_scroll_margin` so that we don't inadvertently bury the cursor behind the sticky headers. https://github.com/user-attachments/assets/6d49fe3a-2017-4c76-bd92-c4ec9794f898 Closes #48864 Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Fixed scroll top behavior when there are more sticky headers than vertical_scroll_margin
KyleBarton created
0cf551f
agent_ui: Use main message editor for editing queued messages (#50490)
This PR changes the behavior of editing queued messages. Previously, you could type directly in the editor that was used to displayed a queued message. However, that felt a bit anxiety-inducing because there was a chance the message would get sent before you could've wrapped up your edits. And even if we blocked the message to get sent while focused on the editor, it could still be a bit unpredictable. So, with this PR, if you type on a queued message, the content of that message goes immediately back to the main message editor. Effectively, you're taking that message off the queue so you can edit it, and then if you hit enter (while there's a generation ongoing), that content goes back into the queue. I believe this allows for a calmer editing experience when wanting to touch up or increment a queued message. Here's a video of the flow: https://github.com/user-attachments/assets/ec60ccad-2b04-4b7c-a8f5-95baa443d9f2 In the video, I'm showcasing a few things: - in case the main message editor already had content, the content from the edited queued message is appended to it. That avoids the user surprisingly losing information. - the fact that mention creases still work well and are not converted back into plain text Release Notes: - Agent: Made editing queued messages better by moving the contnet back to the main message editor, avoiding the chance of it getting sent mid-editing.
Danilo Leal created
805e32c
agent_ui: Improve loading state when there's only a terminal call (#50501)
In the thread view, when the last block is an ongoing terminal tool call, we're not waiting for the LLM to generate content, but rather, we're waiting for the command to run so its output can be sent to the model. With that in mind, it doesn't make sense for the generating loading spinner to be visible. So, this PR, removes it. But I also took the opportunity to refine the terminal card header a bit, as well as make the "command running" spinner, as well as the stop button, visible for external agents, too. https://github.com/user-attachments/assets/c7e2865a-af9b-416b-a06a-908dffb916da In the video, you can see that given we only have a running-terminal tool call, there's no generation loading spinner. Release Notes: - Agent: Improved loading state for the thread view when there's only a running terminal command.
Danilo Leal created
7e10264
git: Silence verbose log when loading index/committed text (#50496)
Updates #50487 Release Notes: - N/A
Cole Miller created
12b786d
agent: Remove subagents feature flag (#50493)
Release Notes: - agent: Add new `spawn_agent` tool which allows the Zed Agent to utilize subagents for doing tasks in parallel and better context management. Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt and Bennet Bo Fenner created
e30720a
gpui_web: Implement fetch based HTTP client (#50463)
Can only be used in single threaded environments for now due to js futures being non-send. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
af5e261
agent: Add subagent info to telemetry events (#50492)
- **Add parent_session_id to agent thread feedback submission** - **Add more parent session ids to events** Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt and Bennet Bo Fenner created
065d85d
editor: Do treesitter bracket colorization work on the background (#50068)
This is pure computation work that is disconnected from main thread entity state yet it can still block for a couple milliseconds depending on the file Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
5e9ee9e
agent: More subagent fixes (#50489)
- Skip agent location updates for subagent threads - Hide edits summary for subagent thread - Fix tool permission granularity selection from parent thread Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Ben Brandt and Bennet Bo Fenner created
8f329d1
workspace: Properly flush effects in `send_keystrokes_impl` (#50486)
Should fix the test issue observed in https://github.com/zed-industries/zed/pull/50068 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
a09b6fb
settings_ui: Defer `fetch_files` to avoid reentrant lease of `Project` (#50488)
Closes ZED-5CA Release Notes: - Fixed a crash when opening the settings UI.
Cole Miller created
ad017e0
git: Prevent crashes when looking index text for empty path (#50487)
We were trying to mitigate these by passing `.` instead of ``, but it turns out that git2 also panics internally for that. It also just doesn't make sense to look up the index text (or committed text) for an empty path, because a file should always have a nonempty repo path. Closes ZED-560 Release Notes: - N/A
Cole Miller created
2549db7
markdown_preview: Fix multiple mermaid rendering issues (#50485)
Closes #50172 Closes #50238 Closes #50243 Closes #50196 Updates `mermaid-rs-renderer` with the following fixes: - Fix ampersand in node labels splitting nodes incorrectly ([`374db9e`](https://github.com/zed-industries/mermaid-rs-renderer/commit/374db9e)) - Add gantt compact display mode via yaml frontmatter ([`d1bf282`](https://github.com/zed-industries/mermaid-rs-renderer/commit/d1bf282)) - Fix class diagram stereotype annotations rendered as members ([`6203d71`](https://github.com/zed-industries/mermaid-rs-renderer/commit/6203d71)) - Fix dotted lines being indistinguishable from solid ([`94fb543`](https://github.com/zed-industries/mermaid-rs-renderer/commit/94fb543)) - Fix class diagram arrowheads hidden under node boxes ([`cd79c56`](https://github.com/zed-industries/mermaid-rs-renderer/commit/cd79c56)) - Fix text not rendering in some cases ([`9534cb1`](https://github.com/zed-industries/mermaid-rs-renderer/commit/9534cb1)) Release Notes: - Fixed multiple mermaid diagram rendering issues in markdown preview.
Smit Barmase created
db02d09
git: Fix conflicted paths not getting cleared (#50327)
Before you mark this PR as ready for review, make sure that you have: - [ ] Added a solid test coverage and/or screenshots from doing manual testing - [ ] Done a self-review taking into account security and performance aspects - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Fixed a bug where files would still be marked as having git conflicts after resolving them. --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Cole Miller and Bennet Bo Fenner created
c0008cf
editor: Fix edit prediction popovers painting outside the editor's bounds (#50361)
Deferred draws previously didn't use a content mask, so you could horizontally scroll an EP popover all the way out of the containing pane. This also affects other UI elements that use the deferred draw system; I think in practice it doesn't make much difference because most of those seem to require something in the editor to be hovered, so if you scroll horizontally the element goes away. Release Notes: - Fixed being able to scroll the edit prediction popover out of the containing pane.
Cole Miller created
ef60143
agent: Show full subagent output if no concurrent tool calls (#50478)
Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Bennet Bo Fenner and Ben Brandt created
8cd192e
scheduler: Fix `many` with non-zero seed (#50482)
The iteration range was `(seed..num_iterations)`, which produces an empty range whenever `seed >= num_iterations`. Changed it to `(seed..seed + num_iterations)` so the range always runs the correct number of iterations starting from the given seed. Release Notes: - N/A
Agus Zubiaga created
6ab7898
agent: Add full-path tooltips to chat mentions (#50087)
In text box <img width="662" height="160" alt="Screenshot 2026-02-25 at 14 32 01" src="https://github.com/user-attachments/assets/c568036c-1445-46cd-b703-41af1b185d6f" /> In chat <img width="661" height="245" alt="Screenshot 2026-02-25 at 14 32 15" src="https://github.com/user-attachments/assets/9932799f-6580-4a70-b83f-d1c0fb0c55d9" /> In chat (light theme) <img width="656" height="232" alt="Screenshot 2026-02-25 at 14 35 26" src="https://github.com/user-attachments/assets/65c4ce56-c902-4dda-a1c4-9dfcea0e6012" /> Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
José Duarte and Danilo Leal created