221b3a6
Always show branch name in sidebar
Richard Feldman created
221b3a6
Always show branch name in sidebar
Richard Feldman created
5a4819b
Move worktree tooltip out of icon
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Richard Feldman and Anthony Eid created
d4863ec
Add worktree icon with hover
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Richard Feldman and Anthony Eid created
273fe41
Thread worktree path into sidebar
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Richard Feldman and Anthony Eid created
8b6df91
Terminate auto-created worktree paths with the original project name
Max Brunsfeld created
f3fb4e0
Reject shell substitutions in terminal tool commands (#51689)
Harden the terminal tool's permission system to reject commands
containing shell substitutions and interpolations (`$VAR`, `${VAR}`,
`$(…)`, backticks, `$((…))`, `<(…)`, `>(…)`) before they reach terminal
creation.
## Changes
### Shell command parser (`shell_command_parser`)
- Added structured terminal command-prefix extraction with env-var
prefix support
- Added parser-backed validation that classifies commands as
Safe/Unsafe/Unknown
- Extended normalized command extraction to include scalar env-var
assignments in order
- Preserved quoted assignment values when they contain whitespace or
special characters
### Pattern extraction (`agent/pattern_extraction`)
- Updated terminal pattern extraction to use structured parser output
- Included env-var prefixes in generated allow patterns
- Normalized regex token boundaries to `\s+` while preserving display
whitespace
### Tool permissions (`agent/tool_permissions`)
- Added invalid-terminal-command rejection for forbidden
substitutions/interpolations
- Added unconditional allow-all bypass (global default Allow, or
terminal-specific Allow with empty patterns)
- Preserved hardcoded denial precedence over allow-all
### Terminal tool (`agent/tools/terminal_tool`)
- Updated tool description and input schema to explicitly prohibit shell
substitutions
- Added comprehensive SEC-264 regression test suite (20 new tests)
covering:
- All forbidden constructs (`${HOME}`, `$1`, `$?`, `$$`, `$@`,
`$(whoami)`, backticks, `$((1+1))`, `<(ls)`, `>(cat)`, env-prefix
variants, multiline, nested)
- Allow-all exception paths (global and terminal-specific)
- Hardcoded-denial precedence
- Env-prefix permission flow (matching, value mismatch rejection,
multiple assignments, quoted whitespace)
Closes SEC-264
Release Notes:
- Terminal tool permissions regexes can now match environment variables
(e.g. `FOO=bar cmd arg1 arg2`)
- If terminal tool permissions have active permissions regexes running
on them, then bare interpolations like `$FOO` are disallowed for
security, since regexes wouldn't be able to match on them.
Richard Feldman created
977cd6a
Move sidebar back out of the panel (#51723)
Reverts https://github.com/zed-industries/zed/pull/51241 Release Notes: - N/A
Max Brunsfeld created
7788784
Fix "Show Edit Predictions For This Buffer" button (#50845)
Closes #48393 When switching the language of an unsaved buffer (e.g., from Plain Text to JavaScript), the editor's edit_prediction_settings were not recalculated. This caused the "This Buffer" toggle in the edit prediction menu to show a stale state, making the first click a no-op. I added a call to update_edit_prediction_settings in the LanguageChanged event handler so the editor immediately reflects the correct edit prediction state for the new language. 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 the "Show Edit Predictions For This Buffer" toggle being a no-op in unsaved buffers after switching the buffer's language.
Ayush Kumar Anand created
f7ec531
worktree: Fix binary files misdetected as UTF-16 (#50890)
Closes #50785 Opening a .wav file (PCM 16-bit) caused Zed to freeze because the binary detection heuristic in `analyze_byte_contentmisidentified` it as UTF-16LE text. The heuristic determines UTF-16 encoding solely by checking whether null bytes are skewed toward even or odd positions. PCM 16-bit audio with small sample values produces bytes like `[sample, 0x00]`, creating an alternating null pattern at odd positions that is indistinguishable from BOM-less UTF-16LE by position alone. ### Why not just add more binary headers? The initial approach (https://github.com/zed-industries/zed/commit/32d8bd700943ae7cb46231bc08d752d8b7987432) was to add audio format signatures (RIFF, OGG, FLAC, MP3) to known binary header. While this solved the reported `.wav` case, any binary format containing small 16-bit values (audio, images, or arbitrary data) would still be misclassified. Adding headers is an endless game that cannot cover unknown or uncommon formats. ### Changes * Adds `is_plausible_utf16_text` as a secondary validation: when the null byte skew suggests UTF-16, decode the bytes and count code units that fall in C0/C1 control character ranges (U+0000–U+001F, U+007F–U+009F, excluding common whitespace) or form unpaired surrogates. Real UTF-16 text has near-zero such characters. I've set the threshold at 2% — note that this is an empirically derived value, not based on any formal standard. **Before fix** <img width="1147" height="807" alt="스크린샷 2026-03-06 오후 9 00 07" src="https://github.com/user-attachments/assets/2e6e47f9-f5e7-4cab-9d41-cc3dd20f9142" /> **After fix** <img width="1280" height="783" alt="스크린샷 2026-03-06 오전 1 17 43" src="https://github.com/user-attachments/assets/3fecea75-f061-4757-9972-220a34380d67" /> 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 - [ ] 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 binary files (e.g. WAV) being misdetected as UTF-16 text, causing Zed to freeze.
Lee ByeongJun created
74ad758
keymap_editor: Remove redundant parentheses when displaying keymap context (#50906)
Closes #34976 ## Root Cause The current implementation of `fmt::Display` in `KeyBindingContextPredicate` hardcodes a parentheses around `And` and `Or` cases. Causing the text displayed on the keymap editor to have nested parentheses. This PR refactors the display logic and make the parentheses added only when there's nested operator. ## As is/ To be As is | To be --- | --- <img width="800" height="1101" alt="Screenshot 2026-03-06 at 15 07 10" src="https://github.com/user-attachments/assets/33b4366d-4d16-48db-9cc6-b79d6cc7ddc7" /> | <img width="800" height="977" alt="Screenshot 2026-03-06 at 14 54 57" src="https://github.com/user-attachments/assets/3d5ed38d-949d-4265-8fad-e29250c3a285" /> ## Test coverage <img width="800" height="916" alt="Screenshot 2026-03-06 at 15 00 42" src="https://github.com/user-attachments/assets/5846b908-5c86-48a7-919e-a7ae198484a8" /> 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: - keymap_editor: Remove redundant parentheses when displaying keymap context --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Dong and Ben Kunkle created
5aa037e
Disable the `tilt` LSP by default for "Starlark" files (#51709)
This matches how the `buck2-lsp` works for that extension. Fixes https://github.com/zaucy/zed-starlark/issues/18 Before you mark this PR as ready for review, make sure that you have: - [ ] (n/a) 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
Alejandro Fernández Gómez 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
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
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
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
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
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
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
b0fd101
file_finder: Fix project root appearing in file paths while searching when hide_root=true (#51530)
Closes #45135 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 project root name appearing in file paths while searching in file finder.
Giorgi Merebashvili created
3d7d2ca
Add autolabeling the guild PRs (#51663)
Quick-and-dirty version as we're trying this out with the first cohort. Release Notes: - N/A
Lena created
93f3286
gpui: Add Unicode range for Bengali (#51659)
Cameron Mcloughlin created
491ff01
Fix outline filtering always selecting last match (#50594)
Fixes #29774 When filtering the outline panel, matches with equal fuzzy scores previously defaulted to the last item due to iterator `max_by_key` semantics. This caused the bottommost match (e.g. `C::f`) to always be pre-selected regardless of cursor position. Changes: - Select the match nearest to the cursor when scores are tied, using a multi-criteria comparison: score -> cursor containment depth -> proximity to cursor -> earlier index - Move outline search off the UI thread (`smol::block_on` -> async `cx.spawn_in`) to avoid blocking during filtering - Wrap `Outline<Anchor>` in `Arc` for cheap cloning into the async task - Add `match_update_count` to discard results from stale queries Tests : Adds a regression test: `test_outline_filtered_selection_prefers_cursor_proximity_over_last_tie` which passes Video : [Screencast from 2026-03-03 17-01-32.webm](https://github.com/user-attachments/assets/7a27eaed-82a0-4990-85af-08c5a781f269) Release Notes: Fixed the outline filtering always select last match --------- Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Om Chillure and Kirill Bulatov created
603e6d6
agent_ui: Disable editing and regeneration for subagent messages (#51654)
We had inconsistent handling of this read-only behavior. Now subagents should behave the same as agents that don't support editing Release Notes: - agent_ui: Fix inconsistent behavior for subagent views when focusing on previous messages.
Ben Brandt created
2a7bd84
audio: Remove unbounded input queue in favor of 1-element queue (#51647)
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com> 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: - Improve recovery of audio latency after CPU-intensive period. Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Piotr Osiewicz and Jakub Konka created
357ee0f
vim: Fix helix select next match panic when search wraps around (#51642)
Fixes ZED-4YP Sort and deduplicate anchor ranges in do_helix_select before passing them to select_anchor_ranges. When the search wraps past the end of the document back to the beginning, the new selection is at a lower offset than the accumulated prior selections, producing unsorted anchors that crash the rope cursor with 'cannot summarize backward'. Release Notes: - Fixed a panic in helix mode with search selecting wrapping around the document end
Lukas Wirth created
923b512
vim: Fix dot repeat ignoring recorded register (#50753)
When a command used an explicit register (e.g. `"_dd` or `"add`), the subsequent dot repeat (`.`) was ignoring that register and using the default instead. Store the register at recording start in `recording_register_for_dot`, persist it to `recorded_register_for_dot` when recording stops, and restore it in `Vim::repeat` when no explicit register is supplied for `.`. An explicit register on `.` (e.g. `"b.`) still takes precedence. This commit also updates the dot-repeat logic to closely follow Neovim's when using numbered registers, where each dot repeat increments the register. For example, after using `"1p`, using `.` will repeat the command using `"2p`, `"3p`, etc. Closes #49867 Release Notes: - Fixed vim's repeat . to preserve the register the recorded command used - Updated vim's repeat . to increment the recorded register when using numbered registers --------- Co-authored-by: dino <dinojoaocosta@gmail.com>
Finn Eitreim and dino created