Commit log

aca8466 Expand tests a bit

Richard Feldman created

4fe31d7 Bail on slash-command arg parsing if it starts with `@`

Richard Feldman created

9ae3de2 Reproduce slash-command bug

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

Richard Feldman created

6b980ec settings_ui: Dynamic navbar filtering (#39494)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

d9c7f44 Add ability to hide status bar (#39430)

Click to expand commit body
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>

Mansoor Ahmed and Conrad Irwin created

55e6855 Fix caption buttons going off-screen (#39502)

Click to expand commit body
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>

Marshall Bowers and David Kleingeld created

f0f0beb settings_ui: Implement sub pages (#39484)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

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.

Finn Evers created

93770e8 Bring CI back up (#39485)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

f8c6173 Build Windows installer for all releases (#39414)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

e5f05a2 settings ui: Improve numeric stepper component interface (#36513)

Click to expand commit body
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

f499504 agent: Introduce `agent_buffer_font_size` setting (#39468)

Click to expand commit body
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>

Andrew Farkas and Conrad Irwin created

fd8bae9 docs: Document `ctrl-b` to toggle left dock not working in Vim mode on Linux and Windows (#39464)

Click to expand commit body
Closes #39370

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

f71c912 settings_ui: Write local settings files (#39408)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Ben Kunkle created

8441aa4 vim: Fix visual block handling of wrapped lines (#39355)

Click to expand commit body
These changes fix an issue with vim's visual block mode when soft
wrapping is enabled. In this situation, if one was to move the cursor
either up or down, the selection would be updated to include visual
(wrapped) rows, instead of only the buffer rows. For example, take the
following contents:

```
1 | And here's a very long line that is wrapping
    at this exact point.
2 | And another very long line that is will also
    wrap at this exact point.
```

If one was to place the cursor at the start of the first line, character
`A`, trigger visual block mode with `ctrl-v` and then move down one line
with `j`, the selection would end up as (with [X] representing the
selected characters):

```
1 | [A]nd here's a very long line that is wrapping
    [a]t this exact point.
2 | [A]nd another very long line that is will also
    wrap at this exact point.
```

Instead of the expected:

```
1 | [A]nd here's a very long line that is wrapping
    at this exact point.
2 | [A]nd another very long line that is will also
    wrap at this exact point.
```

With the changes in this commit, `Vim.visual_block_motion` will now
leverage buffer rows in order to navigate to the next or previous row.

Release Notes:

- Fixed handling of soft wrapped lines in vim's visual block mode

Dino created

7b96e1c agent: Add profile description in docs aside (#39412)

Click to expand commit body
This improves the design of the profile picker a bit by making every
item on it have the same height; it also makes it more consistent with
the model selector.

Release Notes:

- N/A

Danilo Leal created

86322a1 worktree: Prevent background scanner from trying to scan file worktrees (#39277)

Click to expand commit body
Release Notes:

- N/A *or* Added/Fixed/Improved ...

Lukas Wirth created

1b94d74 Clarify extension license detection in docs (#39456)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

db825c1 remote: Do not allocate pseudo terminal for ssh commands (#39451)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25382

Release Notes:

- Fixed ssh remote not working if the default shell profile prints to
stdout

Lukas Wirth created

f3abd1d Fix rust-analyzer startup issue in single-file worktrees (#39441)

Click to expand commit body
I'm not sure about the exact conditions for reproducing this issue, but
whenever I build Zed locally and have it open a single-file worktree on
launch, the rust-analyzer language server fails to start up because Zed
attempts to run `rust-analyzer --help` on a path that is not a
directory. This fixes that by running the command on the parent path in
the case of a single-file worktree.

Release Notes:

- Fixed rust-analyzer startup issue in single-file worktrees

Tim Vermeulen created

662ec99 Detect new releases of codex-acp (#39388)

Click to expand commit body
Now we use GitHub Releases to detect when there's a new version of
codex-acp out, and we notify the user in the same way we do for the
other external agents.

This also moves `github_download.rs` out of the `languages` crate and
into `http_client`, because now we're not just using it for language
servers anymore, we're also using it for external agents.

Release Notes:

- N/A

---------

Co-authored-by: Lukas Wirth <me@lukaswirth.dev>

Richard Feldman and Lukas Wirth created

3ab5103 multi_buffer: Fix `ExcerptId::max()` handling in `summaries_for_anchors` (#39436)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/39333

Release Notes:

- Fixed IME inputs breaking when typing at the end of an editor

Co-authored-by: Smit Barmase <smit@zed.dev>

Lukas Wirth and Smit Barmase created

39bd03b file_icons: Add support for multiple file extensions (#36342)

Click to expand commit body
Currently most icon theme extensions already support file types like
stories.tsx and stories.svelte. However within Zed itself these file
type overrides are not supported yet. This change adds support for those

Release Notes:

- Added support for icons on file extensions such as stories.tsx and
stories.svelte

Jacob created

1fffcb9 docs: Remove outdated mention about Vulkan on Asahi Linux (#39423)

Click to expand commit body
Vulkan is now supported running Linux on ARM Macs
https://asahilinux.org/2024/10/aaa-gaming-on-asahi-linux/

Release Notes:

- N/A

Be created

e4f90b5 Fix race-condition in autosave (#39409)

Click to expand commit body
This removes a long-standing thing we've done, which is send a `DidSave`
notification to the language server for the clean parts of a
multi-buffer. However, it seems like the intent of that notification is
to tell the language server to reload the file from disk.

As we didn't actually write those files to disk, it seems clearer to not
send this notification; and just remove this whole code-path.

Release Notes:

- Fixed a race where autosave in a multibuffer could cause unsaved
buffers to appear saved

Conrad Irwin created

dc6fad9 Display-only ACP terminals (#39419)

Click to expand commit body
Codex needs (and future projects are anticipated to need as well) a
concept of display-only terminals. This refactors terminals to decouple
the PTY part from the display part, so that we can render terminal
changes based on a series of events - regardless of whether they're
being driven from a PTY inside Zed or from an outside source (e.g.
`codex-acp`).

Release Notes:

- N/A

Richard Feldman created

64c289a Fix Claude Code login regression (#39413)

Click to expand commit body
This was added for Codex, but had undesirable consequences for Claude
Code (on Nightly, never made it to Preview). We're going to address this
in `codex-acp` instead.

Release Notes:

- N/A

Richard Feldman created

a08897f collab: Add `token_spend_in_cents` column to `billing_subscriptions` table (#39404)

Click to expand commit body
This PR adds a `token_spend_in_cents` and associated
`token_spend_in_cents_updated_at` column to the `billing_subscriptions`
table.

Release Notes:

- N/A

Marshall Bowers created

d359a81 editor: Represent scroll offset with more precision (#39367)

Click to expand commit body
Closes #5355

Release Notes:

- Fixed rendering glitches with files with more than 16 million lines
(that occured due to floating number rounding errors).

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Piotr Osiewicz and Smit Barmase created

4c35274 Don't allow formatters in format on save (#39400)

Click to expand commit body
Closes #ISSUE



Release Notes:

- settings: Removed support for having format steps in both the
`format_on_save` and `formatter` settings for languages.
`format_on_save` is now restricted to the values of `"on"` and `"off"`,
and all format steps should be set under the `formatter` key. If you
were using `format_on_save` but not `formatter` this will be migrated
for you, otherwise it will require a manual migration.

---------

Co-authored-by: Smit <smit@zed.dev>

Ben Kunkle and Smit created

bf48a95 acp_thread: Respect terminal settings shell for terminal tool environment (#39349)

Click to expand commit body
When sourcing the project environment for the terminal tool, we will now
do so by spawning the shell specified by the users `terminal.shell`
setting (or as usual fall back to the login shell).

Closes #37687 

Release Notes:

- N/A

Lukas Wirth created

7c3a21f JSON based migrations (#39398)

Click to expand commit body
Closes #ISSUE

Adds the ability to create settings and keymap migrations by mutating
`serde_json::Value`s instead of using tree-sitter queries. This
(hopefully) will make complicated migrations far simpler to implement.

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Smit <heysmitbarmase@gmail.com>
Co-authored-by: Smit <smit@zed.dev>

Ben Kunkle , Smit , and Smit created

af630be git: Use environment from login shell to search for system git binary, and prefer it to the bundled binary (#39302)

Click to expand commit body
Closes #38571

Release Notes:

- git: Fixed git features not working when git was installed in an
unusual location.

---------

Co-authored-by: Lukas Wirth <me@lukaswirth.dev>

Cole Miller and Lukas Wirth created

dbd8efe ui: Implement graceful autohiding for scrollbars (#39225)

Click to expand commit body
How it looks:


https://github.com/user-attachments/assets/9a355807-5461-4e8d-b7a8-9efb98cea67a

Idea behind this is to reduce flickering in areas where nothing is
happening - whenever these hide, the user is specifically not
interacting with them, hence it can be distracting to have something
flicker in the side of your eye. This PR tackles this.


Release Notes:

- Added graceful autohiding to scrollbars outside of the editor

---------

Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>

Finn Evers and Danilo Leal created

3afbe83 file_finder: Fix history items not using worktree path (#39304)

Click to expand commit body
Closes #39283

Release Notes:

- Fixed: In multi-repo workspaces, files with the same name are no
longer hidden in the file picker after one is opened

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>

Marco Mihai Condrache created

d8709f2 docs: Re-add context for `lsp_highlight_debounce` (#39391)

Click to expand commit body
Release Notes:

- N/A

Finn Evers created

df7bc82 docs: Add coverage for named directory icon support (#39387)

Click to expand commit body
Also updates the link to the new schema version which now includes named
directory icons.

Release Notes:

- N/A

Finn Evers created

8575972 Show display name in collab panel (#39384)

Click to expand commit body
Release Notes:

- Improved Collab panel by showing display names and github handles

Co-authored-by: Cole Miller <cole@zed.dev>

David Kleingeld and Cole Miller created

40c417f Subscribe to CodexAcpFeatureFlag (#39380)

Click to expand commit body
Otherwise Codex doesn't work on first launch.

Release Notes:

- N/A

Richard Feldman created

7c2cf86 Revert "Add ability to hide status bar (#38974)"

Click to expand commit body
This reverts commit 126ed6fbddf6370490133404734ed435a885bd06.

Conrad Irwin created