Commit log

498d651 agent ui: Render docs aside in the correct spot depending on dock position (#46050)

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

Release Notes:

- agent: Fixed the docs aside placement in selectors (i.e., model and
configuration) depending on the panel dock position.

Danilo Leal created

d16c665 collab: Remove unused `get_user_metrics_id` query (#46049)

Click to expand commit body
This PR removes the unused `get_user_metrics_id` query method and the
`metrics_id` field from the `User` model.

Release Notes:

- N/A

Marshall Bowers created

e90a9bc collab: Remove unused invite code handlers (#46048)

Click to expand commit body
This PR removes some unused invite code RPC handlers, as well as the
`UpdateInviteInfo` RPC message.

Release Notes:

- N/A

Marshall Bowers created

8d810db workspace: Remove custom-positioned modal placement logic (#46047)

Click to expand commit body
This PR essentially removes the logic I introduced in
https://github.com/zed-industries/zed/pull/45361 to position workspace
modals based on the pointer click coordinates. All of this code has
become unnecessary given in
https://github.com/zed-industries/zed/pull/45924 we made the remote,
project, and branch modals use popovers when triggered with a pointer,
which already handle all the anchored positioning based on the trigger
(much better).

Release Notes:

- N/A

Danilo Leal created

8ef900c git_panel: Add hover state to latest commit button (#46046)

Click to expand commit body
The button for opening the latest commit view didn't have a hover state,
but now it does!

<img width="400" height="548" alt="Screenshot 2026-01-04 at 8  44@2x"
src="https://github.com/user-attachments/assets/6a58fefb-5f3f-4973-b5e8-35c400996e12"
/>

Release Notes:

- N/A

Danilo Leal created

7d0f23d collab: Remove unused fields from `User` model (#46045)

Click to expand commit body
This PR removes some unused fields from the `User` model.

Release Notes:

- N/A

Marshall Bowers created

0a1b798 title_bar: Use popovers for modal anchoring (#45924)

Click to expand commit body
Anchoring fix part of #45853

Before:


https://github.com/user-attachments/assets/abe66049-04e5-4f33-9efb-2e99e63e4cc8

After:


https://github.com/user-attachments/assets/14533bbe-8f46-43b1-9465-11e8d313561f


Release Notes:

- N/A

---------

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

Sriman Achanta and Danilo Leal created

d492b48 collab: Remove Supermaven API key issuance (#46044)

Click to expand commit body
This PR removes the ability to retrieve a Supermaven API key from
Collab.

This was staff-gated (at least, on the server), and judging by the logs,
no one is using it.

Release Notes:

- N/A

Marshall Bowers created

2457264 editor: Add alignment setting to code completion context menu detail text (#45892)

Click to expand commit body
Closes #5154

Release Notes:

- Added a setting (`completion_detail_alignment`) to change the detail
text alignment in code completion context menus.

<table>
<tr>
 <td>Right Alignment
 <td>Left Alignment
<tr>
 <td>
<img width="802" height="427" alt="image"
src="https://github.com/user-attachments/assets/46202f3d-32cc-4431-aebd-aa3c52d84993"
/>
 <td>
<img width="783" height="427" alt="image"
src="https://github.com/user-attachments/assets/d26559d2-c433-4bf7-a302-e683bd5fa9f7"
/>
</table>

---------

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

legs and Danilo Leal created

0549689 Improve collection of edit prediction examples (#46010)

Click to expand commit body
Release Notes:

- N/A

Max Brunsfeld created

cda9eab Do not eagerly load entire file contents into memory when decoding it (#45971)

Click to expand commit body
When working on https://github.com/zed-industries/zed/pull/45969 I've
noticed that whenever I try to open a binary file

```
~/Desktop/svenska ❯ du -ha "Svenska А2B1. 07.09.2025 [u6qEIe9-COc].mkv"
456M	Svenska А2B1. 07.09.2025 [u6qEIe9-COc].mkv
```

Zed allocates all its size

<img width="214" height="104" alt="image"
src="https://github.com/user-attachments/assets/e67ad522-b8a4-4e8e-9961-13030a34df1c"
/>

<img width="345" height="154" alt="image"
src="https://github.com/user-attachments/assets/ea691020-0d02-4acc-88c3-476385f309bb"
/>

only to show me this:

<img width="979" height="677" alt="image"
src="https://github.com/user-attachments/assets/ff91cc9d-eb59-4cee-b06f-5758acd1bd5d"
/>

Given that our existing code checks first 1024 bytes to decide whether
to bail on a binary file or not, this seems very wasteful — hence,
adjusted the code to read the "header" and check that first, and only
continue reading the entire file after the checks are successful.

I suspect this should also help the project search, esp. the crashes and
memory usage during that when many binary files are present?

Release Notes:

- Improved Zed's memory usage when attempting to open binary files

Kirill Bulatov created

ce99e7e editor: Fix the merging of adjacent selection edits (#45363)

Click to expand commit body
Closes #45046

The root of the issue is anchor resolution. When we apply adjacent
edits, they get merged into a single edit. In the scenario described in
the issue, this is what happens:

1. We create an anchor at the end of each selection (bias::right) on the
snapshot before the edits.
2. We collect the edits and apply them to the buffer.
3. Since the edits are adjacent (>=), the buffer merges them into a
single edit.
4. As a result, we apply one edit to the text buffer, creating a single
visible fragment with length = 3.
5. The buffer ends up with fragments like: [F(len = 3, visible = true),
F(len = 1, visible = false), ...]
6. After the edits, we resolve the previously created anchors to produce
zero-width selections (cursors).
7. All anchors resolve into deleted fragments, so their resolved offset
equals the cumulative visible offset, which is 3.
8. We now have 3 cursors with identical coordinates (0;3).
9. These cursors get merged into a single cursor.

I tried several approaches, but they either felt wrong or didn’t work.
In particular, I tried adjusting anchor resolution using the delta
stored in handle_input, but this doesn’t help because selections are
merged immediately after anchor resolution.

The only workable solution I found is to avoid anchors entirely for the
adjacent-edit case. Instead, we can compute the final cursor positions
directly from the edits and create the selections based on that
information.

Release Notes:

- Fixed an issue where adjacent selection insert would merge cursors

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
Co-authored-by: Lukas Wirth <me@lukaswirth.dev>

Marco Mihai Condrache and Lukas Wirth created

0821cdd keymap_editor: Allow to open the keymap.json with a keybinding (#45987)

Click to expand commit body
Just like #43747 added the keybinding(s) for `settings.json`, added them
here for keymaps and added the tooltip to show those.

<img width="500" height="282" alt="Screenshot 2026-01-04 at 2  47@2x"
src="https://github.com/user-attachments/assets/d4dbdd6e-24eb-4b7f-baa8-6e1d9810ff94"
/>

Release Notes:

- keymap editor: Added the ability to open the `keymap.json` file with a
keybinding.

---------

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

Smit Chaudhary and Danilo Leal created

4e7cf03 ui: Make hitting enter also open the context menu submenu (#46032)

Click to expand commit body
This PR makes hitting `enter`/`return` in a submenu trigger also open
and focus the submenu instead of closing the parent menu. Building on
feedback from @SomeoneToIgnore:
https://github.com/zed-industries/zed/pull/45882#issuecomment-3708275031.

Release Notes:

- N/A

Danilo Leal created

e67818b keymap_editor: Add a "create keybinding" modal (#46030)

Click to expand commit body
Ever since we launched the keymap editor, we've received feedback about
how "_creating_" a new keybinding was not obvious. At first, I was
confused about this feedback because you can't "create" a keybinding,
you need to rather _assign it_ to an action... so what always made sense
to me was to start with searching for the action, which is an use case
we already support. Regardless, having an easy to reach "create" button,
which essentially still asks for action > keystroke > arguments (if
needed) > and context, feels like a win UX-wise; a bit of a redundant
flow that feels ultimately positive.

So, this PR adds a "Create Keybinding" button to the keymap editor,
which you can reach with `cmd-k`. That will open up a modal with an
action autocomplete, the keystroke recording input, the arguments input
(if needed), and the context input.


https://github.com/user-attachments/assets/86f64314-4685-47bb-bb0d-72ca4c469d1f

Release Notes:

- keymap editor: Added a keybinding creation modal to make it easier to
assign an action to a keystroke.

Danilo Leal created

69ecd31 agent: Add ability to queue messages (#46019)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/37905
Closes https://github.com/zed-industries/zed/discussions/42338
Closes https://github.com/zed-industries/zed/discussions/33501
Closes https://github.com/zed-industries/zed/discussions/41414

This PR introduces a way to queue messages in the agent panel through
the `cmd-shift-enter` keybinding. Queued up messages get sent as soon as
the current generation wraps up. It's also possible to send a queued
message before time, effectively interrupting the ongoing generation.
You can also clean up the entire queue through another keybinding. Then,
if you normally interrupt the thread and if there are queued up
messages, those will get sent as soon as the interruption generation
wraps up. Lastly, if you queue up a message with an idle thread, that's
sent immediately, given that there can never exist a "stuck queue" with
this implementation.


https://github.com/user-attachments/assets/54e68d95-5abb-477c-aecb-9325dcb99175

Release Notes:

- agent: Added the ability to queue messages in the agent panel.

Danilo Leal created

c32a811 conpty: Bump version and fetch from GitHub for dev-builds (#46026)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

5505e63 copilot: Fix panic in Copilot edit prediction due to anchor/snapshot mismatch (#46022)

Click to expand commit body
When `trim_completion()` creates new anchors from the current buffer
state, `completion.snapshot` was not being updated, leaving it with the
older snapshot from when the prediction was initially fetched. This
caused a panic in `interpolate_edits()` when trying to resolve anchors
with Lamport timestamps newer than what the old snapshot had observed.

The fix ensures that `completion.snapshot` is updated whenever new
anchors are created in `trim_completion()`, keeping the snapshot and
anchors consistent.

Closes #45956

Release Notes:

- Fixed a panic in Copilot edit predictions caused by anchor/snapshot
version mismatch

Vadim Suharnikov created

48a1092 gpui: Add clipboard pasting support for DIB images on Windows (#45695)

Click to expand commit body
- Added handling for DIB format, converting to BMP after adding the
corresponding file header

Release Notes:

- fix: Unable to paste images from clipboard directly into agent panel
on Windows

---------

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

YangAo and Lukas Wirth created

dba1352 worktree: Implement `read_only_files` worktree setting (#44376)

Click to expand commit body
This mimics VSCode's `files.readonlyExclude` setting, to allow setting
specific path matches as readonly locations like lockfiles and generated
sources etc.

Also renders a lock icon to the right side of the path names for
readonly files now.
This does a couple more things for completion sake:
- Tabs of readonly buffers now render a file lock icon
- Multibuffer buffer headers now render a file lock icon if the excerpts
buffer is readonly
- ReadWrite multibuffers now no longer allow edits to read only buffers
contained within

Release Notes:

- Added `read_only_files` setting to allow specifying glob patterns of
files that should not be editable by default

---------

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

Lukas Wirth and Danilo Leal created

848d3cc Fix inlay hint hover highlight for multi-byte UTF-8 characters (#44872)

Click to expand commit body
## Summary

Fixes #44812

The hover highlight for clickable inlay hints was not covering the last
character when the label contained multi-byte UTF-8 characters (e.g.,
`→`).

## Problem

When hovering over an inlay hint like `→ app/Livewire/UserProfile.php`,
the highlight/underline stopped one character short, leaving the final
character unhighlighted.

**Root cause:** `find_hovered_hint_part()` in `hover_popover.rs` used
`part.value.chars().count()` (character count) but `InlayOffset` wraps
`MultiBufferOffset(pub usize)` which is byte-based.

For a label like `→ app/Livewire/UserProfile.php`:
- Byte length: 32 (the `→` character is 3 bytes in UTF-8)
- Character count: 30

This mismatch caused the calculated highlight range to end 2 bytes
short.

## Changes

1. **Use byte length instead of character count** (line 112):
   ```rust
   // Before (buggy)
   let part_len = part.value.chars().count();
   
   // After (correct)
   let part_len = part.value.len();
   ```

2. **Fix boundary condition** (line 113): Changed `>` to `>=` for
correct `[start, end)` range semantics when hovering at part boundaries.

3. **Rename variable** for clarity: `hovered_character` →
`offset_in_hint` since it's a byte offset, not a character position.

4. **Add unit test** reproducing the exact scenario from the issue with
multi-byte UTF-8 characters.

## Testing

Added `test_find_hovered_hint_part_with_multibyte_characters` which:
- Verifies the label `→ app/Livewire/UserProfile.php` has 32 bytes but
30 characters
- Tests hovering at the last byte correctly returns the full range
- Tests boundary behavior with multiple label parts containing
multi-byte characters

Release Notes:

- Fixed inlay hint hover highlight not covering the last character when
the label contains multi-byte UTF-8 characters

rari404 created

61b3889 extension_host: Avoid creating a Tokio runtime (#45990)

Click to expand commit body
While profiling Zed, I noticed around 12 `tokio-runtime-worker` threads.
Since `gpui_tokio` runs a Tokio runtime with only two worker threads,
this meant something else was spinning up a default Tokio runtime (My
machine has 10 cores).

After digging into it a bit, it looks like `wasmtime-wasi` needs a Tokio
runtime for some of its calls. That’s also why we run extension tasks on
`gpui-tokio` in the first place.

Reproduction case:

1. Run a clean Zed build.
2. Sample the process → only 2–3 Tokio threads.
3. Install a WASM extension (for example
https://github.com/zed-extensions/nix), which shouldn’t pull in anything
that creates its own runtime.
4. Sample the process again → 10+ Tokio worker threads show up.

```
marcocondrache@xawed ~/P/zed (main)> sample 34260 1 | grep -E "Thread_"
Sampling process 34260 for 1 second with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Sample analysis of process 34260 written to file /tmp/zed_2026-01-03_112527_5pq7.sample.txt
    744 Thread_3086626   DispatchQueue_1: com.apple.main-thread  (serial)
    744 Thread_3086629: RayonWorker0
    ....
    744 Thread_3086651: MacWatcher
    744 Thread_3086653: MacWatcher
    744 Thread_3086661: com.apple.NSEventThread
    744 Thread_3086680: tokio-runtime-worker
    744 Thread_3086681: tokio-runtime-worker
    ...
    744 Thread_3087087: tokio-runtime-worker
    744 Thread_3087089: tokio-runtime-worker
    744 Thread_3087090: tokio-runtime-worker
    744 Thread_3087091: tokio-runtime-worker
    744 Thread_3087092: tokio-runtime-worker
    744 Thread_3087093: tokio-runtime-worker
    744 Thread_3087094: tokio-runtime-worker
    744 Thread_3087095: tokio-runtime-worker
    744 Thread_3087096: tokio-runtime-worker
    744 Thread_3087097: tokio-runtime-worker
    ...
```

Release Notes:

- Reduced number of threads when using extensions

---------

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

Marco Mihai Condrache created

90d9df3 phase 1 (#46018)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

64b0502 languages: Escape test names for bun runner (#45749)

Click to expand commit body
Closes #45746

Release Notes:

- Fixed un-escaped regexp characters in test names passed to `bun test`

Patrick Kilgore created

9a79cb8 Improve support for collecting edit prediction training and eval examples (#45914)

Click to expand commit body
* Fix some bugs in capture of EP examples from running app
* Tweak markdown format for EP examples
    * Store repo and revision in TOML front matter
    * Represent cursor position using a comment line
* Allow multiple expected patches in evals
* Remove line-based scoring criteria for evals
* Add a `synthesize` subcommand to the EP cli that generates examples
from git commits

Release Notes:

- N/A

Max Brunsfeld created

21eb233 Fix diff base text not being syntax-highlighted (#46001)

Click to expand commit body
Regressed in #44838

- Wait to emit `LanguageChanged` from `BufferDiff` until the base text
has finished (re)parsing
- Set the language registry on the base text buffer before setting the
language, to ensure that language inclusions are correctly parsed

Release Notes:

- N/A (nightly only)

Cole Miller created

43f7dc4 editor: Use a default font for the minimap (#45999)

Click to expand commit body
Closes #45496
Should help #43460
And probably also #44503

The minimap usually renders about 10x more lines of code and shaped text
than the editor. With expensive fonts such as Google Sans Code, this can
cause noticeable lag, since we attempt to synthesize 300+ lines of code
using a heavy font. Because minimap text is rendered at around 2px and
is essentially illegible, it doesn’t make sense to use the custom buffer
font.

Release Notes:

- Improved minimap performance when using custom fonts

---------

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

Marco Mihai Condrache created

94faaeb Clean up image resources for the current window (#45969)

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

Trace:
https://drive.google.com/file/d/1pXDFzOg4ZS4p2SX8fk9Cjnyy1Qd1Pkrx/view?usp=sharing
[Relevant
part](https://github.com/user-attachments/files/24412472/image_leak.txt)


Release Notes:

- Fixed a memory leak when opening images

Kirill Bulatov created

e1a09e2 rust: Fix `rshtml` injection inside Leptos `view!` macros (#45952)

Click to expand commit body
Fix the Rust tree-sitter language injection to syntax highlight HTML in
Leptos `view!` macros.

A [cleanup
commit](https://github.com/zed-industries/zed/commit/00278f43bb0c5ce7c9961fca42d8e924a0cb157a#diff-15e953fedef2880e09d9e57c8bddf9af5eb583b141fe7d2069c8e579378f4fccL6)
erroneously removed the `(#not-any-of? @_macro_name "view" "html")`
filter from a query that injects Rust into macro invocations. This
causes the query to always match with higher precedence over another one
that sets the `view!` macro language to `rstml`. I have verified that my
fix works locally.

On a related note, I am not sure why language injection for the `sql`
macro is there, which is not even exported by
[sqlx](https://docs.rs/sqlx/latest/sqlx/). The commit author
[mentions](https://github.com/zed-industries/zed/pull/41258#issue-3555384722)
that it is for `sqlez`, a Go library, not a Rust crate.

Release Notes:

- Fixed rshtml injection not working inside Leptos `view!` macros.

Arhan Chaudhary created

3140025 Make `extension` key context case-insensitive (#45961)

Click to expand commit body
Closes #45960 

Release Notes:

- Made the `extension` key context case-insensitive. This e.g. enables
the `markdown: Open Preview` action to also handle files where the
extension is capitalised as MD (case-sensitive file system).

Krzysztof Furman created

5120e63 Add back individual language server controls to status bar menu (#45882)

Danilo Leal created

392c78e docs: Point to the right docs for Tree-sitter queries (#45795)

Click to expand commit body
Release Notes:

- N/A

Haojian Wu created

665ee3e docs: Add missing option for `show_whitespaces` setting (#45667)

Click to expand commit body
The value for the `trailing` option in the `show_whitespaces` setting
was not documented, so I have added it.

Related Issue:
https://github.com/zed-industries/zed/pull/32329#issuecomment-3581576128

Release Notes:

- N/A

Koutaro Miura created

8e82503 docs: Update casing of `Ty` to `ty` (#45622)

Click to expand commit body
### Why?

Small nit I noticed when configuring `ty` from Zed docs, ty should
always be stylized as lowercase.

See:
https://github.com/astral-sh/ty?tab=readme-ov-file#how-should-i-stylize-ty

Release Notes:

- N/A

Rob Hand created

872b2b3 language: Change signature of `initialization_options_schema` (#45937)

Click to expand commit body
This makes this take the LSP adapter delegate instead of the binary
itself.

Despite us passing `LanguageServerBinaryOptions` with `allow_download:
false`, extensions would still try to download the binary because it was
never implemented for these to respect that. This would cause us to try
to download all langauge servers provided by extensions when opening a
settings file and/or requesting the JSON schema for that.

This PR fixes this by passing the LSP adapter delegate instead, so the
few language servers which actually want to have the binary for
resolving the initialization options can decide on this by themselves.
With that, we no longer download all language servers for the schema
request

Release Notes:

- N/A

Finn Evers created

8396611 Update community champions list (#45935)

Click to expand commit body
Updates the community champions list to the latest state, adding some of
our active extension contributors, and sorts the list/removes
duplicates.

Release Notes:

- N/A

Finn Evers created

554382a git: Rework side-by-side diff to use distinct buffers for the left-hand side (#44838)

Click to expand commit body
This PR reworks the (still feature-gated) side-by-side diff view to use
a different approach to representing the multibuffers on the left- and
right-hand sides.

Previously, these two multibuffers used identical sets of buffers and
excerpts, and were made to behave differently by adding a new knob to
the multibuffer controlling how diffs are displayed. Specifically, the
left-hand side multibuffer would filter out the added range of each hunk
from the excerpts using a new `FilteredInsertedHunk` diff transform, and
the right-hand side would simply not show the deleted sides of expanded
hunks. This approach has some problems:

- Line numbers, and actions that navigate by line number, behaved
incorrectly for the left-hand side.
- Syntax highlighting and other features that use the buffer syntax tree
also behaved incorrectly for the left-hand side.

In this PR, we've switched to using independent buffers to build the
left-hand side. These buffers are constructed using the base texts for
the corresponding diffs, and their lifecycle is managed by `BufferDiff`.
The red "deleted" regions on the left-hand side are represented by
`BufferContent` diff transforms, not `DeletedHunk` transforms. This
means each excerpt on the left represents a contiguous slice of a single
buffer, which fixes the above issues by construction.

The tradeoff with this new approach is that we now have to manually
synchronize excerpt ranges from the right side to the left, which we do
using `BufferDiffSnapshot::row_to_base_text_row`.

Release Notes:

- N/A

---------

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: HactarCE <6060305+HactarCE@users.noreply.github.com>
Co-authored-by: Miguel Raz Guzmán Macedo <miguel@zed.dev>
Co-authored-by: Anthony <anthony@zed.dev>
Co-authored-by: Cameron <cameron@zed.dev>

Cole Miller , cameron , HactarCE , Miguel Raz Guzmán Macedo , Anthony , and Cameron created

9677da9 docs: Remove reference to non-existing binding for `tab switcher: toggle all` (#45919)

Click to expand commit body
There is no default binding for `{#kb tab_switcher::ToggleAll}`, so the
doc is rendered as:

<img width="1330" height="227" alt="image"
src="https://github.com/user-attachments/assets/a5ce2efd-69c4-4eb4-a28b-3fdb7825ce34"
/>

Release Notes:

- N/A

Haojian Wu created

9e5546e docs: Use inline code in `debugger.md` (#45920)

Click to expand commit body
Release Notes:

- N/A

Haojian Wu created

c7203f7 docs: Fix an incorrect code-snippet in multibuffers.md (#45918)

Click to expand commit body
Release Notes:

- N/A

Haojian Wu created

c87f12e docs: Update workspace symbol search command in `configuring-languages.md` (#45906)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Finn Evers <finn.evers@outlook.de>

Haojian Wu and Finn Evers created

084d01b docs: Fix project-wide diagnostic command in `configuring-languages.md` (#45905)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Finn Evers <finn.evers@outlook.de>

Haojian Wu and Finn Evers created

ed73602 debugger: Fix breakpoint store RPC handlers not being registered correctly on SSH remotes (#44908)

Click to expand commit body
Closes #36789

Release Notes:

- Fixed setting breakpoints on remotes

---------

Co-authored-by: Zed AI <ai@zed.dev>

Piotr Osiewicz and Zed AI created

9f59946 agent_servers: Fix process leaks after terminating ACP server (#45902)

Click to expand commit body
Closes #45211

This ensures that all sub-processes that were launched by the ACP server
are terminated. One scenario where this is easily reproducible:
- Start a new Claude Code ACP session
- Submit a prompt
- While Claude-code is still responding, start a new session
- The `claude-code` subprocess is leaked from the previous session (The
Claude-code SDK runs the Claude-code binary in a sub process)

This PR fixes this by using process groups on Unix. 
It does not fix the process leaks on Windows yet (will follow up with
another PR)

Release Notes:

- Fixed an issue where subprocesses of ACP servers could be leaked after
starting a new session

Bennet Bo Fenner created

dffda91 Fixes a doc link to the license detection code (#45894)

Click to expand commit body
The existing link was 404-ing as the crate was renamed.

Not attached to any issue.

Release Notes:

- N/A

Nick Cho created

6b34122 python: Add support for `uv run` as the shebang line (#45881)

Click to expand commit body
`uv run` can be used to specify a shebang for a Python script.

See:
https://docs.astral.sh/uv/guides/scripts/#using-a-shebang-to-create-an-executable-file

Release Notes:

- Added support for `uv run` in the shebang line to be interpreted as a
Python script

flou created

963cb2c settings_ui: Make font size settings use editable number fields (#45875)

Click to expand commit body
Now that the edit mode in number fields is finally working well, we can
make the UX of editing font sizes much nicer because you can now type
inside the number field :)


https://github.com/user-attachments/assets/8df7c6ee-e82b-4e10-a175-e0ca5f1bab1f

Release Notes:

- settings UI: Improved the UX of editing font size fields as you can
now type the desired value as opposed to just using the
decrement/increment buttons.

Danilo Leal created

0c7d639 ui: Add fixes to the `NumberField` edit mode (#45871)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/45447 and in
preparation to enable the edit mode in number field instances within the
settings UI. This PR fixes the editor in the number field capturing
focus automatically (unnecessary), tab index in the buttons and editor,
and other things.

Release Notes:

- N/A

Danilo Leal created

189b5ff ui: Make docs aside in pickers and context menu render centered to its trigger (#45868)

Click to expand commit body
This has been something we've wanted to do for a long time since docs
aside thus far have been hard-anchored either at the top or bottom of
the container that their trigger is sitting in. This PR introduces the
change so that they're centered with their trigger, regardless of
whether it's on a context menu or picker, by including a canvas element
in both the container and the trigger to calculate where the docs aside
should precisely sit on. Here's the result:


https://github.com/user-attachments/assets/8147ad05-1927-4353-991d-405631de67d0

Note that at the moment, docs aside are only visible through _hovering_,
and ideally, they should be available on both hover and selection
(keyboard nav). But I'll leave that for later.

Release Notes:

- N/A

Danilo Leal created

a3bf58d extension_ci: Improve title formatting (#45870)

Click to expand commit body
Just some minor formatting touchups I noticed after the first rollout

Release Notes:

- N/A

Finn Evers created