9a3178a
do it right
Conrad Irwin created
9a3178a
do it right
Conrad Irwin created
f1f37fe
Try to use custom linux base images
Conrad Irwin created
e784c92
zed: Clear the FORCE_CLI_MODE environment variable after reading (#46475)
This prevents child processes (e.g. shells) from inheriting it. This generally isn't an issue, since zed is the only thing that cares about it, but if you're trying to run zed *from* zed, you would first need to unset it manually. Release Notes: - N/A
Josh Robson Chase created
dc0e41f
Refresh LLM API token on organization change (#50931)
Emit client-side organization changed events through `RefreshLlmTokenListener` so it produces the same `RefreshLlmTokenEvent` used for server-pushed `UserUpdated` messages. This keeps token refresh fan-out in one place. Closes CLO-383. Release Notes: - N/A --------- Co-authored-by: Tom Houlé <tom@tomhoule.com>
Neel and Tom Houlé created
21e202e
repl: Switch to util::process::Child to rely on process groups (#48839)
Follow up to https://github.com/zed-industries/zed/pull/48760 thanks to @miguelraz and @reflectronic. No new notes since #48760 did the same thing, only wasn't opting in to process groups we already had in place. Release Notes: - N/A
Kyle Kelley created
a3d9269
ai: Add LMStudio API URL & API key support (#48309)
Hello, This pull request aims to improve usage of lmstudio ai provider for remote lmstudio nodes and support api key authentication. This has been tested on my local network from a headless lms node. See attached demo vid Release Notes: - lmstudio: Added support for specifying an API key via the UI https://github.com/user-attachments/assets/7594cf49-3198-4171-b3e9-c3264cf35b6e --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Antoine Mathie and Bennet Bo Fenner created
1418af6
sidebar: Improve keyboard navigation (#50938)
We know outline the focus sidebar entry similar to the project panel. This allows users to see what they have selected vs active 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: - N/A
Anthony Eid created
0e83147
markdown_preview: Fix slow checkbox check/uncheck UI updates (#48633)
When checking a box in the markdown preview, it's generally very slow. Preview updates when typing in the editor are debounced to be every 200ms, but when clicking an element in the preview, it feels sluggish to wait that long. In debugging, I found that the debounced task from the editor event subscriptions replaced the non-debounced event on [line 605](https://github.com/zed-industries/zed/blob/263d8e58d809b493044160cb26fb690169007e4e/crates/markdown_preview/src/markdown_preview_view.rs#L600C49-L602C51), and the UI took around 200 ms to update. Therefore, I've changed the markdown parsing function to not replace the task, unless another non-debounced task comes along. UI updates from the editor are still debounced. Before: [Screencast_20260206_145702.webm](https://github.com/user-attachments/assets/fed5f8fa-866e-4291-9ec3-f876bb6dc6ab) After: [Screencast_20260206_150124.webm](https://github.com/user-attachments/assets/e4e7dc2b-d899-42ff-bd28-ad1dc5a8d3d9) Release Notes: - Improved speed at which markdown lists update after checking or unchecking items
Wesley Weisenberger created
a5525a8
ep: Refresh available experiments when opening ep button (#50949)
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
ba3aea0
agent: Don't connect to MCP servers when AI is globally disabled (#47857)
Closes #46846 When `disable_ai: true` is set in user settings, Zed was still connecting to configured MCP (context) servers and sending initialization requests. This change adds checks for `DisableAiSettings` in `ContextServerStore` to: - Skip server connections when AI is disabled - Disconnect from running servers when AI becomes disabled - Connect to servers when AI is re-enabled - Prevent registry changes from triggering connections while AI is disabled The fix tracks `ai_disabled` state to detect transitions and properly manage server connections when AI is toggled. Release Notes: - Fixed Zed connecting to MCP servers when AI is disabled. --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Oliver Azevedo Barnes and Bennet Bo Fenner created
a216f9d
crashes: Bump minidumper crate to 0.9 (#50937)
Release Notes: - N/A
Jakub Konka created
2fd5c7b
workspace: Fix dock/panel resizing (#50947)
Before the panel resize wouldn't take into account the width of the sidebar and the right dock could push the left dock on resize too. 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) Co-authored-by: Cameron \<cameron.studdstreet@gmail.com\> Release Notes: - N/A
Anthony Eid created
2d0bd7c
Add more verbosity for panic inside `summaries_for_anchors_with_payloads` (#50940)
We are seeing the timestamp comparison fail in an unexpected way, e.g. https://zed-dev.sentry.io/issues/7293482758/events/c7f7eab3f8f2463f879d4889a80d623e, where it seems like `text::Anchor::is_max` should be returning true but it apparently isn't. Add some more information when this panic happens to understand what's going on. Release Notes: - N/A Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Cole Miller and Piotr Osiewicz created
f69ab1d
agent: Fail faster in case streaming tool call fails (#50834)
If a streaming tool call (e.g. edit file) returns an error during streaming, we would wait until we received the whole input. Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Bennet Bo Fenner and Ben Brandt created
db6b47a
agent_ui: Fix agent panel focus stealing from modals (#50511)
Closes #49336 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) ### Video: https://drive.google.com/file/d/1qAwAoDr4wr8cs1dosvLocU-a4pngJZvr/view?usp=sharing Release Notes: - Fixed agent panel stealing keyboard focus from modals during workspace restoration
João Soares created
3fe3776
agent: Update `old_text` docs for `StreamingEditFileTool` (#50921)
In the old edit agent tool we encouraged the LLM to respond with whole lines, which we did not do in the new edit file tool. Release Notes: - N/A
Bennet Bo Fenner created
84daec5
agent_ui: Add safeguards for deep link prompt injections (#50936)
- Show a warning asking users to review pre-filled prompts from external links before sending. - Strip control characters and bidi control characters from pre-filled prompts. - Collapse 3+ consecutive newlines in pre-filled prompts to prevent newline padding attacks. - API changes make it impossible to auto-submit pre-filled prompts from external sources. Release Notes: - N/A
Smit Barmase created
09b4140
lsp: Use correct LSP adapter for completion labels in remote development (#50697)
Closes #47917
Currently, during remote development, Zed uses the first available local
LSP adapter to handle all label computing. This isn't ideal and causes
bugs because different adapters may expect different label formats. By
leveraging the `all_capable_for_proto_request` method, we can now
retrieve the specific language server name and use it as a key to find
the correct LSP adapter for label population. Even if this lookup fails,
we can still fall back to the first adapter, so this PR should provide
more accurate label population than before.
This addresses the root cause of #47917, which stems from two main
issues. For example, in remote Python development, the `basedpyright`
adapter might incorrectly handle labels even when the remote server is
actually `ty`. The completion items returned by `ty` are slightly
different from `basedpyright`: `ty` stores labels in
`labelDetails.detail`, while basedpyright uses
`labelDetails.description`. By matching the correct adapter, we ensure
labels are populated properly for completion items.
```json
// RPC message returned by `ty`, label is in `labelDetails.detail`
{
...
"labelDetails": { "detail": " (import pathlib)" },
...
}
// RPC message returned by `basedpyright`, label is in `labelDetails.description`
{
...
"labelDetails": { "description": "pathlib" },
...
}
```
Additionally, adapters registered via `register_available_lsp_adapter`
are lazy-loaded into the `LanguageRegistry` (which is the case for `ty`
before). In remote scenarios, the adapter might be loaded on the remote
server but not on the local host, making it hard to find in
`lsp_adapters`. This is partially resolved in #50662, and combined with
this PR, we can fully address #47917.
There is still more to do, however. In some cases, we still can't find
the correct local LSP adapter if the local host lacks the registry that
the remote server has; this typically happens when the adapter is
registered via `register_available_lsp_adapter`. I've opened a feature
discussion #49178 to track this. If it's decided that this needs further
refinement, I'm happy to continue working on it.
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:
- Fixed missing labels for `ty` completion items in remote development.
Xin Zhao created
33e5301
gpui: Add `property_test` macro (#50935)
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Cameron Mcloughlin and Conrad Irwin created
66de3d9
repl: Treat WSL as a separate kernel type from SSH remote (#50721)
Split WslRemote out of the remote_kernels bucket in the kernel picker, giving it its own "WSL Kernels" section. Use the distro name and kernelspec display name for WSL entries instead of the generic "WSL" string. In python_env_kernel_specifications, detect WSL projects via RemoteConnectionOptions and return WslRemote instead of SshRemote. Stop marking WSL worktrees as remote so global kernel specs load. Fix ark kernel stdout pollution by building the wsl.exe bash command with a quoted cd and inline env assignment, so exec replaces the shell and doesn't echo input back. Closes #50459 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
MostlyK created
5db8d6d
agent: Only use AgentSessionInfo in history (#50933)
Previously we required AgentSessionInfo all over the place, which meant there were lots of unnecessary fake ones created all over the place. Made the methods and functions only take the data they need so we only use these in history contexts now, as intended. Release Notes: - N/A
Ben Brandt created
8a38d2d
agent_ui: Adjust empty state for the panel for v2 (#50932)
Making the message editor take all the available space, and improving the loading state for external agents a bit. Release Notes: - N/A
Danilo Leal created
e95b5c3
sidebar: Add some refinements (#50923)
- Make clicking on the project header collapse/expand the group as opposed to activating the workspace - Added the "threads" label close to the sidebar toggle button - Made the open folder icon button open the file finder directly as opposed to the recent projects popover Release Notes: - N/A
Danilo Leal created
61e7032
agent_ui: Adjust panel toolbar design for v2 (#50927)
Adding some adjustments so the toolbar looks more like the designs we've been working on. All that changes here are only valid for the v2 feature flag. Haven't changed anything for today's production version. Release Notes: - N/A
Danilo Leal created
77fa028
Ensure consistent newline behavior in auto-height editors with JetBrains keymap (#47595)
Add an explicit `Editor && mode == auto_height` context block. This ensures that `Shift+Enter` and `Ctrl+Enter` correctly insert a newline at the cursor position in editors like the AI Agent Panel, preventing them from inheriting conflicting overrides (e.g., JetBrains mapping `Shift+Enter` to `editor::NewlineBelow`). Closes #47269 Release Notes: - Fixed an issue where `Shift+Enter` would insert a newline at the end of the text instead of the cursor position in the Agent Panel when using certain keymaps.
Daniel Strobusch created
2457e27
eval: Add eval_cli crate (#50922)
Very much wip Release Notes: - N/A
Ben Brandt created
5289bea
nix: Coerce rel path to cargo wrapper script into abs path (#50919)
This allows you to now re-use our Zed flake in different side projects with cargo wrapper script having its path correctly resolved. Say you have this dir structure: ``` $HOME/dev/zed $HOME/dev/something ``` Then this now works: ``` $ cd $HOME/dev/something $ nix develop ../zed $ cargo version cargo 1.93.0 (083ac5135 2025-12-15) ``` Release Notes: - N/A
Jakub Konka created
49ef205
terminal: Fix drag-and-drop in vertical terminal panels (#49825)
Closes #49800 Adds `handle_drop` to Item & ItemHandle, which allows an active item in a pane to consume drop events before the pane does. Release Notes: - terminal: Fix drag-and-drop not working in vertical terminal panels
claire created
e3d0a35
Fix `formatter: "auto"` to skip language servers that can't format (#50661)
Closes #50631 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: - Fixed `formatter: "auto"` silently doing nothing when the first language server for a language doesn't support formatting (e.g., Dependi before Tombi for TOML).
João Soares created
d2952be
zed: Fix shared agent thread links not opening (#50915)
Release Notes: - Fixed an issue where shared agent thread URLs would not open.
Smit Barmase created
e9ffef0
editor: Hide hover links when mouse cursor is not visible (#50424)
When I am in the middle of editing, pressing Ctrl would counter-intuitively highlight links even when the mouse cursor is hidden. This change considers the state of the mouse cursor before painting links on hover. Before: Modifier pressed, cursor hidden, link visible <img width="506" height="518" alt="image" src="https://github.com/user-attachments/assets/82a59e83-e3cb-490f-b292-148686ec569d" /> After: Modifier pressed, cursor hidden (red dot indicates current cursor position) <img width="408" height="298" alt="image" src="https://github.com/user-attachments/assets/c19ed83c-4778-4890-97b9-5155cdcf658b" /> 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 spurious link highlighting when mouse cursor is hidden Fixes #50776
Karthik Nishanth created
a70c295
python: Fix conda environment not auto-activated in remote terminal (#50895)
Closes #50619 In the conda activation script building procedure, Zed currently performs a file check for the conda executable on the client side. When in remote development, this check always fails because the file exists on the remote host, not the local machine. Since `pet` already handles existence checks, removing this redundant check allows the activation to proceed. It is also better to let any potential issues (like permissions) show up in the terminal rather than silently skipping the activation. This addresses the root cause for remote development, which is different from the approach in #50715 that focuses on shell hooks. **The video recording** https://github.com/user-attachments/assets/62967351-e3c5-4814-aec4-b2332940e7e3 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 conda environment not auto-activating in the terminal during remote development sessions.
Xin Zhao created
7040484
Fix sidebar selections (#50900)
Release Notes: - N/A --------- Co-authored-by: Eric Holk <eric@zed.dev>
Mikayla Maki and Eric Holk created
a0ba509
Fix provisional thread title (#50905)
Release Notes: - N/A
Mikayla Maki created
9acb32f
Linux: Handle device lost with wgpu (#50898)
Release Notes: - Linux: Handle GPU device loss gracefully
Conrad Irwin created
3b3ffc0
Add GPT-5.4 and GPT-5.4-pro BYOK models (#50858)
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.
Richard Feldman created
ab824a0
Use excerpt coordinates consistently in parse_zeta_model_output (#50894)
Fixes a bug introduced in https://github.com/zed-industries/zed/pull/50850, where we used incorrect coordinates for the editable range. Release Notes: - N/A
Max Brunsfeld created
ca5027c
Fix OpenGL initialization on Intel HD 4000 (#50891)
I think we might just get it working this time Release Notes: - N/A
John Tur created
61d9696
zeta: Add variable edit format (#50850)
Release Notes: - N/A --------- Co-authored-by: Jakub Konka <kubkon@jakubkonka.com> Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com> Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld , Jakub Konka , Oleksiy Syvokon , and Ben Kunkle created
da9d548
zeta2: Don't remove redundant excerpts on the client (#50886)
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
a1d8c52
Separate the sidebar click targets (#50885)
Release Notes: - N/A
Mikayla Maki created
41cfb82
Fix crash in `start_display_link` (#50875)
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
John Tur created
c5f3a1d
ep: Indicate active experiment (#50870)
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
90ae708
agent: Gate agent registry refresh behind Disable AI setting (#50868)
Make sure we don't download this file if disable_ai is enabled Release Notes: - N/A
Ben Brandt created
0d90751
agent_ui: Always show smaller subagent preview (#50864)
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
Ben Brandt created
a8caf07
agent_ui: Remove feature upsell banners from agent registry (#50862)
These aren't built in anymore! Release Notes: - N/A
Ben Brandt created
f05d756
agent: Add telemetry events for subagents (#50849)
Adds five telemetry events to track subagent lifecycle and user interactions: - **Subagent Started** — fires on creation or resumption, includes parent session, subagent session, depth, and whether it was resumed - **Subagent Completed** — fires when `SpawnAgentTool` finishes, includes subagent session and status (completed/error) - **Subagent Toggled** — fires when the user expands or collapses a subagent card - **Subagent Stopped** — fires when the user clicks Stop on a running subagent - **Subagent Maximized** — fires when the user clicks Maximize to navigate into a subagent Release Notes: - N/A
Katie Geer created
6c914ad
ep: Capture example as part of settled events (#50847)
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: Agus <agus@zed.dev>
Ben Kunkle and Agus created
9afeb4e
Implement new Multi Agent UI (#50534)
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 --------- Co-authored-by: Eric <eric@zed.dev> Co-authored-by: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Co-authored-by: Anthony Eid <anthony@zed.dev> Co-authored-by: John Tur <john-tur@outlook.com>
Mikayla Maki , Eric , cameron , Danilo Leal , Anthony Eid , and John Tur created
0e5b4e1
language_models: Defer fetching models for the Zed provider until fully signed-in (#50857)
This PR updates the model-fetching behavior for the Zed provider to wait until the user is fully signed-in before we attempt to fetch the models. We now subscribe to the `UserStore` and listen for the `PrivateUserInfoUpdated` event. If we receive that event and the user is not currently signed out, then we should be all set to fetch the models. Closes CLO-424. Release Notes: - N/A
Marshall Bowers created