Commit log

5abf968 Make Copilot login flow look like the builtin one

Richard Feldman created

dd45530 Show "OpenAI-compatible models" notification

Richard Feldman created

dd4d5b5 Fix multiple env var migrations

Richard Feldman created

cc7799a Allow multiple API keys

Richard Feldman created

13776b7 Make provider extensions more closely match current styling

Richard Feldman created

a51585d Fix race condition in test_collaborating_with_completion (#44806)

Click to expand commit body
The test `test_collaborating_with_completion` has a latent race
condition that hasn't manifested on CI yet but could cause hangs with
certain task orderings.

## The Bug

Commit `fd1494c31a` set up LSP request handlers AFTER typing the trigger
character:

```rust
// Type trigger first - spawns async tasks to send completion request
editor_b.update_in(cx_b, |editor, window, cx| {
    editor.handle_input(".", window, cx);
});

// THEN set up handlers (race condition!)
fake_language_server
    .set_request_handler::<lsp::request::Completion, _, _>(...)
    .next().await.unwrap();  // Waits for handler to receive a request
```

Whether this works depends on task scheduling order, which varies by
seed. If the completion request is processed before the handler is
registered, the request goes to `on_unhandled_notification` which claims
to handle it but sends no response, causing a hang.

## Changes

- Move handler setup BEFORE typing the trigger character
- Make `TestDispatcher::spawn_realtime` panic to prevent future
non-determinism from real OS threads
- Add `execution_hash()` and `execution_count()` to TestDispatcher for
debugging
- Add `DEBUG_SCHEDULER=1` logging for task execution tracing
- Document the investigation in `situation.md`

cc @localcc @SomeoneToIgnore (authors of related commits)

Release Notes:

- N/A

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Nathan Sobo and Kirill Bulatov created

26b261a Implement Sum trait for Pixels (#44809)

Click to expand commit body
This adds implementations of `std::iter::Sum` for `Pixels`, allowing the
use of `.sum()` on iterators of `Pixels` values.

### Changes
- Implement `Sum<Pixels>` for `Pixels` (owned values)
- Implement `Sum<&Pixels>` for `Pixels` (references)

This enables ergonomic patterns like:
```rust
let total: Pixels = pixel_values.iter().sum();
```

Nathan Sobo created

f80ef9a editor: Fix inlay hovers blinking in sync with cursors (#44822)

Click to expand commit body
This change matches how normal hovers are handled (which early return
with `None` in this branch)

Release Notes:

- Fixed hover boxes for inlays blinking in and out without movement when
cursor blinking was enabled

Lukas Wirth created

13594bd keymap: More default keymap fixes for windows/linux (#44821)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

e9073ec agent_ui: Fix fallback icon used for external agents (#44777)

Click to expand commit body
When an external agent doesn't provide an icon, we were using different
fallback icons in all the places we display icons (settings view, thread
new menu, and the thread view toolbar itself).

Release Notes:

- N/A

Danilo Leal created

00169e0 git: Fix create remote branch (#44805)

Click to expand commit body
Fix a bug where the branch picker would be dismissed before completing
the add remote flow, thus making Zed unable to add remote repositories
through the branch picker.

This bug was caused by the picker always being dismissed on the confirm
action, so the fix was stopping the branch modal from being dismissed
too early.

I also cleaned up the UI a bit and code.

1. Removed the loading field from the Branch delegate because it was
never used and the activity indicator will show remote add command if it
takes a while.
2. I replaced some async task spawning with the use of `cx.defer`.
3. Added a `add remote name` fake entry when the picker is in the name
remote state. I did this so the UI would be consistent with the other
states.
4. Added two regression tests. 
4.1 One to prevent this bug from occurring again:
https://github.com/zed-industries/zed/pull/44742
4.2 Another to prevent the early dismissal bug from occurring 
5. Made `init_branch_list_test` param order consistent with Zed's code
base

###### Updated UI
<img width="1150" height="298" alt="image"
src="https://github.com/user-attachments/assets/edead508-381c-4bd8-8a41-394dd5b7b781"
/>


Release Notes:

- N/A

Anthony Eid created

6cc947f Update `cc` and `cmake` crates (#44797)

Click to expand commit body
This fixes the build when Visual Studio 2026 is installed.

Release Notes:

- N/A

John Tur created

f2cc24c docs: Add clarifying note about Vim subword motion (#44535)

Click to expand commit body
Clarify the docs regarding how operators are affected when subword
motion in Vim is activated.

Ref:
https://github.com/zed-industries/zed/issues/23344#issuecomment-3186025873.

Release Notes:

- N/A

---------

Co-authored-by: Kunall Banerjee <hey@kimchiii.space>

Will Garrison and Kunall Banerjee created

488fa02 Streaming tool use for inline assistant (#44751)

Click to expand commit body
Depends on: https://github.com/zed-industries/zed/pull/44753

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Michael Benfield and Mikayla Maki created

dad6481 Disambiguate branch name in title bar (#44793)

Click to expand commit body
Add the repository name when:

- there's more than one repository, and
- the name of the active repository doesn't match the name of the
project (to avoid stuttering with the adjacent project switcher button)

Release Notes:

- The branch name in the title bar now includes the name of the current
repository when needed to disambiguate.

Cole Miller created

0283bfb Enable configuring edit prediction providers through the settings UI (#44505)

Click to expand commit body
- Edit prediction providers can now be configured through the settings
UI
- Cleaned up the status bar menu to only show _configured_ providers
- Added to the status bar icon button tooltip the name of the active
provider
- Only display the data collection functionality under "Privacy" for the
Zed models
- Moved the Codestral edit prediction provider out of the Mistral
section in the agent panel into the settings UI
- Refined and improved UI and states for configuring GitHub Copilot as
both an agent and edit prediction provider

#### Todos before merge:

- [x] UI: Unify with settings UI style and tidy it all up
- [x] Unify Copilot modal `impl`s to use separate window
- [x] Remove stop light icons from GitHub modal
- [x] Make dismiss events work on GitHub modal
- [ ] Investigate workarounds to tell if Copilot authenticated even when
LSP not running


Release Notes:

- settings_ui: Added a section for configuring edit prediction providers
under AI > Edit Predictions, including Codestral and GitHub Copilot.
Once you've updated you can use the following link to open it:
zed://settings/edit_predictions.providers

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Danilo Leal and Ben Kunkle created

56daba2 supports_streaming_tools member (#44753)

Click to expand commit body
Release Notes:

- N/A

Michael Benfield created

6e0ecbc docs: Use `relative_line_numbers` instead of `toggle_relative_line_numbers` (#44749)

Click to expand commit body
Just a small docs change

With the deprecation of `toggle_relative_line_numbers` the docs should
reflect that

Release Notes:

- N/A

Josh Ayres created

4754422 Add angled bracket highlighting for C++ (#44735)

Click to expand commit body
Enables rainbow bracket highlighting for angle brackets (< >) in C++.

<img width="401" height="46" alt="image"
src="https://github.com/user-attachments/assets/169afdaa-c8be-4b78-bf64-9cf08787eb47"
/>


Release Notes:

- Added rainbow bracket coloring for C++ angle brackets (`<>`)

Haojian Wu created

e860252 gpui: Improve path rendering and bounds performance (#44655)

Marco Mihai Condrache created

fad06dd git: Show all branches in branch picker empty state (#44742)

Click to expand commit body
This fixes an issue where a user could get confused by the branch picker
because it would only show the 10 most recent branches, instead of all
branches.

Release Notes:

- git: Show all branches in branch picker when search field is empty

Anthony Eid created

329ec64 gpui: Fix tab jitter from oversized scrolling (#42434)

Xiaobo Liu created

e1d236e ep: Apply diff to editable region only and edit history fixes (#44737)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>

Oleksiy Syvokon , Max Brunsfeld , and Agus Zubiaga created

67f3b09 Refactor out a var name

Richard Feldman created

6a6b556 Fix a warning

Richard Feldman created

3debec1 Simplify some path resolving logic

Richard Feldman created

bde75bb Extract a big string into include_str!

Richard Feldman created

eff0105 Add a comment explaining port behavior

Richard Feldman created

4bbc53b Remove obsolete request-credential from the interface

Richard Feldman created

00a6255 Restore since_v0_6_0.rs to origin/main

Richard Feldman created

d1f085c Rename oauth to be at the front of oauth_send_http_request

Richard Feldman created

60f4aa3 edit prediction cli: Improve error handling (#44718)

Click to expand commit body
We were panicking whenever something went wrong with an example in the
CLI. This can be very disruptive when running many examples, and e.g a
single request fails. Instead, if running more than one example, errors
will now be logged alongside instructions to explore and re-run the
example by itself.

<img width="1454" height="744" alt="CleanShot 2025-12-12 at 13 32 04@2x"
src="https://github.com/user-attachments/assets/87c59e64-08b9-4461-af5b-03af5de94152"></img>


You can still opt in to stop as soon as en error occurs with the new
`--failfast` argument.

Release Notes:

- N/A

Agus Zubiaga created

73341e5 Clarify sign-in docs

Richard Feldman created

ed111bf Revise some docs

Richard Feldman created

64966bb Require sign_in_button_label

Richard Feldman created

fe895c7 Reorganize LanguageModelAuthConfig

Richard Feldman created

9c2c9ea Don't make credential_label optional

Richard Feldman created

f46b946 Don't default some of the model options in the extension

Richard Feldman created

b9c8f8b Deduplicate icon styling

Richard Feldman created

6ac42dd Restore some origin/main logic

Richard Feldman created

7f51ca3 Deduplicate some branches

Richard Feldman created

c050b42 Drop an unnecessary constant

Richard Feldman created

b2073af Make a match exhaustive and use alternatives

Richard Feldman created

a52e4af Further icon deduplication

Richard Feldman created

35aa3f2 More icon deduplication

Richard Feldman created

1a808c4 Reduce some icon code duplication

Richard Feldman created

fda2688 Merge remote-tracking branch 'origin/main' into provider-extensions

Richard Feldman created

a698f1b Fix Bounds::contains (#44711)

Click to expand commit body
Closes #11643 

Release Notes:

- Fixed double hover state on windows

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>

localcc and Kirill Bulatov created

636d11e Multiple priority scheduler (#44701)

Click to expand commit body
Improves the scheduler by allowing tasks to have a set priority which
will significantly improve responsiveness.

Release notes:

- N/A

---------

Co-authored-by: Yara <git@yara.blue>
Co-authored-by: dvdsk <noreply@davidsk.dev>

localcc , Yara , and dvdsk created

4d0e760 edit prediction cli: Progress output cleanup (#44708)

Click to expand commit body
- Limit status lines to 10 in case `max_parallelism` is specified with a
grater value
- Handle logging gracefully rather than writing over it when clearing
status lines

Release Notes:

- N/A

Agus Zubiaga created