68cb60a
Staff-ship streaming edit file tool (#50720)
Click to expand commit body
Release Notes: - N/A
Bennet Bo Fenner created
68cb60a
Staff-ship streaming edit file tool (#50720)
Release Notes: - N/A
Bennet Bo Fenner created
87bc2aa
Add support for streaming tool input to more providers (#50682)
To test: - [x] Bedrock - [x] Copilot Chat - [x] Deepseek - [x] Open AI - [x] Open Router - [x] Vercel - [x] Vercel AI Gateway - [x] xAI - [x] Mistral Release Notes: - N/A
Bennet Bo Fenner created
0394341
ep: Collapse whitespace in deltaChrF (#50716)
Release Notes: - N/A
Oleksiy Syvokon created
731a800
repl: Bump `runtimed` ecosystem packages and add support for V3 Jupyter Notebooks (#49914)
- Add support for v3 Jupyter Notebooks ( nbformat 1.2.0 <-> https://github.com/runtimed/runtimed/pull/275 ) - This means that we can now open notebooks like [Signal Processing for Python](https://nbviewer.org/github/unpingco/Python-for-Signal-Processing/tree/master/) and much more. Release Notes: - N/A
MostlyK created
d329961
workspace: Remove superfluous call dependency (#50713)
Closes #50701 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 - [ ] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - N/A
Piotr Osiewicz created
489ec66
Bump Zed to v0.228 (#50710)
Release Notes: - N/A
Joseph T. Lyons created
866ec42
Remove deprecated Gemini 3 Pro Preview (#50503)
Gemini 3 Pro Preview has been deprecated in favor of Gemini 3.1 Pro. This removes the `Gemini3Pro` variant from the `Model` enum and all associated match arms, updates eval model lists, docs, and test fixtures. A serde alias (`"gemini-3-pro-preview"`) is kept on `Gemini31Pro` so existing user settings gracefully migrate to the replacement model. Closes AI-66 Release Notes: - Removed deprecated Gemini 3 Pro Preview model; existing configurations automatically migrate to Gemini 3.1 Pro.
Richard Feldman created
9b8ad01
ep: Option to configure custom Baseten environment (#50706)
Release Notes: - N/A
Oleksiy Syvokon created
a1d4037
cloud_api_client: Send the organization ID in LLM token requests (#50517)
This is already expected on the cloud side. This lets us know under which organization the user is logged in when requesting an llm_api token. Closes CLO-337 Release Notes: - N/A
Tom HoulΓ© created
5641ccf
docs: Add consent banner (#50302)
Adds a consent banner, similar to the one on zed.dev 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: - N/A
Gaauwe Rombouts created
d5137d7
git: Add trusted worktree support to git integrations (#50649)
This PR cleans up the git command spawning by wrapping everything in GitBinary instead to follow a builder/factory pattern. It also extends trusted workspace support to git commands. I also added a `clippy.toml` configuration to our git crate that warns against using `Command` struct to spawn git commands instead of going through `GitBinary`. This should help us maintain the factory pattern in the future Before you mark this PR as ready for review, make sure that you have: - [x] Added solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects Release Notes: - git: Add trusted workspace support for Zed's git integration
Anthony Eid created
0b58d34
editor: Refactor excerpts removed event handling (#50695)
Refactor the changes introduced in https://github.com/zed-industries/zed/pull/50525, in order to remove the `DisplayMap.clear_folded_buffer` method and update the editor's handling of `multi_buffer::Event::ExcerptsRemoved` to actually call `DisplayMap.unfold_buffers`, which correctly updates the `BlockMap` using its `BlockMapWriter`, ensuring that the block map is synced. 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: - N/A
Dino created
932981f
editor: Prevent underlines from appearing in minimap (#48510)
I noticed that the minimap seems to render underlines with the same
thickness as the main editor, which looks a bit off. This becomes much
more noticeable when enabling `semantic_token_rules` (due to the
increased number of underlines):
```json
"global_lsp_settings": {
"semantic_token_rules": [
{
"token_modifiers": ["mutable"],
"underline": true,
},
],
}
```
Looking at the existing code, I found that diagnostic underlines already
check `editor_style.show_underlines` to ensure they are only displayed
in the main editor. To maintain consistency, I applied the same
filtering logic to `chunk_highlight` so that these underlines are no
longer rendered in the minimap.
BeforeοΌ
<img alt="CleanShot 2026-02-06 at 02 28 31@2x"
src="https://github.com/user-attachments/assets/16401154-23f5-43ef-a7a8-b1035c19e076"
/>
AfterοΌ
<img alt="CleanShot 2026-02-06 at 02 31 36@2x"
src="https://github.com/user-attachments/assets/979a04be-e585-44be-9c42-4dfab7b89186"
/>
Release Notes:
- N/A *or* Added/Fixed/Improved ...
α΄α΄α΄α΄α΄α΄Κ created
90ddd58
agent: Move file_read_times logic to ActionLog instead of Thread (#50688)
Since the read times always correspond to an action log call anyway, we can let the action log track this internally, and we don't have to provide a reference to the Thread in as many tools. Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: MrSubidubi <dev@bahn.sh>
Ben Brandt , Bennet Bo Fenner , and MrSubidubi created
de10776
Add .cppm (C++20 module interface) to C++ file extensions (#50667)
`.cppm` is the widely used extension for C++20 module interface units, supported by MSVC, Clang, and GCC. Currently Zed doesn't recognize it as C++, so users get no syntax highlighting or LSP support. Changes: `crates/languages/src/cpp/config.toml`: add cppm to path_suffixes `crates/theme/src/icon_theme.rs`: add cppm to the C++ icon matcher https://github.com/search?q=path%3A*.cppm&type=code Release Notes: - N/A
moleium created
007e3ec
docs: Update docs for the subagent tool (#50689)
Adds the actual tool name so people can turn it off if they want. Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: MrSubidubi <dev@bahn.sh>
Ben Brandt , Bennet Bo Fenner , and MrSubidubi created
4668dbc
agent: Allow for expanding the subagent thread when permissions are requested (#50684)
Previously, there was no way to view the full thread context Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: MrSubidubi <dev@bahn.sh>
Ben Brandt , Bennet Bo Fenner , and MrSubidubi created
f0abcd8
More fixes for OpenGL initialization on Intel HD 4000 (#50680)
Release Notes: - N/A
John Tur created
f023109
docs: Fix incorrect IAM terminology under Bedrock section (#50546)
IAM users cannot be assumed; only IAM roles can be. 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
john created
152d3ea
project_panel: Fix Reveal in File Manager for WSL projects (#50610)
Closes #46767 ## Summary The "Reveal in File Manager" action was shown in the context menu for WSL projects (guarded by `is_via_wsl_with_host_interop`), but the action handler in `Render` was only registered when `project.is_local()` β which returns `false` for WSL. Dispatching the action without a handler caused a crash. Adds the same `is_via_wsl_with_host_interop(cx)` check to the handler registration. ## Testing - Ran `cargo test -p project_panel` β 78 passed, 0 failed - Manual testing: connected to WSL Ubuntu, right-clicked a file in the project panel, used "Reveal in File Manager" β Windows Explorer opened correctly without crashing 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 a crash when using "Reveal in File Manager" on files in WSL projects (#46767).
Sarthak Mishra created
c0fa025
repl: Fix image scaling (#48435)
Continues #47114 Release Notes: - Fixed REPL output width clamping to apply to the content area so images donβt get clipped by controls --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Casper van Elteren and MrSubidubi created
e51cd49
doc: Improve documentation for language server `...` expansion (#50672)
Hi! The `...` entry in the `language_servers` setting was only explained in a single bullet point, which led users to misconfigure their setup, particularly when overriding defaults that disable certain servers with `!`. Add a detailed explanation of how `...` works and a table of examples using Ruby's real server configuration to illustrate the override behavior. 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
Vitaly Slobodin created
cdb34c3
python: Register LSP adapters directly to the LanguageRegistry (#50662)
The purpose of `register_available_lsp_adapter()` is to allow language servers to be reused across multiple languages. Since adapters like `ty`, `pylsp`, and `pyright` are specific to Python, there is no need to register them for other languages. Additionally, registering them directly to the global `LanguageRegistry` results in negligible resource consumption. We can then use the default settings to control the default language server for Python, as referenced here: https://github.com/zed-industries/zed/blob/9c9337a8021f74511625517c3f4fa021106609eb/assets/settings/default.json#L2119-L2130 Additionally, the documentation for Python has been updated to clarify that the `"..."` syntax does not mean "keep the rest at default," but rather "include all other available servers." 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 (no sure how to add test for this) - [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: - N/A *or* Added/Fixed/Improved ...
Xin Zhao created
9a6046c
Change miniprofiler file extension to `.miniprof.json` (#50429)
The main intention behind this change is to support uploading these files to GitHub. `.miniprof` is not a supported extension by GitHub, but `.json` is. The only βdownsideβ to this change is that the cleanup process will have to look for `.miniprof` files AND `.miniprof.json` files. Maybe we can remove that change at a later date? Ref: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files 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 - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Changed miniprofiler file extension to `.miniprof.json`
Kunall Banerjee created
9c9337a
Add cmd-y binding for agent::Keep in agent diff review (#50656)
Release Notes: - Added `cmd-y` keybinding for accepting changes in the agent diff review, matching the git diff review shortcut.
Mikayla Maki created
6a38c5c
Fix panic in remote workspaces (#50647)
Fixes ZED-4JD Release Notes: - Fix a panic when opening the remote server modal
Conrad Irwin created
7f3dee8
Fix OpenGL initialization on Intel HD 4000 (#50646)
Release Notes: - Fixed Zed failing to initialize OpenGL on certain Linux devices
John Tur created
832782f
Persist token count and scroll position across agent restarts (#50620)
Release Notes: - Token counts and scroll position are restored when loading a previous agent thread
Eric Holk created
c1cbcb6
Fix handling of `surface.configure` on Linux (#50640)
Closes #50574 Release Notes: - Fixed Zed not being responsive on some Linux configurations Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
John Tur and Conrad Irwin created
4dd42a0
agent: Fix subagent error display (#50638)
Since we were no longer just returning a string, we need to update the content in both success and error modes to get a nice rendering experience. Release Notes: - N/A
Ben Brandt created
2772db8
Remove zeta2 feature flag (#50618)
Release Notes: - N/A
Max Brunsfeld created
dc7cbd3
zeta2: Hashlines prompt format (#50623)
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 ...
Ben Kunkle created
a5a1977
ep: API keys for OpenAI compatible (#50615)
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: - Added support for providing an API key to OpenAI-compatible edit prediction providers
Ben Kunkle created
3d3a66d
collab: Fix unable to rejoin shared project after leaving a call (#50630)
When a downstream project was disconnected from the host (e.g. the guest
left the call), `disconnected_from_host_internal` did not clear
`client_subscriptions`. These subscriptions hold entries in the
`Client`'s entity subscription map, so a subsequent
`join_remote_project` with the same project ID would fail with "already
subscribed to entity".
The fix adds `self.client_subscriptions.clear()` to
`disconnected_from_host_internal`, matching what `unshare_internal`
already does for the host side.
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
Release Notes:
- collab: Fix unable to rejoin project bug ("already subscribed to
entity")
Anthony Eid created
09e178d
ep: Predict by querying Baseten directly (#50626)
This can be used like `ep predict --provider baseten:V0131GitMergeMarkersPrefix`. Since it doesn't require load_project, it can be used with captured requests. Release Notes: - N/A
Oleksiy Syvokon created
0a1a921
git: Fix remote worktree support (#50614)
The main issue is that we weren't forwarding the proto messages through the collab server to the host. After fixing that I added integration tests to cover local worktrees, remote worktrees, and ssh worktrees. I also fixed a bug with FakeRepository where it wouldn't name its current branch as a worktree when calling git worktree, which doesn't match the behavior of the git binary. 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 Release Notes: - git: Fix bug that caused the git worktree picker from displaying and creating worktrees over collab
Anthony Eid created
d312312
Add ctrl-enter keybind (macOS) to type newline in search bars (#50420)
I've been using https://github.com/zed-industries/zed/issues/15046#issuecomment-3259286451 for half a year now, and it seems worthy of inclusion in the default keymap. 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 - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Added `ctrl-enter` keybind on macOS to type a newline in search bars
Justin Su created
528bf7c
ep: Fix fetching rated-after (#50617)
Release Notes: - N/A
Oleksiy Syvokon created
e20905f
Only use `StreamingEditFileTool` when streaming is available (#50616)
Release Notes: - N/A
Bennet Bo Fenner created
6195b70
Try to fix auto-updates when Explorer.exe holds Zed.exe (#50332)
Release Notes: - Windows: make auto-update more robust in the face of apps holding the Zed.exe handle --------- Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Conrad Irwin and Jakub Konka created
d2a71b0
auto_update_helper: Rollback for all errors including FileNotFound (#50607)
We would mark `FileNotFound` as success and progress the update loop which does not make much sense. Release Notes: - Do not skip update roll back in presence of FileNotFound errors on Windows. Co-authored-by: Miguel Raz Guzman Macedo <raz@zed.dev>
Jakub Konka and Miguel Raz Guzman Macedo created
c19cc4c
Fix Linux watcher cleanup for recreated directories (#50412)
## Problem - On Linux, non-recursive watcher registrations remained path-cached after deleting and recreating a directory in the same session. - The recreated directory was not re-watched, so newly created child entries under that path could be missing. ## Summary - Remove directory watcher registrations when worktree paths are removed from snapshot state. - Ensure recreated directories can be watched again on Linux by allowing `scan_dir` to re-add fresh watches. - Add a Linux integration regression test for directory delete/recreate path reuse and child file creation. ## Testing - `cargo test -p project --features test-support --test integration test_recreated_directory_receives_child_events -- --exact` - `cargo test -p project --features test-support --test integration test_rescan_and_remote_updates -- --exact` ## Related - #46709 Release Notes: - Fixed Linux worktree file watching so child entries appear after deleting and recreating a directory at the same path.
Chriss4123 created
38c7e63
git: Fix commit message buffer header not being disabled after cloning commit view (#50606)
Release Notes: - Fixed extraneous buffer header when splitting the commit view.
Cole Miller created
7c9a9d4
Add "Start Thread in New Worktree" (#49141)
Add the thread target selector in the agent panel behind the `agent-git-worktrees` flag: <img width="590" height="121" alt="Screenshot 2026-03-02 at 11 50 47β―PM" src="https://github.com/user-attachments/assets/17ee3303-7e01-4e40-bb84-1e7e748a3196" /> - Add a "Start Thread In..." dropdown to the agent panel toolbar, gated behind `AgentV2FeatureFlag` - Options: "Local Project" (default) and "New Worktree" - The "New Worktree" option is disabled when there's no git repository or in collab mode Closes AI-34 Release Notes: - N/A --------- Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com> Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com> Co-authored-by: Remco Smits <djsmits12@gmail.com> Co-authored-by: morgankrey <morgan@zed.dev> Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> Co-authored-by: Ben Kunkle <ben@zed.dev> Co-authored-by: Finn Evers <finn@zed.dev> Co-authored-by: Bennet Bo Fenner <bennet@zed.dev> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com> Co-authored-by: MostlyK <135974627+MostlyKIGuess@users.noreply.github.com> Co-authored-by: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: John Tur <john-tur@outlook.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Wuji Chen <chenwuji2000@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Kasper Nyhus <kanyhus@gmail.com> Co-authored-by: dino <dinojoaocosta@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Josh Robson Chase <josh@robsonchase.com> Co-authored-by: ozacod <47009516+ozacod@users.noreply.github.com> Co-authored-by: ozacod <ozacod@users.noreply.github.com> Co-authored-by: Xiaobo Liu <cppcoffee@gmail.com> Co-authored-by: Lena <241371603+zelenenka@users.noreply.github.com> Co-authored-by: 0x2CA <2478557459@qq.com> Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com> Co-authored-by: Albab Hasan <155961300+Albab-Hasan@users.noreply.github.com> Co-authored-by: KyleBarton <kjb@initialcapacity.io> Co-authored-by: Kunall Banerjee <hey@kimchiii.space> Co-authored-by: Lukas Wirth <lukas@zed.dev> Co-authored-by: Tom HoulΓ© <13155277+tomhoule@users.noreply.github.com> Co-authored-by: Nikhil Pandey <nikhil@nikhil.com.np> Co-authored-by: Mikayla Maki <mikayla@zed.dev> Co-authored-by: dancer <144584931+dancer@users.noreply.github.com> Co-authored-by: Kirill Bulatov <kirill@zed.dev> Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Richard Feldman , Oleksiy Syvokon , Ben Brandt , Anthony Eid , Remco Smits , morgankrey , Danilo Leal , Ben Kunkle , Finn Evers , Bennet Bo Fenner , Zed Zippy , MostlyK , cameron , Max Brunsfeld , John Tur , Conrad Irwin , Wuji Chen , Claude , Smit Barmase , Cole Miller , Kasper Nyhus , dino , Anthony Eid , Josh Robson Chase , ozacod , ozacod , Xiaobo Liu , Lena , 0x2CA , Joseph T. Lyons , Albab Hasan , KyleBarton , Kunall Banerjee , Lukas Wirth , Tom HoulΓ© , Nikhil Pandey , Mikayla Maki , dancer , Kirill Bulatov , and Danilo Leal created
62b9a98
agent_ui: Make file mention chips clickable to open files (#46751)
### Summary Makes file mention chips in the AI chat input clickable to open the referenced files. Previously, chips like `@README.md` were purely visual indicators with no interaction. ### Changes - **Clickable mention chips**: Users can now click on file mentions in the chat input to open those files in the editor - **Support for all mention types**: - Files β Opens in editor - Files with line numbers β Opens and scrolls to line - Directories β Reveals in project panel - Threads β Navigates to thread - Rules β Opens rules library - URLs β Opens in browser - **Handles files outside workspace**: Falls back to `open_abs_path()` for files not in the current workspace ### Implementation Threads `MentionUri` and `WeakEntity<Workspace>` through the crease rendering pipeline: 1. Updated `insert_crease_for_mention()` to accept mention URI and workspace references 2. Added click handler to `MentionCrease` component using `.when()` for conditional attachment 3. Implemented file opening helpers that mirror the existing `thread_view.rs::open_link()` logic ### Demo https://github.com/user-attachments/assets/21b2afb7-7a86-4a0a-aba1-e24bb1b650c2 ### Testing Manually tested: - [x] Clicking `@README.md` opens file - [x] Clicking file with line numbers navigates correctly - [x] Clicking directory reveals in project panel - [x] Files outside workspace open via absolute path ### Files Changed - `crates/agent_ui/src/mention_set.rs` - Thread URI/workspace through pipeline - `crates/agent_ui/src/ui/mention_crease.rs` - Add click handler and file opening logic - `crates/agent_ui/src/acp/message_editor.rs` - Update call sites ### Review feedback addressed - Replaced `.when()` + `unwrap()` with `.when_some()` + `Option::zip()` (`0e36efb4eb`) - De-duplicated `open_file` and `open_file_at_line` into a single function with `Option<RangeInclusive<u32>>` (`dbcbb69a4b`) - Rebased onto latest `main` and resolved conflicts Also update item 2 under Implementation from: _Added click handler to MentionCrease component using `.when()` for conditional attachment_ to: _Added click handler to MentionCrease component using `.when_some()` with `Option::zip()` for conditional attachment_ ### Release Notes: - agent: File mention chips in the chat input are now clickable and will open the referenced files in the editor. Closes #46746 --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Daniel Llamas and Claude Opus 4.6 created
e652d96
Add CSV preview with live table view and interactive features (#48207)
## **Description:** **Context:** This PR introduces an initial CSV preview feature for Zed, building upon two previously merged infrastructure PRs: - [#46341](https://github.com/zed-industries/zed/pull/46341) - Data table dynamic column support (removed const generics) - [#46190](https://github.com/zed-industries/zed/pull/46190) - Variable row height mode for data tables This implementation is based on the [original draft PR #44344](https://github.com/zed-industries/zed/pull/44344), which has been carefully decomposed into smaller, reviewable pieces. --- #### **Features Included:** **Core Infrastructure:** - Live CSV parsing with smart debouncing (200ms cooldown) - Performance monitoring with built-in timing metrics (not displayed in UI yet) - Automatic file change detection and re-parsing - Support for quoted fields, multiline cells, and escaped characters **Table Display:** - Variable row height rendering with fallback to uniform mode (switchable via settings) - Draggable column resizing (reusing existing data table infrastructure) - Row identifiers supporting both source line numbers and sequential row numbers - Configurable font rendering (UI font vs monospace) - Tooltips showing full cell content on hover **Interactive Features:** - Column sorting (ascending/descending) with visual indicators **Settings Panel:** - Toggle between variable/uniform row rendering - Font type selection (UI/monospace) - Row identifier type configuration - Debug information display - Multiline cell rendering options --- #### **Features Intentionally Removed for This PR:** To reduce complexity and review scope, the following features were temporarily reverted and will be reintroduced in subsequent PRs: - β Settings pannel with performance metrics overlay - β Cell selection (single, multiple, and range selections) - β Keyboard navigation with arrow keys and selection extension - β Copy functionality supporting CSV, TSV, and Markdown table formats - β Inline cell editing with file persistence - β Viewport following for large datasets - β Column filtering and search capabilities These removals were done via "time-machine" commits that cleanly nuked vertical slices of functionality from the complete implementation. --- **Technical Implementation:** The feature is organized into a dedicated `csv_preview` crate with the following structure: ``` crates/csv_preview/ βββ src/ β βββ csv_preview.rs # Main view and coordination logic β βββ parser.rs # CSV parsing and editor integration β βββ settings.rs # Configuration types and defaults β βββ table_data_engine.rs # Data transformation logic β βββ renderer/ # UI rendering modules β β βββ preview_view.rs # Main render implementation β β βββ render_table.rs # Table component assembly β β βββ table_cell.rs # Individual cell rendering β β βββ table_header.rs # Header with sorting controls β β βββ row_identifiers.rs # Line number column β βββ types/ # Core data structures β βββ table_like_content.rs β βββ coordinates.rs # Display vs data coordinate systems β βββ table_cell.rs ``` **Key architectural decisions:** - **Dual coordinate system**: Separates data indices from display indices to support sorting/filtering - **Component reuse**: Leverages existing `data_table` infrastructure from the keymap editor --- **Integration:** - Registers `csv::OpenPreview` action (currently without default keybindings) - Follows the same workspace integration pattern as `markdown_preview` and `svg_preview` - Automatically detects `.csv` file extensions - Tab integration with appropriate icons and naming --- **Code Structure Note:** Some code structures, types, and documentation may appear redundant or over-engineered in this initial implementation. This is intentional - the feature was developed as a complete system and then decomposed by functionality rather than being built incrementally. The "extra" infrastructure supports features that were removed for this PR but will be reintroduced in subsequent ones. This approach was chosen over extensive refactoring because: 1. The complete feature took 200+ commits to develop with significant rewrites 2. Clean extraction of vertical slices was more feasible than rebuilding incrementally 3. The end state will utilize all these components, making current "redundancy" temporary I apologize for any inconvenience this may cause during review, but the alternative would have required significant refactoring effort just to make intermediate states "prettier," which seemed counterproductive. --- **Future Work:** This lays the groundwork for upcoming PRs that will reintroduce the removed features: - Cell selection and keyboard navigation - Copy functionality with multiple output formats - Inline editing capabilities with undo/redo - Column filtering and search - TSV and other delimiter support - Improved horizontal scrolling behavior - Settings persistence **Testing:** Includes test fixtures demonstrating multiline cell handling, various column counts, and edge cases. --- **Release Notes:** - N/A This is feature flagged --------- Co-authored-by: Anthony Eid <anthony@zed.dev>
Oleksandr Kholiavko and Anthony Eid created
83fd8fa
language_models: Handle usage-only events with empty choices in OpenRouter (#50603)
Closes #50569 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) Previously, OpenRouter responses containing only usage data (without any choices) would cause an error. Now the mapper properly emits usage updates for these events without failing. Release Notes: - Fixed an error when OpenRouter returns a usage-only event with empty choices.
Umesh Yadav created
58ad0ff
Add file icons for YAML, Helm and GitLab (#50529)
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 - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) I used the icons from here: - GitLab: https://about.gitlab.com/press/press-kit/ - Helm: https://www.svgrepo.com/svg/330624/helm - Yaml: https://icons.getbootstrap.com/icons/filetype-yml/ FYI: I'm not familiar with Rust please review the rust code. Release Notes: - Added file icons for YAML, Helm and GitLab files, and used the Docker icon for `Containerfile`. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Tom Zaspel and Danilo Leal created
197cf60
agent_ui: Refresh ACP history after thread create/load (#49796)
Moves loading of the history connection to once we have a new connection, not on every thread view. Release Notes: - N/A --------- Signed-off-by: rabi <ramishra@redhat.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Rabi Mishra and Ben Brandt created
906f5a6
agent: Cancel retries when the turn is cancelled (#50580)
When a completion request fails with a retryable error (e.g. a 500 from the upstream provider), the retry loop waits on a timer before trying again. This timer did not race with the cancellation signal, so if the user switched models and submitted a new message during the retry delay, the old turn would continue retrying with the stale model for up to 15 seconds β making requests to the wrong provider and corrupting the thread's message list with spurious Resume entries. Now the retry delay races with the cancellation receiver, so the old turn exits immediately when cancelled. Release Notes: - Fixed cancelled turns in a conversation that failed (e.g. 500 from the LLM provider) bein retried even after cancellation
Tom HoulΓ© created