c976219
zed 0.227.1
Bennet Bo Fenner created
c976219
zed 0.227.1
Bennet Bo Fenner created
cfddb9d
Linux: Handle device lost with wgpu (#50898) (cherry-pick to preview) (#50902)
Cherry-pick of #50898 to preview ---- Release Notes: - Linux: Handle GPU device loss gracefully Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
zed-zippy[bot] and Conrad Irwin created
01e8444
Add GPT-5.4 and GPT-5.4-pro BYOK models (#50858) (cherry-pick to preview) (#50896)
Cherry-pick of #50858 to preview ---- Add GPT-5.4 and GPT-5.4-pro as Bring Your Own Key model options for the OpenAI provider. **GPT-5.4** (`gpt-5.4`): - 1,050,000 token context window, 128K max output - Supports chat completions, images, parallel tool calls - Default reasoning effort: none **GPT-5.4-pro** (`gpt-5.4-pro`): - 1,050,000 token context window, 128K max output - Responses API only (no chat completions) - Default reasoning effort: medium (supports medium/high/xhigh) Also fixes context window sizes for GPT-5 mini and GPT-5 nano (272K β 400K) to match current OpenAI docs. Closes AI-78 Release Notes: - Added GPT-5.4 and GPT-5.4-pro as available models when using your own OpenAI API key. Co-authored-by: Richard Feldman <richard@zed.dev>
zed-zippy[bot] and Richard Feldman created
ff72764
zeta2: Don't remove redundant excerpts on the client (#50886) (#50888)
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
58cf75b
Fix crash in `start_display_link` (#50875) (cherry-pick to preview) (#50878)
Cherry-pick of #50875 to preview ---- Fixes ZED-5G8 If `DisplayLink::new` fails, `frame_requests` is dropped . It is not valid to destroy a DispatchSource that is not `resume()`d. So, ensure we call `resume()` before there's a chance for anything to fail. Release Notes: - Fixed a crash that could occur on macOS when changing monitor configurations Co-authored-by: John Tur <john-tur@outlook.com>
zed-zippy[bot] and John Tur created
4ef3fc3
agent: Gate agent registry refresh behind Disable AI setting (#50868) (cherry-pick to preview) (#50869)
Cherry-pick of #50868 to preview ---- Make sure we don't download this file if disable_ai is enabled Release Notes: - N/A Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
zed-zippy[bot] and Ben Brandt created
150634b
agent_ui: Always show smaller subagent preview (#50864) (cherry-pick to preview) (#50867)
Cherry-pick of #50864 to preview ---- Remove the conditional fullscreen path for subagent tool calls so expanded content consistently renders as a capped preview with the overlay and fixed height. Also add a pointer cursor to the maximize control to clarify clickability. Release Notes: - N/A Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
zed-zippy[bot] and Ben Brandt created
9ba5399
agent_ui: Remove feature upsell banners from agent registry (#50862) (cherry-pick to preview) (#50865)
Cherry-pick of #50862 to preview ---- These aren't built in anymore! Release Notes: - N/A Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
zed-zippy[bot] and Ben Brandt created
1704857
Temporarily disable leak detector for v0.227.x (#50718)
See https://github.com/zed-industries/zed/actions/runs/22676830288/job/65735747311 Release Notes: - N/A
Cole Miller created
b606632
v0.227.x preview
Joseph T. Lyons 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