e5b0dfb
fix failing tests
Eric Holk created
e5b0dfb
fix failing tests
Eric Holk created
a54932e
Don't snap back to old position when resizing drawer
Eric Holk created
6592319
Merge remote-tracking branch 'origin/main' into agent-drawer
Eric Holk created
6a06f72
extension_ci: Bump update action and fix cache issues (#51716)
This PR bumps the update action again. It also fixes a bug where a cache issue could occur during the extension auto bump and adds update auto-merge for PRs from staff-members in zed-industries/extensions. Release Notes: - N/A
Finn Evers created
9c3aa4b
agent_ui: Remove special casing for previous built in agents (#51713)
Now that the migration has happened, we can stop making these ever present Release Notes: - N/A
Ben Brandt created
5bf6e57
agent_ui: Fix non-compiling tests (#51715)
Release Notes: - N/A
Ben Brandt created
fa6a5af
make clippy script pass
Eric Holk created
a6bde71
Merge remote-tracking branch 'origin/main' into agent-drawer
Eric Holk created
8ca120f
Remove unused window parameters
Eric Holk created
bfa5e88
Simplify New Worktree to only restore active buffer or fullscreen agent panel (#51700)
Dramatically simplifies what "New Worktree" does when forking a workspace. Previously we captured the entire dock structure and all open file paths, then restored them all in the new worktree workspace. Now the behavior is: - If you have an active buffer open, we reopen just that one file (no other buffer state is carried over). - If you do not have an active buffer open, we instead fullscreen (zoom) the agent panel (equivalent to cmd-esc). No other workspace state is carried over. Implementation details: - Replace `capture_dock_state` / `set_dock_structure` / `open_item_abs_paths` with a single `active_file_path` lookup. - Pass `None` for the `init` closure instead of restoring dock layout. - Only reopen the single active file via `open_paths`, with proper error logging (`detach_and_log_err`) instead of silent `.detach()`. - Emit `PanelEvent::ZoomIn` on the agent panel when no active buffer exists, after `focus_panel` to ensure the panel is properly activated first. - Warn when an active file exists but cannot be remapped to the new worktree. Closes AI-87 Release Notes: - N/A
Richard Feldman created
c17bc26
Preserve selected agent when starting thread in new worktree (#51628)
When the user selected a custom agent (e.g. Codex) and chose "Start Thread in New Worktree", the new workspace's panel ignored the selection and defaulted to Zed Agent (NativeAgent). The fix captures `self.selected_agent()` in `handle_worktree_creation_requested` before the async task, passes it through to `setup_new_workspace`, and forwards it to `external_thread` instead of `None`. Closes AI-84 (No release notes because it's still feature-flagged.) Release Notes: - N/A
Richard Feldman created
54da3d9
Change default agent keybindings
Eric Holk created
fa1c08f
Move agent drawer together with threads panel
Max Brunsfeld created
2c3e1ff
Redundant clones
Max Brunsfeld created
fb71715
Restore position configuration for agent + threads panel
Max Brunsfeld created
dc4313f
Clippy
Max Brunsfeld created
4f6c711
Merge branch 'main' into agent-drawer
Max Brunsfeld created
aa3ec11
Merge branch 'main' into agent-drawer
Max Brunsfeld created
9386e20
docs: Update Claude Sonnet 4.6 and Opus 4.6 context windows to 1M (#51695)
## Summary - Update the context window table in `models.md` to reflect that Claude Sonnet 4.6 and Opus 4.6 now support 1M token context windows (previously listed as 200k) - Remove Sonnet 4.5/4.6 from the "may increase in future releases" callout since the 4.6 models are now at 1M Release Notes: - N/A
morgankrey created
f1f61c8
agent_ui: Rename `ConnectionView` to `ConversationView` (#51684)
We now share connections across multiple "ConnectionView"s the naming does not make sense anymore Release Notes: - N/A
Bennet Bo Fenner created
44c73a8
gpui: Fix hash collision panics in ProfilingCollector (#51683)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
9b5d170
editor: Go to previous and next symbol actions (#50777)
Closes discussion #34890 This is similar to the vim prev/next method/section motion, but more flexible because this follows the items in editor's outline (Tree sitter or LSP provided). 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: - Added actions `editor::GoToPreviousSymbol` and `editor::GoToNextSymbol` actions to go to the previous and next outline symbol. This is either the tree sitter outline, or the LSP provided outline depending on the configuration.
Karthik Nishanth created
30b7178
agent_ui: Rename `ConnectionView` to `ConversationView` (#51684)
We now share connections across multiple "ConnectionView"s the naming does not make sense anymore Release Notes: - N/A
Bennet Bo Fenner created
74eb252
editor: Fix panic in `refresh_inline_values` when spanning cross excerpts (#51685)
Fixes ZED-5VQ Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
74dbaeb
debugger: Fall back to cached adapter binaries when offline (#50928)
The Python (debugpy) and Go (delve-shim-dap) debug adapters unconditionally require network access on every debug session start — even when the adapter binary is already cached locally. This makes the debugger completely unusable offline. Python: fetch_debugpy_whl → maybe_fetch_new_wheel hits pypi; failure propagates as a fatal error. Go: install_shim → fetch_latest_adapter_version hits the GitHub API; failure propagates as a fatal error. CodeLLDB and JavaScript adapters already handle this correctly. Fix for Python and Go: Wrap the network fetch in each adapter with a fallback: if the request fails and a previously downloaded adapter exists on disk, log a warning and use the cached version. If no cache exists, the original error propagates unchanged. Logs after the fix: ``` 2026-03-06T16:31:51+05:30 WARN [dap_adapters::python] Failed to fetch latest debugpy, using cached version: getting latest release 2026-03-06T16:31:51+05:30 INFO [dap::transport] Debug adapter has connected to TCP server 127.0.0.1:45533 ``` Limitations: The debugger must be run at least once with internet connectivity to populate the cache on disk. This PR does not change that requirement. Closes #45781 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 automated tests are included. The existing MockDelegate stubs http_client() and fs() as unimplemented!(), so testing the fallback path would require new mock infrastructure. The fix was verified manually by running the debug build offline with and without cached adapters. The CodeLLDB adapter's equivalent fallback (lines 357-374) also has no dedicated test. - [x] Done a self-review taking into account security and performance aspects Release Notes: - Fixed debugger failing to start when offline if a debug adapter was previously downloaded.
Nihal Kumar created
fe302d9
Focus active pane when unfocusing drawer
Max Brunsfeld created
0b846f0
Highlight Agent Panel toggle when drawer is open
Max Brunsfeld created
0152251
Store ACP thread metadata (#51657)
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: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Bennet Bo Fenner , cameron , and Ben Brandt created
6a9a7c0
Fix echo canceller not working (#51673)
Release Notes: - Fixed: echo's on experimental audio pipeline Some more context: - `EchoCanceller` was not implemented on the output side - removes the planned migration to a different sample rate (44100) and channel count (1) - de-duplicate the interleaved `#cfg[]`'s and centralized them in `echo_canceller.rs`
Yara 🏳️⚧️ created
88eef54
Wait to create slash command picker until menu is opened
Max Brunsfeld created
8d79dd7
glsl: Bump to v0.2.2 (#51682)
This PR bumps the version of the GLSL extension to v0.2.2. Release Notes: - N/A Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
zed-zippy[bot] and zed-zippy[bot] created
74caf1a
Avoid holding a potentially-stale reference to drawer's focus handle
Max Brunsfeld created
662f2c7
Update BYOK to 1m context windows (#51625)
Before you mark this PR as ready for review, make sure that you have: - [x] Added a solid test coverage and/or screenshots from doing manual testing - [x] Done a self-review taking into account security and performance aspects - [x] Aligned any UI changes with the [UI checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) Release Notes: - Updated our BYOK integration to support the new 1M context windows for Opus and Sonnet.
Mikayla Maki created
7b35337
glsl: Highlight null as builtin constant (#51680)
Mostly just a test to check whether everything works properly now. Release Notes: - N/A
Finn Evers created
fa7182b
gpui: Add `align-self` methods to `Styled` trait (#51652)
This PR adds the missing methods for the `align-self` css property. The `align_self` field existed on the `StyleRefinement` struct but was inaccessible using the `styled` trait. Release Notes: - Adds `self_start`, `self_end`, `self_center`, `self_flex_start`, `self_flex_end`, `self_baseline`, and `self_stretch` methods to the `trait Styled`
Sebastian Kootz created
ae44563
git_ui: Show uncommitted change count badge on git panel icon (#49624)
## Summary - Implements `icon_label` on `GitPanel` to return the total count of uncommitted changes (`new_count + changes_count`) when non-zero, capped at `"99+"` for large repos. - Updates `PanelButtons::render()` to render that label as a small green badge overlaid on the panel's sidebar icon, using absolute positioning within a `div().relative()` wrapper. - The badge uses `version_control_added` theme color and `LabelSize::XSmall` text with `LineHeightStyle::UiLabel` for accurate vertical centering, positioned at the top-right corner of the icon button. The `icon_label` method already existed on the `Panel`/`PanelHandle` traits with a default `None` impl, and was already implemented by `NotificationPanel` (unread notification count) and `TerminalPanel` (open terminal count) — but was never rendered. This wires it up for all three panels at once. ## Notes - Badge is positioned with non-negative offsets (`top(0)`, `right(0)`) to stay within the parent container's bounds. The status bar's `render_left_tools()` uses `.overflow_x_hidden()`, which in GPUI clips both axes (the `overflow_mask` returns a full content mask whenever any axis is non-`Visible`), so negative offsets would be clipped. - `LineHeightStyle::UiLabel` collapses line height to `relative(1.)` so flex centering aligns the visual glyph rather than a taller-than-necessary line box. - No new data tracking logic — `GitPanel` already maintains `new_count` and `changes_count` reactively. - No feature flag or settings added per YAGNI. ## Suggested .rules additions The following pattern came up repeatedly and would prevent future sessions from hitting the same issue: ``` ## GPUI overflow clipping `overflow_x_hidden()` (and any single-axis overflow setter) clips **both** axes in GPUI. The `overflow_mask()` implementation in `style.rs` returns a full `ContentMask` (bounding box) whenever any axis is non-`Visible`. Absolute-positioned children that extend outside the element bounds will be clipped even if only the X axis is set to Hidden. Avoid negative `top`/`right`/`bottom`/`left` offsets on absolute children of containers that have any overflow hidden — keep badge/overlay elements within the parent's bounds instead. ``` Release Notes: - Added a numeric badge to the git panel sidebar icon showing the count of uncommitted changes. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
ISHIMWE Vainqueur and Danilo Leal created
b338a69
language_selector: Fix language selector query selection (#51581)
Closes https://github.com/zed-industries/zed/issues/51576 Release Notes: - Select first entry in the language selector when matching a query https://github.com/user-attachments/assets/c824c024-d2f1-416e-a347-0eab7bc3ae0a Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu created
8022e9d
extension_ci: Bump update action revision (#51679)
This should put us in a state where everything finally works in its entirety. Release Notes: - N/A
Finn Evers created
e5bb2c6
Fix non-ASCII path:line:column navigation (#51238)
Closes #43329 ## Summary This fixes `path:line:column` navigation for files containing non-ASCII text. Before this change, open path flows were passing the external column directly into `go_to_singleton_buffer_point`. That happened to work for ASCII, but it was wrong for Unicode because external columns are user-visible character positions while the editor buffer stores columns as UTF-8 byte offsets. This PR adds a shared text layer conversion for external row/column coordinates and uses it in the affected open-path flows: - file finder navigation - recent project remote connection navigation - recent project remote server navigation It also adds regression coverage for the Unicode case that originally failed. As a small - necessary - prerequisite, this also adds `remote_connection` test support to `file_finder`'s dev-deps so the local regression test can build and run on this branch. That follows the same feature mismatch pattern previously fixed in #48280. I wasn't able to locally verify the tests/etc. w/o the addition... so I've rolled it into this PR. Tests are green. The earlier attempt in #47093 was headed in the right direction, but it did not land and did not include the final regression coverage requested in review. ## Verification - `cargo fmt --all -- --check` - `./script/clippy -p text` - `./script/clippy -p file_finder` - `./script/clippy -p recent_projects` - `cargo test -p file_finder --lib --no-run` - `cargo test -p file_finder file_finder_tests::test_row_column_numbers_query_inside_file -- --exact` - `cargo test -p file_finder file_finder_tests::test_row_column_numbers_query_inside_unicode_file -- --exact` - `cargo test -p text tests::test_point_for_row_and_column_from_external_source -- --exact` ## Manual I reproduced locally on my machine (macOS) w/ a stateless launch using a Unicode file (Cyrillic) Before: - `:1:5` landed too far left - `:1:10` landed around the 4th visible Cyrillic character After: - `:1:5` lands after 4 visible characters / before the 5th - `:1:10` lands after 9 visible characters / before the 10th Release Notes: - Fixed `path:line:column` navigation so non-ASCII columns land on the correct character. --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
loadingalias and Kirill Bulatov created
52fb089
ep: Track e2e latency (#51678)
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: Oleksiy <oleksiy@zed.dev>
Ben Kunkle and Oleksiy created
70a742e
git_ui: Don't display the merge conflict notification if an agent is running (#51498)
This PR is motivated by internal feedback in which the notification that we show inviting to resolve merging conflicts with an agent also pops up if the agent itself ran `git merge`. In this case, the notification is unnecessary noise. So, what I'm doing here is simply _not_ showing it if there's a running agent. I want to note that this change is accepting a trade-off here, in which there could be cases that even if an agent is running, the notification can still be useful. There could be other ways to identify whether the agent is running `git merge`, but they all felt a bit too complex for the moment. And given this is reasonably an edge case, I'm favoring a simple approach for now. Release Notes: - N/A --------- Co-authored-by: Lukas Wirth <lukas@zed.dev>
Danilo Leal and Lukas Wirth created
b128341
Merge branch 'main' into agent-drawer
Max Brunsfeld created
723d809
Require that drawer views be focusable
Max Brunsfeld created
ee24bef
html: Bump to v0.3.1 (#51518)
This PR bumps the version of the HTML extension to v0.3.1. Release Notes: - N/A Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
zed-zippy[bot] and zed-zippy[bot] created
657edd3
extension_ci: Use temporary fork for release action (#51674)
Moving to the for here before the fix gets upstreamed. We might revisit this at a later point anyway. Release Notes: - N/A
Finn Evers created
c54fe0f
git_ui: Add file and folder icons to the Git panel (#51000)
Closes https://github.com/zed-industries/zed/discussions/49740 Adds optional file and folder icons to the Git panel so its file list is easier to scan, especially in larger repositories. - add folder icons for Git panel entries - add Git panel settings for file and folder icon visibility --- Release Notes: - Made the Git Panel aware of icon themes. - Added the ability to render file type icons in the Git panel. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Jongchan and Danilo Leal created
2cea931
Revert "Fix window drags when dragging button/input on titlebar in macOS" (#51666)
Reverts zed-industries/zed#51400
Smit Barmase created
b6fec83
Fix Ayu Dark/Mirage dim terminal colors appearing as white (#51462)
## Summary Closes #46126 Dim terminal colors in **Ayu Dark** and **Ayu Mirage** were defined as light pastels instead of muted/darker versions of the normal colors. On a dark background, the APCA minimum contrast algorithm boosted these already-light colors toward white, making "dimmed" text (e.g. zsh-autosuggestions) appear brighter than normal text. ### Root cause | Color | Ayu Dark (before) | Ayu Dark (after) | Pattern | |-------|-------------------|------------------|---------| | dim_foreground | `#0d1016` (= background!) | `#85847f` | Muted foreground | | dim_red | `#febab9` (light pink) | `#a74f53` | 70% of normal red | | dim_green | `#d8eca8` (light pastel) | `#769735` | 70% of normal green | | dim_yellow | `#ffd9aa` (light pastel) | `#b17d3a` | 70% of normal yellow | The fix follows the same convention as **Gruvbox** and **One Dark**, where dim = ~70% brightness of the normal color. **Ayu Light** was already correct (dim colors are darker, which is correct for light backgrounds). ## Test plan - [ ] Open terminal in Zed with Ayu Dark theme - [ ] Enable zsh-autosuggestions (or any tool that uses dim/faint ANSI colors) - [ ] Type a partial command to trigger autosuggestions - [ ] Verify suggested text appears as muted/dim, not bright white - [ ] Repeat with Ayu Mirage theme - [ ] Verify Ayu Light theme is unaffected --- Release Notes: - Improved some Ayu Dark/Mirage theme's terminal colors. Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
tiwari91 and Danilo Leal created
0e2ce49
markdown_preview: Fix not re-rendering issue when editing by agent (#50583)
Closes #47900 ## Root cause The current markdown preview only re-renders on `EditorEvent::Edited, DirtyChanged, ExcerptsEdited`, but agent edits are implemented via [`buffer.edit()`](https://github.com/dongdong867/zed/blob/eb3f92708b6dc67bb534c1c44a200c0cb5c4997b/crates/agent/src/edit_agent.rs#L375) which does not guaranty to emit the `EditorEvent::Edited` event. Causing the markdown preview stuck on the last received parsed markdown. ## Applied fix Subscribing to `EditorEvent::BufferEdited` when initializing the markdown preview view. This will cause the view to update when received `BufferEdited` event including agent edits to the file. ## As is/ To be As is | To be --- | --- <video src="https://github.com/user-attachments/assets/a0b13467-7758-4572-ae01-bcbc40beff6c" /> | <video src="https://github.com/user-attachments/assets/3b5463f3-46ad-4fe6-8563-ceb4347035db" /> --- 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 markdown preview not re-rendering when edited by agent
Dong created
70a5669
agent_servers: Fix Claude Agent model resetting to default (#51587)
#### Fixes #51082 #### Description : When a user configures `default_config_options` (e.g. a specific model) for an ACP agent, the setting was only applied when creating a new session. Resuming or loading an existing session (e.g. from history) skipped this step, causing the model dropdown to revert to "Default (recommended)". #### Fix : Extract the config options defaulting logic into a shared helper apply_default_config_options and call it consistently across all three session entry points: new_session, resume_session, and load_session Release Notes: #### Release notes : Fixed model dropdown resetting to "Default (recommended)" when opening a previous conversation from history. Configured models (via default_config_options) are now correctly applied when resuming or loading existing sessions. #### Video : [Screencast from 2026-03-15 12-55-58.webm](https://github.com/user-attachments/assets/977747b9-390c-4f78-91fc-91feace444e1)
Om Chillure created