Commit log

537f678 zed 0.200.5

Joseph T. Lyons created

f74281b themes: Implement Bright Black and Bright White colors (#36761)

Click to expand commit body
Before:
<img width="356" height="50" alt="image"
src="https://github.com/user-attachments/assets/c4f4ae53-8820-4f22-b306-2e5062cfe552"
/>

After:
<img width="340" height="41" alt="image"
src="https://github.com/user-attachments/assets/8e69d9dc-5640-4e41-845d-f299fc5954e3"
/>


Release Notes:

- Fixed ANSI Bright Black and Bright White colors

Oleksiy Syvokon created

608495e Use Tokio::spawn instead of getting an executor handle (#36701)

Click to expand commit body
This was causing panics due to the handles being dropped out of order.
It doesn't seem possible to guarantee the correct drop ordering given
that we're holding them over await points, so lets just spawn on the
tokio executor itself which gives us access to the state we needed those
handles for in the first place.

Fixes: ZED-1R

Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Julia Ryan , Conrad Irwin , and Marshall Bowers created

55ffbb4 v0.200.x stable

Joseph T. Lyons created

e22c759 project: Register dynamic capabilities even when registerOptions doesn't exist (#36554)

Click to expand commit body
Closes #36482

Looks like we accidentally referenced
[common/formatting.ts#L67-L70](https://github.com/microsoft/vscode-languageserver-node/blob/d90a87f9557a0df9142cfb33e251cfa6fe27d970/client/src/common/formatting.ts#L67-L70)
instead of
[common/client.ts#L2133](https://github.com/microsoft/vscode-languageserver-node/blob/d90a87f9557a0df9142cfb33e251cfa6fe27d970/client/src/common/client.ts#L2133).

Release Notes:

- Fixed code not formatting on save in language servers like Biome.
(Preview Only)

Smit Barmase created

2715627 lsp: Enable dynamic registration for TextDocumentSyncClientCapabilities post revert (#36494)

Click to expand commit body
Follow up: https://github.com/zed-industries/zed/pull/36485

Release Notes:

- N/A

Smit Barmase created

6f69698 project: Take 2 on Handle textDocument/didSave and textDocument/didChange (un)registration and usage correctly (#36485)

Click to expand commit body
Relands https://github.com/zed-industries/zed/pull/36441 with a
deserialization fix.

Previously, deserializing `"includeText"` into
`lsp::TextDocumentSyncSaveOptions` resulted in a `Supported(false)` type
instead of `SaveOptions(SaveOptions { include_text: Option<bool> })`.

```rs
impl From<bool> for TextDocumentSyncSaveOptions {
    fn from(from: bool) -> Self {
        Self::Supported(from)
    }
}
```

Looks like, while dynamic registartion we only get `SaveOptions` type
and never `Supported` type.
(https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocumentSaveRegistrationOptions)

Release Notes:

- N/A

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Smit Barmase and Lukas Wirth created

76afc0d Revert "project: Handle `textDocument/didSave` and `textDocument/didChange` (un)registration and usage correctly (#36441)" (#36480)

Click to expand commit body
This reverts commit c5991e74bb6f305c299684dc7ac3f6ee9055efcd.

This PR broke rust-analyzer's check on save function, so reverting for
now

Release Notes:

- N/A

Lukas Wirth created

320d706 project: Handle `textDocument/didSave` and `textDocument/didChange` (un)registration and usage correctly (#36441)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/35306

This PR contains two changes:

Both changes are inspired from:
https://github.com/microsoft/vscode-languageserver-node/blob/d90a87f9557a0df9142cfb33e251cfa6fe27d970/client/src/common/textSynchronization.ts

1. Handling `textDocument/didSave` and `textDocument/didChange`
registration and unregistration correctly:

```rs
#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
#[serde(untagged)]
pub enum TextDocumentSyncCapability {
    Kind(TextDocumentSyncKind),
    Options(TextDocumentSyncOptions),
}
```

- `textDocument/didSave` dynamic registration contains "includeText"
- `textDocument/didChange` dynamic registration contains "syncKind"

While storing this to Language Server, we use
`TextDocumentSyncCapability::Options` instead of
`TextDocumentSyncCapability::Kind` since it also include
[change](https://github.com/gluon-lang/lsp-types/blob/be7336e92a6ad23f214df19bcdceab17f39531a9/src/lib.rs#L1714-L1717)
field as `TextDocumentSyncCapability::Kind` as well as
[save](https://github.com/gluon-lang/lsp-types/blob/be7336e92a6ad23f214df19bcdceab17f39531a9/src/lib.rs#L1727-L1729)
field as `TextDocumentSyncSaveOptions`. This way while registering or
unregistering both of them, we don't accidentaly mess with other data.

So, if at intialization we end up getting
`TextDocumentSyncCapability::Kind` and we receive any above kind of
dynamic registration, we change `TextDocumentSyncCapability::Kind` to
`TextDocumentSyncCapability::Options` so we can store more data anyway.

2. Modify `include_text` method to only depend on
`TextDocumentSyncSaveOptions`, instead of depending on
`TextDocumentSyncKind`. Idea behind this is,
`TextDocumentSyncSaveOptions` should be responsible for
"textDocument/didSave" notification, and `TextDocumentSyncKind` should
be responsible for "textDocument/didChange", which it already is:
https://github.com/zed-industries/zed/blob/4b79eade1da2f5f7dfa18208cf882c8e6ca8a97f/crates/project/src/lsp_store.rs#L7324-L7331

Release Notes:

- N/A

Smit Barmase created

1adbbfc editor: Fix panic in inlay hint while padding (#36405)

Click to expand commit body
Closes #36247

Fix a panic when padding inlay hints if the last character is a
multi-byte character. Regressed in
https://github.com/zed-industries/zed/pull/35786.

Release Notes:

- Fixed a crash that could occur when an inlay hint ended with `...`.

Smit Barmase created

7703cdb gpui: Fix crash when starting Zed on macOS during texture creation (#36382)

Click to expand commit body
Closes #36229

Fix zero-sized texture creation that triggers a SIGABRT in the Metal
renderer. Not sure why this happens yet, but it likely occurs when
`native_window.contentView()` returns a zero `NSSize` during initial
window creation, before the view size is computed.

Release Notes:

- Fixed a rare startup crash on macOS.

Smit Barmase created

3593691 Bump to 0.200.4 for @maxdeviant

Zed Bot created

66e6649 client: Parse auth callback query parameters before showing sign-in success page (#36440)

Click to expand commit body
This PR fixes an issue where we would redirect the user's browser to the
sign-in success page even if the OAuth callback was malformed.

We now parse the OAuth callback parameters from the query string and
only redirect to the sign-in success page when they are valid.

Release Notes:

- Updated the sign-in flow to not show the sign-in success page
prematurely.

Marshall Bowers created

6c0eaf6 zed 0.200.3

Julia Ryan created

e9e376d Separate minidump crashes from panics (#36267)

Click to expand commit body
The minidump-based crash reporting is now entirely separate from our
legacy panic_hook-based reporting. This should improve the association
of minidumps with their metadata and give us more consistent crash
reports.

Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Julia Ryan and Max Brunsfeld created

78e56ce keymap_ui: Ensure keybind with empty arguments can be saved (#36393)

Click to expand commit body
Follow up to #36278 to ensure this bug is actually fixed. Also fixes
this on two layers and adds a test for the lower layer, as we cannot
properly test it in the UI.

Furthermore, this improves the error message to show some more context
and ensures the status toast is actually only shown when the keybind was
successfully updated: Before, we would show the success toast whilst
also showing an error in the editor.

Lastly, this also fixes some issues with the status toast (and
animations) where no status toast or no animation would show in certain
scenarios.

Release Notes:

- N/A

Finn Evers created

0367e93 onboarding: Fix minimap typo on editing page (#36143)

Click to expand commit body
This PR fixes a small typo on the onboarding editing page where it
should be "Minimap" instead of "Mini Map"

Release Notes:

- N/A

Finn Evers created

e2dec85 agent: Create checkpoint before/after every edit operation (#36253)

Click to expand commit body
1. Previously, checkpoints only appeared when an agent's edit happened
immediately after a user message. This is rare (agent usually collects
some context first), so they were almost never shown. This is now fixed.

2. After this change, a checkpoint is created after every edit
operation. So when the agent edits files five times in a single dialog
turn, we will now display five checkpoints.

As a bonus, it's now possible to undo only a part of a long agent
response.

Closes #36092, #32917

Release Notes:

- Create agent checkpoints more frequently (before every edit)

Oleksiy Syvokon created

4a0e8f0 agent_ui: Ensure that all configuration views get rendered with full width (#36362)

Click to expand commit body
Closes #36097

Release Notes:

- Fixed API key input fields getting shrunk in Agent Panel settings view
on low panel widths paired with high UI font sizes.

Piotr Osiewicz created

c2f0df9 Add capabilities to OpenAI-compatible model settings (#36370)

Click to expand commit body
### TL;DR
* Adds `capabilities` configuration for OpenAI-compatible models
* Relates to
https://github.com/zed-industries/zed/issues/36215#issuecomment-3193920491

### Summary
This PR introduces support for configuring model capabilities for
OpenAI-compatible language models. The implementation addresses the
issue that not all OpenAI-compatible APIs support the same features -
for example, Cerebras' API explicitly does not support
`parallel_tool_calls` as documented in their [OpenAI compatibility
guide](https://inference-docs.cerebras.ai/resources/openai#currently-unsupported-openai-features).

### Changes

1. **Model Capabilities Structure**:
- Added `ModelCapabilityToggles` struct for UI representation with
boolean toggle states
- Implemented proper parsing of capability toggles into
`ModelCapabilities`

2. **UI Updates**:
- Modified the "Add LLM Provider" modal to include checkboxes for each
capability
- Each OpenAI-compatible model can now be configured with its specific
capabilities through the UI

3. **Configuration File Structure**:
- Updated the settings schema to support a `capabilities` object for
each `openai_compatible` model
- Each capability (`tools`, `images`, `parallel_tool_calls`,
`prompt_cache_key`) can be individually specified per model

### Example Configuration

```json
{
  "openai_compatible": {
    "Cerebras": {
      "api_url": "https://api.cerebras.ai/v1",
      "available_models": [
        {
          "name": "gpt-oss-120b",
          "max_tokens": 131000,
          "capabilities": {
            "tools": true,
            "images": false,
            "parallel_tool_calls": false,
            "prompt_cache_key": false
          }
        }
      ]
    }
  }
}
```

### Tests Added

- Added tests to verify default capability values are correctly applied
- Added tests to verify that deselected toggles are properly parsed as
`false`
- Added tests to verify that mixed capability selections work correctly

Thanks to @osyvokon for the desired `capabilities` configuration
structure!


Release Notes:

- OpenAI-compatible models now have configurable capabilities (#36370;
thanks @calesennett)

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>

Cale Sennett and Oleksiy Syvokon created

2bd6166 keymap_ui: Don't try to parse empty action arguments as JSON (#36278)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Keymap Editor: Fixed an issue where leaving the arguments field empty
would result in an error even if arguments were optional

Ben Kunkle created

2ab445d zed 0.200.2

Joseph T. Lyons created

b96f76f openai: Don't send prompt_cache_key for OpenAI-compatible models (#36231)

Click to expand commit body
Some APIs fail when they get this parameter

Closes #36215

Release Notes:

- Fixed OpenAI-compatible providers that don't support prompt caching
and/or reasoning

Oleksiy Syvokon created

e9a4f67 openai: Don't send reasoning_effort if it's not set (#36228)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

177cf12 project: Fix LSP TextDocumentSyncCapability dynamic registration (#36234)

Click to expand commit body
Closes #36213

Use `textDocument/didChange`
([docs](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_synchronization))
instead of `textDocument/synchronization`.

Release Notes:

- Fixed an issue where Dart projects were being formatted incorrectly by
the language server.

smit created

fda9369 Emit a `BreadcrumbsChanged` event when associated settings changed (#36177)

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

Release Notes:

- Fixed a bug where changing the `toolbar.breadcrumbs` setting didn't
immediately update the UI when saving the `settings.json` file.

Joseph T. Lyons created

08351cb Bump to 0.200.1 for @smitbarmase

Zed Bot created

ab41359 ci: Disable FreeBSD builds (#36140)

Click to expand commit body
Revert accidental change introduced in
[#35880](https://github.com/zed-industries/zed/pull/35880/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fL706)

Release Notes:

- N/A

smit created

d29341b copilot: Fix Copilot fails to sign in (#36138)

Click to expand commit body
Closes #36093

Pin copilot version to 1.354 for now until further investigation.

Release Notes:

- Fixes issue where Copilot failed to sign in.

Co-authored-by: MrSubidubi <dev@bahn.sh>

smit and MrSubidubi created

189ea49 v0.200.x preview

Joseph T. Lyons created

0b9c9f5 onboarding: Make Welcome page persistent (#36127)

Click to expand commit body
Release Notes:

- N/A

Anthony Eid created

2da80e4 emmet: Use `index.js` directly to launch language server (#36126)

Click to expand commit body
This PR updates the Emmet extension to use the `index.js` file directly
to launch the language server.

This provides better cross-platform support, as we're not relying on
platform-specific `.bin` wrappers.

Release Notes:

- N/A

Marshall Bowers created

d9a94a5 onboarding: Remove feature flag and old welcome crate (#36110)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: MrSubidubi <dev@bahn.sh>
Co-authored-by: Anthony <anthony@zed.dev>

Danilo Leal , MrSubidubi , and Anthony created

a7442d8 onboarding: Add more telemetry (#36121)

Click to expand commit body
1. Welcome Page Open
2. Welcome Nav clicked
3. Skip clicked
4. Font changed
5. Import settings clicked
6. Inlay Hints
7. Git Blame
8. Format on Save
9. Font Ligature
10. Ai Enabled
11. Ai Provider Modal open


Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Anthony Eid and Marshall Bowers created

6c1f195 Enhance icon detection for files with custom suffixes (#34170)

Click to expand commit body
Fixes custom file suffixes (module.ts) of some icon themes like: 

- **Symbols Icon Theme** 
<img width="212" alt="image"
src="https://github.com/user-attachments/assets/419ba1b4-9d8e-46cd-891b-62fb63a8c5ae"
/>

- **Bearded Icon Theme**
<img width="209" alt="image"
src="https://github.com/user-attachments/assets/72974fce-fa72-4368-8d96-7feea7b59b7a"
/>

Release Notes:

- Fixed icon detection for files with custom suffixes like `module.ts`
that are overwritten by the language's icon `.ts`

Gilmar Sales created

23cd5b5 agent2: Initial infra for checkpoints and message editing (#36120)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Ben Brandt and Antonio Scandurra created

f4b0332 Hoist `rodio` to workspace level (#36113)

Click to expand commit body
This PR hoists `rodio` up to a workspace dependency.

Release Notes:

- N/A

Marshall Bowers created

abde730 onboarding: Adjust page layout (#36112)

Click to expand commit body
Fix max-height and make it scrollable as well, if needed.

Release Notes:

- N/A

Danilo Leal created

2b3dbe8 agent2: Allow tools to be provider specific (#36111)

Click to expand commit body
Our WebSearch tool requires access to a Zed provider

Release Notes:

- N/A

Ben Brandt created

7f1a5c6 ui: Make toggle button group responsive (#36100)

Click to expand commit body
This PR improves the toggle button group to be more responsive across
different layouts. This is accomplished by ensuring each button takes up
the same amount of space in the parent containers layout.

Ideally, this should be done with grids instead of a flexbox container,
as this would be much better suited for this purpose. Yet, since we lack
support for this, we go with this route for now.

| Before | After |
| --- | --- |
| <img width="1608" height="1094" alt="Bildschirmfoto 2025-08-13 um 11
24 26"
src="https://github.com/user-attachments/assets/2a4b5a59-6483-4f79-8fcb-e26e22071795"
/> | <img width="1608" height="1094" alt="Bildschirmfoto 2025-08-13 um
11 29 36"
src="https://github.com/user-attachments/assets/e6402729-6a8f-4a44-b79e-a569406edfff"
/> |


Release Notes:

- N/A

Finn Evers created

6307105 Don't show default shell breadcrumbs (#36070)

Click to expand commit body
Release Notes:

- N/A

localcc created

8d63312 Small worktree scan style fixes (#36104)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/35780

Release Notes:

- N/A

Kirill Bulatov created

81474a3 Change default pane split directions (#36101)

Click to expand commit body
Closes #32538

This PR adjusts the defaults for splitting panes along the horizontal
and vertical actions. Based upon user feedback, the adjusted values seem
more reasonable as default settings, hence, go with these instead.

Release Notes:

- Changed the default split directions for the `pane: split horizontal`
and `pane: split vertical` actions. You can restore the old behavior by
modifying the `pane_split_direction_horizontal` and
`pane_split_direction_vertical` values in your settings.

Finn Evers created

db497ac Agent2 Model Selector (#36028)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Ben Brandt and Bennet Bo Fenner created

8ff2e3e language_models: Add reasoning_effort for custom models (#35929)

Click to expand commit body
Release Notes:

- Added `reasoning_effort` support to custom models

Tested using the following config:
```json5
  "language_models": {
    "openai": {
      "available_models": [
        {
          "name": "gpt-5-mini",
          "display_name": "GPT 5 Mini (custom reasoning)",
          "max_output_tokens": 128000,
          "max_tokens": 272000,
          "reasoning_effort": "high" // Can be minimal, low, medium (default), and high
        }
      ],
      "version": "1"
    }
  }
```

Docs:
https://platform.openai.com/docs/api-reference/chat/create#chat_create-reasoning_effort

This work could be used to split the GPT 5/5-mini/5-nano into each of
it's reasoning effort variant. E.g. `gpt-5`, `gpt-5 low`, `gpt-5
minimal`, `gpt-5 high`, and same for mini/nano.

Release Notes:

* Added a setting to control `reasoning_effort` in OpenAI models

Cretezy created

96093aa onboarding: Link git clone button with action (#35999)

Click to expand commit body
Release Notes:

- N/A

Anthony Eid created

dc87f4b Add 4.1 to models page (#36086)

Click to expand commit body
Adds opus 4.1 to models page in docs

Release Notes:

- N/A

morgankrey created

1957e1f Add locations to native agent tool calls, and wire them up to UI (#36058)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>

Cole Miller and Conrad created

d78bd8f Fix external agent still being marked as generating after error response (#35992)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

32975c4 windows: Fix auto update failure when launching from the cli (#34303)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

张小白 and Max Brunsfeld created