Commit log

6e77c6a onboarding: Adjust the welcome page a bit (#35600)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

1325bf1 Update to acp 0.0.18 (#35595)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

f3f2dba Minor stylistic cleanup in Windows platform (#35503)

Click to expand commit body
This PR doesn't change any logic, it just cleans up some naming and
style in the windows platform layer.

* Rename `WindowsWindowStatePtr` to `WindowsWindowInner`, since it isn't
a pointer type.
* Move window event handler methods into an impl on this type, so that
all of the `state_ptr: &Rc<WindowsWindowInner>` parameters can just be
replaced with `&self`.
* In window creation, use a `match` instead of a conditional followed by
an unwrap

There's a lot of whitespace in the diff, so view it with `w=1`.

Release Notes:

- N/A

Max Brunsfeld created

0ea4016 onboarding: Adjust skip button as flow progresses (#35596)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

9fa634f git: Add option to branch from default branch in branch picker (#34663)

Click to expand commit body
Closes #33700

The option shows up as an icon that appears on entries that would create
a new branch. You can also branch from the default by secondary
confirming, which the icon has a tooltip for as well.

We based the default branch on the results from this command: `git
symbolic-ref refs/remotes/upstream/HEAD` and fallback to `git
symbolic-ref refs/remotes/origin/HEAD`

Release Notes:

- Add option to create a branch from a default branch in git branch
picker

---------

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

Anthony Eid and Cole Miller created

fa8dd1c agent: Adjust full screen menu item label and background color (#35592)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

2c8f144 workspace: Fix not able to close tab when buffer save fails (#35589)

Click to expand commit body
Closes #26216, Closes #35517

Now we prompt user if buffer save failed, asking them to close without
saving or cancel the action.

Release Notes:

- Fixed issue where closing read-only or deleted buffer would not close
that tab.

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

Smit Barmase and Lukas Wirth created

bf361c3 search: Update results multi-buffer before search is finished (#35470)

Click to expand commit body
I'm not sure when we've lost that notify, but it's causing the time to
first search result equal to the time to run the whole search, which is
not great.

Co-authored-by: Remco <djsmits12@gmail.com>

This discussion has originally started in #35444

Release Notes:

- Improved project search speed.

Co-authored-by: Remco <djsmits12@gmail.com>

Piotr Osiewicz and Remco created

65018c2 Rename remaining mentions of "inline completion" to "edit prediction" (#35512)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

8588572 agent: Fix scrolling in the "Add LLM Provider" modal (#35584)

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

Release Notes:

- agent: Fix scrolling in the "Add LLM Provider" modal

Danilo Leal created

899bc8a Fix edit prediction disablement with `"disable_ai": true` setting (#35513)

Click to expand commit body
Even after #35327 edit predictions were still being queried and shown
after setting `"disable_ai": true`

Also moves `DisableAiSettings` to the `project` crate so that it gets
included in tests via existing use of `Project::init_settings(cx)`.

Release Notes:

- Fixed `"disable_ai": true` setting disabling edit predictions.

Michael Sloan created

d577ef5 thread view: Scroll to the bottom when sending new messages + adjust controls display (#35586)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

bb5af6f Fix escape in terminal with JetBrains keymap (#35585)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/35429
Closes https://github.com/zed-industries/zed/issues/35091
Follow-up to: https://github.com/zed-industries/zed/pull/35230

Release Notes:

- Fix `escape` in Terminal broken in JetBrains compatability keymaps

Peter Tripp created

a6a34da Fix gemini e2e tests (#35583)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

5f77c6a docs: Rewrite the OpenAI compatible API section (#35558)

Click to expand commit body
This PR updates the OpenAI compatible API section clarifying that API
keys aren't stored in the `settings.json`. It also updates the JSON as
some fields are not available anymore.

Release Notes:

- docs: Updated the OpenAI compatible API section to clarify API keys
aren't stored in your `settings.json`.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Joshua Byrd and Danilo Leal created

0609c8b Revise and clean up some icons (#35582)

Click to expand commit body
This is really just a small beginning, as there are many other icons to
be revised and cleaned up. Our current set is a bit of a mess in terms
of dimension, spacing, stroke width, and terminology. I'm sure there are
more non-used icons I'm not covering here, too. We'll hopefully tackle
it all soon leading up to 1.0.

Closes https://github.com/zed-industries/zed/issues/35576

Release Notes:

- N/A

Danilo Leal created

8b573d4 evals: Retry on Anthropic's internal and transient I/O errors (#35395)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

f17943e Update to new agent schema (#35578)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>

Ben Brandt and Agus Zubiaga created

dea64d3 Add icon for KDL files (#35377)

Click to expand commit body
<img width="191" height="83" alt="1753920601"
src="https://github.com/user-attachments/assets/6bf057b0-2f10-4cc7-bab1-2d4aa8675701"
/>

Release Notes:

- Added icon for KDL (`.kdl`) files

Kainoa Kanter created

7217439 Don't trigger authentication flow unless credentials expired (#35570)

Click to expand commit body
This fixes a regression introduced in
https://github.com/zed-industries/zed/pull/35471, where we treated
stored credentials as invalid when failing to retrieve the authenticated
user for any reason. This had the side effect of triggering the auth
flow even when e.g. the client/server had temporary networking issues.

This pull request changes the logic to only trigger authentication when
getting a 401 from the server.

Release Notes:

- N/A

Antonio Scandurra created

5ca5d90 Use a better type for language IDs field (#35566)

Click to expand commit body
Part of the preparation for proto capabilities.

Release Notes:

- N/A

Kirill Bulatov created

1b3d613 Add libx11 to openSUSE build dependencies (#35553)

Click to expand commit body
building on opensuse fails without `libx11-devel`

**Repro:**

```bash
$ cd $(mktemp -d)
$ git clone https://github.com/zed-industries/zed .
$ docker run --rm -it -v $(pwd):/zed -w /zed opensuse/tumbleweed

(opensuse) $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
(opensuse) $ ./script/linux
(opensuse) $ cargo build --release
```

**Expected:** to work

**Actual:** 

```
thread 'main' panicked at /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/x11-2.21.0/build.rs:42:14:
  called `Result::unwrap()` on an `Err` value:
  pkg-config exited with status code 1
  > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags x11 'x11 >= 1.4.99.1'

  The system library `x11` required by crate `x11` was not found.
  The file `x11.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
  The PKG_CONFIG_PATH environment variable is not set.

  HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `x11.pc`.

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
```

Ahmed ElSayed created

2db19e1 Improve the yaml outline to show the key value if it's a simple string (#35562)

Click to expand commit body
Before:

<img width="753" height="890" alt="Screenshot 2025-08-03 at 8 58 16 PM"
src="https://github.com/user-attachments/assets/a3816acd-66b2-4042-8181-fbc15881bd4b"
/>

After:

<img width="648" height="634" alt="Screenshot 2025-08-03 at 8 59 30 PM"
src="https://github.com/user-attachments/assets/0ab35f3e-36d6-42b5-bb5f-09431985878e"
/>

Release Notes:

- Improved the yaml outline to include the key's value if it's a simple
string.

Mikayla Maki created

ea7c3a2 Add option to open settings profile selector in user menu (#35556)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

f14f0c2 Fix false positive for editing status in agent panel (#35554)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

1b9302d Reuse `is_tab_pinned` method (#35551)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

4417bfe Fix pinned tab becoming unpinned when dragged onto unpinned tab (#35539)

Click to expand commit body
Case A - Correct:


https://github.com/user-attachments/assets/2ab943ea-ca5b-4b6b-a8ca-a0b02072293e

Case B - Incorrect:


https://github.com/user-attachments/assets/912be46a-73b2-48a8-b490-277a1e89d17d

Case B - Fixed:


https://github.com/user-attachments/assets/98c2311d-eebc-4091-ad7a-6cf857fda9c3

Release Notes:

- Fixed a bug where dragging a pinned tab onto an unpinned tab wouldn't
decrease the pinned tab count

Joseph T. Lyons created

986e3e7 agent_ui: Improve message editor history navigation (#35532)

Click to expand commit body
- We no longer move through history if a message has been edited by the
user -
It is possible to navigate back down to an empty message

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

Release Notes:

- N/A

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

Ben Brandt and Cole Miller created

f4391ed Cleanup `editor.rs` imports (#35509)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

a50d0f2 Make `editor::AcceptPartialCopilotSuggestion` a deprecated alias (#35507)

Click to expand commit body
This is consistent with there being no copilot expecific variant of
`editor::AcceptEditPrediction`. It also fixes a case where the
`disable_ai: true` has effects at init time that aren't undone when
changed, added in #35327.

Release Notes:

- N/A

Michael Sloan created

a8422d4 Fix showing/hiding copilot actions when `disable_ai` setting is changed (#35506)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

4d79edc project: Fix extra } at the end of import on completion accept (#35494)

Click to expand commit body
Closes #34094

Bug in https://github.com/zed-industries/zed/pull/11157

**Context:** 

In https://github.com/zed-industries/zed/pull/31872, we added logic to
avoid re-querying language server completions
(`textDocument/completion`) when possible. This means the list of
`lsp::CompletionItem` objects we have might be stale and not contain
accurate data like `text_edit`, which is only valid for the buffer at
the initial position when these completions were requested. We don't
really care about this because we already extract all the useful data we
need (like insert/replace ranges) into `Completion`, which converts
`text_edit` to anchors. This means further user edits simply push/move
those anchors, and our insert/replace ranges persist for completion
accept.

```jsonc
// on initial textDocument/completion
"textEdit":{"insert":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}},"replace":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}}
```

However, for showing documentation of visible `Completion` items, we
need to call resolve (`completionItem/resolve`) with the existing
`lsp::CompletionItem`, which returns the same `text_edit` and other
existing data along with additional new data that was previously
optional, like `documentation` and `detail`.

**Problem:** 

This new data like `documentation` and `detail` doesn't really change on
buffer edits for a given completion item, so we can use it. But
`text_edit` from this resolved `lsp::CompletionItem` was valid when the
the initial (`textDocument/completion`) was queried but now the
underlying buffer is different. Hence, creating anchors from this ends
up creating them in wrong places.

```jsonc
// calling completionItem/resolve on cached lsp::CompletionItem results into same textEdit, despite buffer edits
"textEdit":{"insert":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}},"replace":{"start":{"line":2,"character":0},"end":{"line":2,"character":11}}
```

It looks like the only reason to override the new text and these ranges
was to handle an edge case with `typescript-language-server`, as
mentioned in the code comment. However, according to the LSP
specification for [Completion
Request](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_completion):

> All other properties (usually sortText, filterText, insertText and
textEdit) must be provided in the textDocument/completion response and
**must not be changed during resolve.**

If any language server responds with different `textEdit`, `insertText`,
etc. in `completionItem/resolve` than in `textDocument/completion`, they
should fix that. Bug in this case in `typescript-language-server`:
https://github.com/typescript-language-server/typescript-language-server/pull/303#discussion_r869102064

We don't really need to override these at all. Keeping the existing
Anchors results in correct replacement.

Release Notes:

- Fixed issue where in some cases there would be an extra `}` at the end
of imports when accepting completions.

Smit Barmase created

edac6e4 Add font ligatures and format on save buttons to onboarding UI (#35487)

Click to expand commit body
Release Notes:

- N/A

Anthony Eid created

6052115 zeta: Add CLI tool for querying edit predictions and related context (#35491)

Click to expand commit body
Release Notes:

- N/A

---------

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

Michael Sloan and Marshall Bowers created

561ccf8 onboarding: Serialize onboarding page (#35490)

Click to expand commit body
Closes #ISSUE

Serializes the onboarding page to the database to ensure that if Zed is
closed during onboarding, re-opening Zed restores the onboarding state
and the most recently active page (Basics, Editing, etc) restored. Also
has the nice side effect of making dev a bit nicer as it removes the
need to re-open onboarding and navigate to the correct page on each
build.

Release Notes:

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

Ben Kunkle created

ac75593 onboarding: Actions for page navigation (#35484)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

a3a3f11 zeta: Rename binding back to `user_store` (#35486)

Click to expand commit body
This PR renames a binding from `cloud_user_store` to `user_store` now
that we've consolidated the two into the `UserStore`.

Release Notes:

- N/A

Marshall Bowers created

faa45c5 onboarding: Add design adjustments (#35480)

Click to expand commit body
Release Notes:

- N/A

---------

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

Danilo Leal and Anthony created

b31f893 Rasterize glyphs without D2D (#35376)

Click to expand commit body
This allows debugging Zed with Renderdoc, and also fixes an issue where
glyphs' bounds were miscalculated for certain sizes and scale factors.

Release Notes:

- N/A

---------

Co-authored-by: Kate <kate@zed.dev>
Co-authored-by: Julia <julia@zed.dev>
Co-authored-by: Junkui Zhang <364772080@qq.com>

Max Brunsfeld , Kate , Julia , and Junkui Zhang created

f888f3f Start separating authentication from connection to collab (#35471)

Click to expand commit body
This pull request should be idempotent, but lays the groundwork for
avoiding to connect to collab in order to interact with AI features
provided by Zed.

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Antonio Scandurra , Marshall Bowers , and Richard Feldman created

b01d187 onboarding: Add the AI page (#35351)

Click to expand commit body
This PR starts the work on the AI onboarding page as well as the
configuration modal

Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>

Finn Evers , Danilo Leal , and Anthony created

e5c6a59 agent_ui: More agent notifications (#35441)

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

106aa0d Add default binding to open settings profile selector (#35459)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

f7f9059 inline_completion_button: Replace `UserStore` with `CloudUserStore` (#35456)

Click to expand commit body
This PR replaces usages of the `UserStore` in the inline completion
button with the `CloudUserStore`.

Release Notes:

- N/A

Marshall Bowers created

8be3f48 client: Remove unused `subscription_period` from `UserStore` (#35454)

Click to expand commit body
This PR removes the `subscription_period` field from the `UserStore`, as
its usage has been replaced by the `CloudUserStore`.

Release Notes:

- N/A

Marshall Bowers created

76a8293 editor_tests: Fix for potential race loading editor languages (#35453)

Click to expand commit body
Fix for potential race when loading HTML and JS languages (JS is
slower). Wait for both to load before continue tests.
Observed failure on linux:
[job](https://github.com/zed-industries/zed/actions/runs/16662438526/job/47162345259)
as part of https://github.com/zed-industries/zed/pull/35436

```
    thread 'editor_tests::test_autoclose_with_embedded_language' panicked at crates/editor/src/editor_tests.rs:8724:8:
    assertion failed: `(left == right)`: unexpected buffer text

    Diff < left / right > :
     <body><>
         <script>
    <        var x = 1;<>
    >        var x = 1;<
         </script>
     </body><>
```

Inserted `<` incorrect gets paired bracket inserted `>`.
I believe because the JS language injection hasn't fully loaded.

Release Notes:

- N/A

Peter Tripp created

2315962 cloud_api_client: Add `accept_terms_of_service` method (#35452)

Click to expand commit body
This PR adds an `accept_terms_of_service` method to the
`CloudApiClient`.

Release Notes:

- N/A

Marshall Bowers created

f8673da ai_onboarding: Read the plan from the `CloudUserStore` (#35451)

Click to expand commit body
This PR updates the AI onboarding to read the plan from the
`CloudUserStore` so that we don't need to connect to Collab.

Release Notes:

- N/A

Marshall Bowers created

72d354d Update Agent panel to work with `CloudUserStore` (#35436)

Click to expand commit body
This PR updates the Agent panel to work with the `CloudUserStore`
instead of the `UserStore`, reducing its reliance on being connected to
Collab to function.

Release Notes:

- N/A

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Marshall Bowers and Richard Feldman created

09b93ca Rework authentication for local Cloud/Collab development (#35450)

Click to expand commit body
This PR reworks authentication for developing Zed against a local
version of Cloud and/or Collab.

You will still connect the same way—using the `zed-local` script—but
will need to be running an instance of Cloud locally.

Release Notes:

- N/A

Marshall Bowers created