1764337
agent: Fix plan summary text overflow in Claude Code threads (#39603)
Click to expand commit body
| Before | After |
|--------|--------|
| <img width="700" height="764" alt="Screenshot 2025-10-06 at 9 43@2x"
src="https://github.com/user-attachments/assets/faf7e93f-f0d8-4bea-9f8d-272c83b41b18"
/> | <img width="700" height="394" alt="Screenshot 2025-10-06 at 9 43
2@2x"
src="https://github.com/user-attachments/assets/3f404e69-de3a-44c2-8111-0212d5d91199"
/> |
Release Notes:
- agent: Fixed a bug in Claude Code threads where the plan summary text
would overflow beyond its container.
Danilo Leal
created
3707102
title_bar: Show git status indicator icon in the title bar (#38029)
Click to expand commit body
See related discussion #37046.
<details>
<summary>Screenshots</summary>
**No Changes**
<img
src="https://github.com/user-attachments/assets/e814da6e-bc9b-4edd-b37a-6bb4680d5bb3"
/>
**Added**
<img
src="https://github.com/user-attachments/assets/07ffdf90-08cb-43f4-b2bd-9966a21e08de"
/>
**Changed**
<img
src="https://github.com/user-attachments/assets/7e13b999-83b3-41ea-b2ab-baaa1541b169"
/>
**Deleted**
<img
src="https://github.com/user-attachments/assets/a77fc7e3-a026-419a-87bd-7146c3ca46a9"
/>
**Conflicts**
<img
src="https://github.com/user-attachments/assets/17e7e35c-d81b-4660-808d-08e12107ea2d"
/>
</details>
Release Notes:
- Show git status indicator icon in the title bar
Lev Zakharov
created
5263f51
terminal: Fix terminal cloning on WSL (#39552)
Click to expand commit body
Should close #39428
The working directory of the `wsl.exe` program is set to a Linux path,
which is invalid on the Windows side, causing the terminal to crash. The
first spawn works because there is no active terminal view, allowing a
new shell (which checks for the remote) to be created. I cannot explain
why it works on SSH remote clients, but I may be missing something in
the remote connection implementation.
I don't have a Windows machine to test this, so I would appreciate
someone testing it. 🙏🏼
Release Notes:
- Fixed an issue where WSL terminals could not be splitted
---------
Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
Marco Mihai Condrache
created
93cd10a
terminal: Re-enable activation scripts on windows (#39604)
4bd7ef8
acp_thread: If available, use git bash over powershell in terminal tool (#39466)
Click to expand commit body
Release Notes:
- When git bash is installed, agents will now use that over powershell
when invoking terminal commands
Lukas Wirth
created
d1e2a1f
gpui: Assert validity of text runs for `StyleText` (#39581)
Click to expand commit body
Should help with figuring out the char boundary panic in text shaping on
windows
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
79a8986
settings ui: Add scrollbar and other design details (#39504)
Click to expand commit body
Release Notes:
- N/A
Danilo Leal
created
d2b91eb
settings ui: Add numeric steppers to settings UI (#39491)
Click to expand commit body
This PR adds the numeric stepper component to the settings ui and
implements some settings that rely on this component as well.
I also switched {buffer/ui}_font_weight to the `gpui::FontWeight` type
and added a manual implementation of the Schemars trait. This allows Zed
to send min, max, and default information to the JSON LSP when a user is
manually editing the settings file.
The numeric stepper elements added to the settings ui are below:
- ui font size
- ui font weight
- Buffer font size
- Buffer font weight
- Scroll sensitivity
- Fast scroll sensitivity
- Vertical scroll margin
- Horizontal scroll margin
- Inline blame padding
- Inline blame delay
- Inline blame min column
- Unnecessary code fade
- Tab Size
- Hover popover delay
Release Notes:
- N/A
Anthony Eid
created
c26937a
zed: Show GPUI Inspector item in Dev build menus (#39287)
Click to expand commit body
# Why
I have find out that this tool exists by browsing Keymap Editor. I think
it would be nice for its discoverability to show it in the app menus in
Dev builds.
# How
Add "GPUI Inspector" app menu item conditionally for Dev builds only.
Release Notes:
- N/A
# Preview
<img width="1014" height="948" alt="Screenshot 2025-10-01 at 14 36 48"
src="https://github.com/user-attachments/assets/c0409e67-1f4d-44f3-90b3-293ad4fe5c73"
/>
Bartosz Kaszubowski
created
da82eec
editor: Fix utf8 boundary panic in `process_completion_for_edit` (#39561)
Click to expand commit body
Fixes ZED-1WH
Release Notes:
- Fixed panic when requesting completions after a multibyte character
Lukas Wirth
created
2bfcd60
editor: Shrink `DisplayMapSnapshot` from `824` to `256` bytes (#39568)
Click to expand commit body
We have unnecessary clones for the fields here as most of the snapshots
contain the others hierarchically.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
9c7369f
terminal: Fix rendering of zero-width combining characters (#39526)
Click to expand commit body
Add support for rendering Unicode combining characters (diacritics) in
the terminal's batched text runs.
- Add append_zero_width_chars() to handle combining marks
- Integrate zero-width chars into all batching code paths
- Update cell extras tracking logic
- Add test for combining character rendering
Fixes display of é, ñ, ô and other diacritics.
Closes #39525
Release Notes:
- Fixed: NFD/NFKD normalized text (e.g., é as e + ◌́) not rendering in
integrated terminal
Before:
<img width="874" height="688" alt="SCR-20251004-udnj"
src="https://github.com/user-attachments/assets/8d9f9c9f-dac4-4382-92c2-8b6c1d817abd"
/>
After:
<img width="873" height="686" alt="SCR-20251004-ulsw"
src="https://github.com/user-attachments/assets/fbd5cdc7-fdd6-44dc-8b05-cc425644f1a0"
/>
The editor settings control module was the first prototype of what a
settings UI could look like in Zed, but the code is outdated now and is
no longer used. So this PR removes it for cleanup.
Release Notes:
- N/A
Anthony Eid
created
ee557fb
Add window close keybindings for Settings UI (#39578)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Mikayla Maki
created
f9919f9
Swap the start building and login buttons (#39576)
Click to expand commit body
New onboarding screen:
<img width="1027" height="700" alt="Screenshot 2025-10-05 at 10 38
57 PM"
src="https://github.com/user-attachments/assets/5dc49e53-68e7-4559-8ce0-1bada629781d"
/>
This PR also adds a new telemetry event: `Welcome Start Building
Clicked`
Release Notes:
- N/A
I was looking at the rope implementation and some of the existing bugs
that crash in there, and I ran cargo-mutants to inspect test coverage. I
was motivated by bugs like
https://github.com/zed-industries/zed/issues/38556 but this doesn't fix
it and the bug may well be at a higher layer.
This PR adds coverage for a few functions that aren't tested today. I
didn't find any actual bugs yet.
I can see this tree is pretty sparse on docstrings so if you think these
are too verbose I can take them out or drop the whole PR.
Release Notes:
- N/A
Martin Pool
created
d5a4890
remote: Keep full shell path on wsl (#39555)
cd61bfb
docs: Fix path of language extensions on Linux (#39425)
Click to expand commit body
Release Notes:
- N/A
Be
created
469ecfb
Emit less update events for odd FS events (#39557)
Click to expand commit body
When running flycheck, I've noticed that scrolling starts to lag:
https://github.com/user-attachments/assets/b0bef0a3-ccbd-479d-a385-273398086d38
When checking the trace, it is notable that project panel updates its
entire tree multiple times during flycheck:
<img width="2032" height="1136" alt="image"
src="https://github.com/user-attachments/assets/d1935e77-3b00-4be5-a12a-8a17a9d64202"
/>
[scrolling.trace.zip](https://github.com/user-attachments/files/22710852/scrolling.trace.zip)
Turns out, `target/debug` directory is loaded by Zed (presumably,
reported by langserver as there are sources generated by bindgen and
proto that need to be loaded), and `target/debug/build` directory
received multiple events of a `None` kind for Zed, which trigger the
rescans.
Rework the logic to omit the `None`-kind events in Zed, and to avoid
excessive repo updates if not needed.
Release Notes:
- Improved worktree FS event emits in gitignored directories
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Kirill Bulatov
and
Cole Miller
created
46b6ada
markdown: Add HTML `table` element support (#38605)
Click to expand commit body
Follow-up: https://github.com/zed-industries/zed/pull/38590
**Note**: this PR contains changes from the [previous
PR](https://github.com/zed-industries/zed/pull/38590), when that PR gets
merged we should see the real changes.
This PR fixes 4 things in order to make:
1. Add html/markdown minifier to remove all the **\t** and **\n**
characters. This is needed as you cannot create new lines with markdown
by just adding an enter to the source file.
2. The event Event::HTML only contained a chunk of the real html for
multiline HTML code. I fixed this by storing the currently watched HTML
inside a buffer and at the end we parse it into the right elements.
Instead of trying to parse a chunck into multiple elements which would
always fail before.
3. Add support for html tables.
4. Fixed panic that occured when table does not have an header.
I also decided to keep the html minifier inside Zed, because making it a
dependency for just a few 100 lines seems to be an overkill. The
original crate had a few cve in their dependencies, so figured this
would be the best.
**Html table support**
<img width="1439" height="801" alt="Screenshot 2025-09-27 at 12 19 07"
src="https://github.com/user-attachments/assets/a884cc6f-cf47-45a2-81fa-91300c7bbf3f"
/>
**Before & after Zed's README (no changes)**
<img width="3440" height="1378" alt="Screenshot 2025-09-27 at 12 34 47"
src="https://github.com/user-attachments/assets/1273b094-fb24-4abd-bffa-56ef3b44670c"
/>
Release Notes:
- Markdown: Added support for html tables
Remco Smits
created
1a9e9c5
workspace: Add `Close Multibuffers` pane context menu entry (#39199)
## Problem
When splitting a terminal pane, the new pane opens in the root directory
(`/`) instead of preserving the current working directory of the
original terminal.
For example, when working in `/Users/modestnerd/Developer/Projects/zed`
(my pc) and splitting the terminal pane, the new pane would open in `/`
instead of staying in the current directory.
## Solution
Restructured the fallback logic in
`new_pane_with_cloned_active_terminal` (terminal_panel.rs:452-456) to
ensure `default_working_directory(workspace, cx)` is called as a
fallback even when a terminal view exists but its `working_directory()`
returns `None`.
The fix changes the nested `and_then` to use `or_else` for the fallback,
ensuring the working directory is always properly resolved before
entering the async block.
Release Notes:
- Fixed terminal split pane opening in wrong directory instead of
preserving the current working directory
Ngonidzashe Mangudya
created
bcd2d26
Fix CRLF handling in display-only terminals (#39538)
Click to expand commit body
## Before
<img width="558" height="739" alt="Screenshot 2025-10-03 at 11 08 43 PM"
src="https://github.com/user-attachments/assets/5dae7f9d-03b6-48eb-826d-e2be60320546"
/>
## After
<img width="551" height="843" alt="Screenshot 2025-10-04 at 8 29 51 PM"
src="https://github.com/user-attachments/assets/2b06dcec-7758-42ad-acf0-c32a7f50f1b1"
/>
No release notes because we aren't using display-only terminals anywhere
yet (`codex-acp` will be the first to use them, and it's still
feature-flagged right now).
Release Notes:
- N/A
Richard Feldman
created
b32075c
Decouple agent reregistration from settings changes (#39528)
Click to expand commit body
Fixes a `--release`-only bug in feature-flagged agents where the feature
flag isn't picked up in some situations (unless there was a settings
change to go with it - due to an early return when settings didn't
change).
Release Notes:
- N/A
Richard Feldman
created
21e75b8
Pass through `cwd` from ACP extension (#39511)
Click to expand commit body
If we get a `cwd` from ACP (because e.g. `codex-acp` is driving the
terminal rather than our own PTY) then use that to display the `cwd` of
the terminal process.
Release Notes:
- N/A
Richard Feldman
created
978951b
Don't use PTY in the display-only terminal (#39510)
Click to expand commit body
This only affects `codex-acp` for now.
Not using the PTY in display-only terminals means they don't display the
login prompt (or spurious `%`s) at the end of terminal output
renderings.
Release Notes:
- N/A
This pull request adds the ability to configure the setting to hide or
show the status bar, as described in discussion:
https://github.com/zed-industries/zed/discussions/38591
The original [PR
#38974](https://github.com/zed-industries/zed/pull/38974#issuecomment-3362020879)
was merged but reverted due to hidden conflicts. As per @ConradIrwin 's
[request](https://github.com/zed-industries/zed/pull/38974#issuecomment-3362020879),
I am recreating the PR on top of updated main branch.
Release Notes:
- Added an experimental setting `"status_bar": { "experimental.show":
false}` to hide the status bars.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
https://github.com/user-attachments/assets/27bf58df-b8c4-4730-856b-d62ec639a552
Previously the caption buttons (minimize, maximize, close) would
disappear off the right side of the title bar.
Release Notes:
- N/A
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
John Tur
and
Julia Ryan
created
9fe46dc
Fix double-clicking on non-empty title bar area (#39500)
Click to expand commit body
Closes #38685
Release Notes:
- N/A
---------
Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>
John Tur
and
Julia Ryan
created
aced13b
Fix ordering of multibuffer excerpts (#39476)
Click to expand commit body
The ordering of path-based excerpts in multibuffers regressed with
#38744, because we changed the `path` field of `PathKey` to be a string
(from `std::path::Path`) and used the derived `Ord` implementation,
which doesn't agree with the path-based order of worktree traversals.
This PR fixes that by using `RelPath` for `PathKey`. Instead of using
`File::full_path`, which can be absolute, we always use `File::path` and
distinguish different worktrees using their ID.
Release Notes:
- N/A
---------
Co-authored-by: Lukas Wirth <me@lukaswirth.dev>
Cole Miller
and
Lukas Wirth
created
2859cbd
Make `ShellBuilder::new` not branch on a remote shell (#39493)
Click to expand commit body
Release Notes:
- Fixed claude code agent login on remotes
Co-authored-by: Max Brunsfeld <max@zed.dev>
Co-authored-by: Cole Miller <cole@zed.dev>
Lukas Wirth
,
Max Brunsfeld
, and
Cole Miller
created
4443f61
x_ai: Add support for Grok 4 Fast (#39492)
Click to expand commit body
This PR adds support for Grok 4 Fast.
Release Notes:
- Added support for Grok 4 Fast models.
Co-authored-by: David Kleingeld <davidsk@zed.dev>
6707ff3
Make outline modal work in channel notes (#39481)
Click to expand commit body
This fixes an issue where the outline modal would not work in editors
that had no explicit workspace attached to them.
Release Notes:
- Enabled the outline modal to work in channel notes.
This is the first step to allowing users to type into a numeric stepper
to set its value. This PR makes the numeric stepper take in a generic
type `T` where T: `NumericStepperType`
```rust
pub trait NumericStepperType:
Display
+ Add<Output = Self>
+ Sub<Output = Self>
+ Copy
+ Clone
+ Sized
+ PartialOrd
+ FromStr
+ 'static
{
fn default_format(value: &Self) -> String {
format!("{}", value)
}
fn default_step() -> Self;
fn large_step() -> Self;
fn small_step() -> Self;
fn min_value() -> Self;
fn max_value() -> Self;
}
```
This allows setting of step sizes and min/max values as well as making
the component easier to use.
cc @danilo-leal
Release Notes:
- N/A
---------
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Gaauwe Rombouts <mail@grombouts.nl>
Anthony Eid
,
Mikayla Maki
, and
Gaauwe Rombouts
created
Closes https://github.com/zed-industries/zed/issues/39406
Follow up to https://github.com/zed-industries/zed/pull/38726
This PR introduces the `agent_buffer_font_size` setting and renames
`agent_font_size` to `agent_ui_font_size`. This allows whoever wants
`buffer_font_size` and `agent_buffer_font_size` to match, as well as
folks who want a slightly smaller size only in the agent panel (which...
also looks just better by default!).
Release Notes:
- agent: Introduced the `agent_buffer_font_size` setting and renamed
`agent_font_size` to `agent_ui_font_size`, allowing for granular buffer
font size control in the agent panel vs. regular editors.
Danilo Leal
created
504216c
settings: Fix JSON schema for `ExtensionCapabilityContent` (#39478)
Click to expand commit body
This PR fixes the JSON schema for the `ExtensionCapabilityContent`.
Having the nested structs in the variants caused the `kind` property to
not be generated properly. Inlining the fields into the variants fixes
this.
Release Notes:
- N/A
Marshall Bowers
created
3bf71c6
extension_host: Load granted extension capabilities from settings (#39472)
Click to expand commit body
This PR adds the ability to control the capabilities granted to
extensions by the extension host via the new
`granted_extension_capabilities` setting.
This setting is a list of the capabilities granted to any extension
running in Zed.
The currently available capabilities are:
- `process:exec` - Grants extensions the ability to invoke commands
using
[`zed_extension_api::process::Command`](https://docs.rs/zed_extension_api/latest/zed_extension_api/process/struct.Command.html)
- `download_file` - Grants extensions the ability to download files
using
[`zed_extension_api::download_file`](https://docs.rs/zed_extension_api/latest/zed_extension_api/fn.download_file.html)
- `npm:install` - Grants extensions the ability to install npm packages
using
[`zed_extension_api::npm_install_package`](https://docs.rs/zed_extension_api/latest/zed_extension_api/fn.npm_install_package.html)
Each of these capabilities has parameters that can be used to customize
the permissions.
For instance, to only allow downloads from GitHub, the `download_file`
capability can specify an allowed `host`:
```json
[
{ "kind": "download_file", "host": "github.com", "path": ["**"] }
]
```
The same capability can also be granted multiple times with different
parameters to build up an allowlist:
```json
[
{ "kind": "download_file", "host": "github.com", "path": ["**"] },
{ "kind": "download_file", "host": "gitlab.com", "path": ["**"] }
]
```
When an extension is not granted a capability, the associated extension
APIs protected by that capability will fail.
For instance, trying to use `zed_extension_api::download_file` when the
`download_file` capability is not granted will result in an error that
will be surfaced by the extension:
```
Language server phpactor:
from extension "PHP" version 0.4.3: failed to download file: capability for download_file https://github.com/phpactor/phpactor/releases/download/2025.07.25.0/phpactor.phar is not granted by the extension host
```
Release Notes:
- Added a `granted_extension_capabilities` setting to control the
capabilities granted to extensions.
Marshall Bowers
created
456ba32
macOS: Fix keyboards shortcuts does not work until mouse clicked inside Zed (#39467)
Click to expand commit body
Closes #38258
Regressed in https://github.com/zed-industries/zed/pull/33334
Release Notes:
- Fixed an issue on macOS where keyboard shortcuts wouldn’t work until
you clicked inside Zed.
Smit Barmase
created
9aeb617
Keep folds at cursor open for "fold at level" (#39396)
Click to expand commit body
Closes #39308
Also fixes a possible bug in `apply_selected_diff_hunks()` caused by
reversed selections.
Release Notes:
- Fixed "editor: fold at level" closing regions containing selections
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>