a910c59
agent_ui: Add mode_id to telemetry (#43045)
Click to expand commit body
Release Notes: - N/A
Bennet Bo Fenner created
a910c59
agent_ui: Add mode_id to telemetry (#43045)
Release Notes: - N/A
Bennet Bo Fenner created
19d2532
Update google_ai.rs (#43034)
Release Notes: - N/A
Mikayla Maki created
785b81a
Revert "Fix track file renames in git panel (#42352)" (#43030)
This reverts commit b0a7defd0990c315c27f51f82dbf13a736279eba. It looks like this doesn't interact correctly with the project diff or with staging, let's revert and reland with bugs fixed. Release Notes: - N/A
Cole Miller created
24c1617
git_ui: Dismiss pickers only on active window (#41320)
Small QOL improvement for branch picker to only dismiss when focus lost in active window. This can benefit those who need to switch windows mid branch creation to fetch correct jira ticket number or etc. Added `window.is_active_window()` guard in `picker.rs` -> `cancel` event Release Notes: - (Let's Git Together) Fixed a behavior where pickers would automatically close upon the window becoming inactive.
Ben Heimberg created
1e2f15a
Disable phpactor by default on windows (#43011)
We install phpactor by default, but on windows it doesn't work out of the box (see [here](https://github.com/phpactor/phpactor/discussions/2579) for details). For now we'll default to using intelephense, but in the future we'd like to switch back if phpactor lands windows support given that it's open source. Release Notes: - N/A
Julia Ryan created
7c0663b
google_ai: Add gemini-3-pro-preview model (#43015)
Release Notes: - Added the newly released Gemini 3 Pro Preview Model https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro
Martin Bergo created
94a43dc
extension_host: Fix `IS_WASM_THREAD` being set for wrong threads (#43005)
https://github.com/zed-industries/zed/pull/40883 implemented this incorrectly. It was marking a random background thread as a wasm thread (whatever thread picked up the wasm epoch timer background task), instead of marking the threads that actually run the wasm extension. This has two implications: 1. it didn't prevent extension panics from tearing down as planned 2. Worse, it actually made us hide legit panics in sentry for one of our background workers. Now 2 still technically applies for all tokio threads after this, but we basically only use these for wasm extensions in the main zed binary. Release Notes: - Fixed extension panics crashing Zed on Linux
Lukas Wirth created
e8e0707
zeta2: Improve queries parsing (#43012)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Agus <agus@zed.dev> Co-authored-by: Max <max@zed.dev>
Ben Kunkle , Agus , and Max created
d7c340c
docs: Add documenation for OpenTofu support (#42448)
Closes - Release Notes: - N/A Signed-off-by: Tom Zaspel <40226087+tzabbi@users.noreply.github.com>
Tom Zaspel created
16b24e8
Increase error verbosity (#43013)
Closes #42288 This will actually print the parsing error that prevented the vscode settings file from being loaded which should make it easier for users to self help when they have an invalid config. Release Notes: - N/A
Julia Ryan created
917148c
gpui: Use DWM API for backdrop effects and add Mica/Mica Alt support (#41842)
This PR updates window background rendering to use the **official DWM backdrop API** (`DwmSetWindowAttribute`) instead of the legacy `SetWindowCompositionAttribute`. It also adds **Mica** and **Mica Alt** options to `WindowBackgroundAppearance` for native Windows 11 effects. ### Motivation Enables modern, stable, and GPU-accelerated backdrops consistent with Windows 11’s Fluent Design. Removes reliance on undocumented APIs while maintaining backward compatibility with older Windows versions. ### Changes * Added `MicaBackdrop` and `MicaAltBackdrop` variants. * Switched to DWM API for applying backdrop effects. * Verified fallback behavior on Windows 10. ### Release Notes: - Added `WindowBackgroundAppearance::MicaBackdrop` and `WindowBackgroundAppearance::MicaAltBackdrop` for Windows 11 Mica and Mica Alt window backdrops. ### Screenshots - `WindowBackgroundAppearance::Blurred` <img width="553" height="354" alt="image" src="https://github.com/user-attachments/assets/57c9c25d-9412-4141-94b5-00000cc0b1ec" /> - `WindowBackgroundAppearance::MicaBackdrop` <img width="553" height="354" alt="image" src="https://github.com/user-attachments/assets/019f541c-3335-4c9e-b026-71f5a1786534" /> - `WindowBackgroundAppearance::MicaAltBackdrop` <img width="553" height="354" alt="image" src="https://github.com/user-attachments/assets/5128d600-c94d-4c89-b81a-8b842fe1337a" /> --------- Co-authored-by: John Tur <john-tur@outlook.com>
Barani S and John Tur created
951132f
chore: Fix build graph - again (#42999)
11.3s -> 10.0s for silly stuff like extracting actions from crates. project panel still depends on git_ui though.. Release Notes: - N/A
Piotr Osiewicz created
bf0dd40
zeta2: Make `new_text`/`old_text` parsing more robust (#42997)
Closes #ISSUE
The model often uses the wrong closing tag, or has spaces around the
closing tag name. This PR makes it so that opening tags are treated as
authoritative and any closing tag with the name `new_text` `old_text` or
`edits` is accepted based on depth. This has the additional benefit that
the parsing is more robust with contents that contain `new_text`
`old_text` or `edits. I.e. the following test passes
```rust
#[test]
fn test_extract_xml_edits_with_conflicting_content() {
let input = indoc! {r#"
<edits path="component.tsx">
<old_text>
<new_text></new_text>
</old_text>
<new_text>
<old_text></old_text>
</new_text>
</edits>
"#};
let result = extract_xml_replacements(input).unwrap();
assert_eq!(result.file_path, "component.tsx");
assert_eq!(result.replacements.len(), 1);
assert_eq!(result.replacements[0].0, "<new_text></new_text>");
assert_eq!(result.replacements[0].1, "<old_text></old_text>");
}
```
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
3c4ca3f
Remove `settings::Maybe` (#42933)
It's unclear how this would ever be useful cc @probably-neb Release Notes: - N/A
Conrad Irwin created
0313292
Add HTTP transport support for MCP servers (#39021)
### What this solves
This PR adds support for HTTP and SSE (Server-Sent Events) transports to
Zed's context server implementation, enabling communication with remote
MCP servers. Currently, Zed only supports local MCP servers via stdio
transport. This limitation prevents users from:
- Connecting to cloud-hosted MCP servers
- Using MCP servers running in containers or on remote machines
- Leveraging MCP servers that are designed to work over HTTP/SSE
### Why it's important
The MCP (Model Context Protocol) specification includes HTTP/SSE as
standard transport options, and many MCP server implementations are
being built with these transports in mind. Without this support, Zed
users are limited to a subset of the MCP ecosystem. This is particularly
important for:
- Enterprise users who need to connect to centralized MCP services
- Developers working with MCP servers that require network isolation
- Users wanting to leverage cloud-based context providers (e.g.,
knowledge bases, API integrations)
### Implementation approach
The implementation follows Zed's existing architectural patterns:
- **Transports**: Added `HttpTransport` and `SseTransport` to the
`context_server` crate, built on top of the existing `http_client` crate
- **Async handling**: Uses `gpui::spawn` for network operations instead
of introducing a new Tokio runtime
- **Settings**: Extended `ContextServerSettings` enum with a `Remote`
variant to support URL-based configuration
- **UI**: Updated the agent configuration UI with an "Add Remote Server"
option and dedicated modal for remote server management
### Changes included
- [x] HTTP transport implementation with request/response handling
- [x] SSE transport for server-sent events streaming
- [x] `build_transport` function to construct appropriate transport
based on URL scheme
- [x] Settings system updates to support remote server configuration
- [x] UI updates for adding/editing remote servers
- [x] Unit tests using `FakeHttpClient` for both transports
- [x] Integration tests (WIP)
- [x] Documentation updates (WIP)
### Testing
- Unit tests for both `HttpTransport` and `SseTransport` using mocked
HTTP client
- Manual testing with example MCP servers over HTTP/SSE
- Settings validation and UI interaction testing
### Screenshots/Recordings
[TODO: Add screenshots of the new "Add Remote Server" UI and
configuration modal]
### Example configuration
Users can now configure remote MCP servers in their `settings.json`:
```json
{
"context_servers": {
"my-remote-server": {
"enabled": true,
"url": "http://localhost:3000/mcp"
}
}
}
```
### AI assistance disclosure
I used AI to help with:
- Understanding the MCP protocol specification and how HTTP/SSE
transports should work
- Reviewing Zed's existing patterns for async operations and suggesting
consistent approaches
- Generating boilerplate for test cases
- Debugging SSE streaming issues
All code has been manually reviewed, tested, and adapted to fit Zed's
architecture. The core logic, architectural decisions, and integration
with Zed's systems were done with human understanding of the codebase.
AI was primarily used as a reference tool and for getting unstuck on
specific technical issues.
Release notes:
* You can now configure MCP Servers that connect over HTTP in your
settings file. These are not yet available in the extensions API.
```
{
"context_servers": {
"my-remote-server": {
"enabled": true,
"url": "http://localhost:3000/mcp"
}
}
}
```
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Artur Shirokov and Conrad Irwin created
c0fadae
Thought signatures (#42915)
Implement Gemini API's [thought signatures](https://ai.google.dev/gemini-api/docs/thinking#signatures) Release Notes: - Added thought signatures for Gemini tool calls
Richard Feldman created
1c66c39
Enable sweep flag for staff (#42987)
Release Notes: - N/A
Agus Zubiaga created
7e591a7
Fix sweep icon spacing (#42986)
Release Notes: - N/A
Agus Zubiaga created
c44d937
agent_ui: Improve the modal to add LLM providers (#42983)
Closes https://github.com/zed-industries/zed/issues/42807 This PR makes the modal to add LLM providers a bit better to interact with: 1. Added a scrollbar 2. Made the inputs navigable with tab 3. Added some responsiveness to ensure it resizes on shorter windows https://github.com/user-attachments/assets/758ea5f0-6bcc-4a2b-87ea-114982f37caf Release Notes: - agent: Improved the modal to add LLM providers by making it responsive and keyboard navigable.
Danilo Leal created
b4e4e0d
remote: Fix up incorrect logs (#42979)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
097024d
util: Use process spawn helpers in more places (#42976)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
f1c2afd
Update codex docs to include configuration for third-party providers (#42973)
Release Notes: - N/A
Ben Brandt created
ea120df
Revert "git: Remove JobStatus from PendingOp in favour of in-flight p… (#42970)
…runing (#42955)" This reverts commit 696fdd8fed12da625357dc75939b0787c171b5d7. Release Notes: - N/A
Jakub Konka created
d2988ff
vim: Fix snapshot out of bounds indexing (#42969)
Fixes ZED-38X Release Notes: - N/A
Lukas Wirth created
f17d2c9
terminal_view: Fix terminal opening in root directory when editing single file corktree (#42953)
Fixes #42945 ## Problem When opening a single file via command line (e.g., `zed ~/Downloads/file.txt`), the terminal panel was opening in the root directory (/) instead of the file's directory. ## Root Cause The code only checked for active project directory, which returns None when a single file is opened. Additionally, file worktrees weren't handling parent directory lookup. ## Solution Added fallback logic to use the first project directory when there's no active entry, and made file worktrees return their parent directory instead of None. ## Testing - All existing tests pass - Added test coverage for file worktree scenarios - Manually tested with `zed ~/Downloads/file.txt` - terminal now opens in correct directory This improves the user experience for users who frequently open single files from the command line. ## Release Notes - Fixed terminal opening in root directory when editing single files from the command line
Engin Açıkgöz created
c1d9dc3
Try reducing flakiness of fs-event tests by bumping timeout to 4s on CI (#42960)
Release Notes: - N/A
Antonio Scandurra created
696fdd8
git: Remove JobStatus from PendingOp in favour of in-flight pruning (#42955)
The idea is that we only store running (`!self.finished`) or finished (`self.finished`) pending ops, while everything else (skipped, errored) jobs are pruned out immediately. We don't really need them in the grand scheme of things anyway. Release Notes: - N/A
Jakub Konka created
980f8bf
Add a github issue label to shoo the stalebot away (#42950)
Labeling an issue with "never stale" will keep the stalebot away; the bot can get annoying in some situations otherwise. Release Notes: - N/A
Lena created
2a3bcbf
Properly check chunk version on lsp store update (#42951)
Release Notes: - N/A Co-authored-by: Lukas Wirth <lukas@zed.dev>
Kirill Bulatov and Lukas Wirth created
5225a84
For and await highlighting rust (#42924)
Closes #42922 Release Notes: - Fixed Correctly highlighting the 'for' keyword in Rust as keyword.control only in for loops. - Fixed Highlighting the 'await' keyword in Rust as keyword.control
aleanon created
5c70f83
Fix panic when using sweep AI without token env var (#42940)
Release Notes: - N/A
Max Brunsfeld created
10efbd5
agent_ui: Show the "new thread" keybinding for the currently active agent (#42939)
This PR's goal is to improve discoverability of how Zed "remembers" the currently selected agent when hitting `cmd-n` (or `ctrl-n`). Hitting that binding starts a new thread with whatever agent is currently selected. In the example below, I am in a Claude Code thread and if I hit `cmd-n`, a new, fresh CC thread will be started: <img width="500" height="822" alt="Screenshot 2025-11-18 at 1 13@2x" src="https://github.com/user-attachments/assets/d3acd1aa-459d-4078-9b62-bbac3b8c1600" /> Release Notes: - agent: Improved discoverability of the `cmd-n` keybinding to create a new thread with the currently selected agent.
Danilo Leal created
0386f24
Add experimental Sweep edit prediction provider (#42927)
Only for staff Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Ben Kunkle <ben@zed.dev>
Agus Zubiaga , Max Brunsfeld , and Ben Kunkle created
a39ba03
Use metrics-id for sentry user id when we have it (#42931)
This should make it easier to correlate Sentry reports with user reports and github issues (for users who have diagnostics enabled) Release Notes: - N/A
Conrad Irwin created
2c7bcfc
multi_buffer: Work around another panic bug in path_key (#42920)
Fixes ZED-346 for now until I find the time to dig into this bug properly Release Notes: - Fixed a panic in the diagnostics pane
Lukas Wirth created
6bea23e
text: Temporarily remove `assert_char_boundary` panics (#42919)
As discussed in the first responders meeting. We have collected a lot of backtraces from these, but it's not quite clear yet what causes this. Removing these should ideally make things a bit more stable even if we may run into panics later one when the faulty anchor is used still. Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
98da1ea
Fix remote extension syncing (#42918)
Closes #40906 Closes #39729 SFTP uploads weren't quoting the install directory which was causing extension syncing to fail. We were also only running `install_extension` once per remote-connection instead of once per project (thx @feeiyu for pointing this out) so extension weren't being loaded in subsequently opened remote projects. Release Notes: - N/A --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Julia Ryan and Conrad Irwin created
98a83b4
agent_ui: Make input fields in Bedrock settings keyboard navigable (#42916)
Closes https://github.com/zed-industries/zed/issues/36587 This PR enables jumping from one input to the other, in the Bedrock settings section, with tab. Release Notes: - N/A
Danilo Leal created
5f356d0
agent_ui: Fix model name label truncation (#42921)
Closes https://github.com/zed-industries/zed/issues/32739 Release Notes: - agent: Fixed an issue where the label for model names wouldn't use all the available space in the model picker.
Danilo Leal created
73d3f96
collab: Add `external_id` column to `billing_customers` table (#42923)
This PR adds an `external_id` column to the `billing_customers` table. Release Notes: - N/A
Marshall Bowers created
d9cfc2c
Fix formatting in various files (#42917)
This fixes various issues where rustfmt failed to format code due to too long strings, most of which I stumbled across over the last week and some additonal ones I searched for whilst fixing the others. Release Notes: - N/A
Finn Evers created
ee420d5
vim: Change approach to fixing vim's temporary mode bug (#42894)
The `Vim.exit_temporary_normal` method had been updated
(https://github.com/zed-industries/zed/pull/42742) to expect and
`Option<&Motion>` that would then be used to determine whether to move
the cursor right in case the motion was `Some(EndOfLine { ..})`.
Unfortunately this meant that all callers now had to provide this
argument, even if just `None`.
After merging those changes I remember that we could probably play
around with `clip_at_line_ends` so this commit removes those intial
changes in favor of updating the `vim::normal::Vim.move_cursor` method
so that, if vim is in temporary mode and `EndOfLine` is used, it
disables clipping at line ends so that the newline character can be
selected.
Closes [#42278](https://github.com/zed-industries/zed/issues/42278)
Release Notes:
- N/A
Dino created
d801d09
Add @miguelraz to reviewers and support sections (#42904)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Miguel Raz Guzmán Macedo created
3f25d36
agent_ui: Fix text pasting no longer working (#42914)
Regressed in https://github.com/zed-industries/zed/pull/42908 Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
f015368
Update top-ranking issues script (#42911)
- Added Windows category - Removed unused import - Fixed a type error reported by `ty` Release Notes: - N/A
Joseph T. Lyons created
4bf3b9d
zeta2: Output `bucketed_analysis.md` (#42890)
Closes #ISSUE Makes it so that a file named `bucketed_analysis.md` is written to the runs directory after an eval is ran with > 1 repetitions. This file buckets the predictions made by the model by comparing the edits made so that seeing how many times different failure modes were encountered becomes much easier. Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
599a217
workspace: Fix logging of errors in `prompt_err` (#42908)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
b0a7def
Fix track file renames in git panel (#42352)
Closes #30549 Release Notes: - Fixed: Git renames now properly show as renamed files in the git panel instead of appearing as deleted + untracked files <img width="351" height="132" alt="Screenshot 2025-11-10 at 17 39 44" src="https://github.com/user-attachments/assets/80e9c286-1abd-4498-a7d5-bd21633e6597" /> <img width="500" height="95" alt="Screenshot 2025-11-10 at 17 39 55" src="https://github.com/user-attachments/assets/e4c59796-df3a-4d12-96f4-e6706b13a32f" />
ozzy created
57e3bcf
Revise R documentation - about Air in particular (#42755)
Returning the favor from @rgbkrk in https://github.com/posit-dev/air/pull/445 I noticed the R docs around Air are a bit incorrect / out of date. I'll make a few more comments inline. Feel free to take over for any other edits. Release Notes: - Improved R language support documentation
Davis Vaughan created
b2f5611
zeta2: Support qwen3-minimal prompt format (#42902)
This prompt is for a fine-tuned model. It has the following changes, compared to `minimal`: - No instructions at all, except for one sentence at the beginning of the prompt. - Output is a simplified unified diff -- hunk headers have no line counts (e.g., `@@ -20 +20 @@`) - Qwen's FIM tokens are used where possible (`<|file_sep|>`, `<|fim_prefix|>`, `<|fim_suffix|>`, etc.) To evaluate this model: ``` ZED_ZETA2_MODEL=zeta2-exp [usual zeta-cli eval params ...] --prompt-format minimal-qwen ``` This will point to the most recent Baseten deployment of zeta2-exp (which may change in the future, so the prompt-format may get out of sync). Release Notes: - N/A
Oleksiy Syvokon created