Commit log

afc07d9 Bump to 0.219.5 for @MrSubidubi

Zed Zippy created

aeea349 rope: Add missing early return in `log_err_char_boundary` (#47191) (cherry-pick to stable) (#47193)

Click to expand commit body
Cherry-pick of #47191 to stable

----
Closes ZED-465

Release Notes:

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

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

zed-zippy[bot] and Lukas Wirth created

ea1c1df Add "PNG" to allow list for typos

MrSubidubi created

1e58361 settings_ui: Prevent panic when trying to configure edit prediction providers for language (#47162)

Click to expand commit body
Closes #46502

The issue here was that we were not looking into the sub page stack when
looking headers up, resulting in an out of bounds index. This PR fixes
this.

Due to me also fixing another small bug in the UI (and adding proper
support for the breadcrumbs), I had to move quite some stuff around here
to get this to work. Namely, I made the `sub_page_stack` a field on the
`SettingsWindow` and now only store the `active_language` in a global to
ensure that we store scroll positions properly for all sub pages. For
that to work with the edit prediction provider page, I had to remove the
struct there and could just move that into a method, which was a nice
side effect there I suppose.

Release Notes:

- Fixed a crash that could occur when trying to edit edit prediction
providers in the settings UI.

Finn Evers created

10fe59c settings_ui: Organize page data (#46275)

Click to expand commit body
Closes #ISSUE

Organizes the giant list of settings UI items in `page_data.rs` a bit so
that sections are split out in sub functions that (for the most part)
return constant size arrays. Page items is also converted to a
`Box<[...]>` instead of a Vec.

The goal here is to have working breadcrumbs when in the settings UI
file (e.g. `fn general_page() > fn general_section()`), and to escape
the `vec![]` macro so that `rust-analyzer` works more consistently.

This should help both humans and LLMs know where they are in the file
and use the outline to navigate it instead of having to read the whole
thing to have an idea of what is going on.

Release Notes:

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

Ben Kunkle created

8f70d44 agent: Patch image format bug (#45978)

Click to expand commit body
Closes #44694

Release Notes:

- Fixed images being converted to png but retaining old format

<img width="574" height="327" alt="Screenshot 2026-01-02 at 5 34 24 PM"
src="https://github.com/user-attachments/assets/92331939-cebc-4f53-99fc-10d5181cf87e"
/>

<img width="638" height="489" alt="Screenshot 2026-01-02 at 5 34 36 PM"
src="https://github.com/user-attachments/assets/47c05906-fa56-4a53-abd4-790c42230772"
/>

---------

Co-authored-by: versecafe <147033096+versecafe@users.noreply.github.com>
Co-authored-by: MrSubidubi <finn@zed.dev>

Mason Palmer , versecafe , and MrSubidubi created

5fbccbe languages: Apply JSX fixes to JavaScript highlights (#47130) (cherry-pick to stable) (#47132)

Click to expand commit body
Cherry-pick of #47130 to stable

----
Closes #46701

This ports the fixes from #46442 over to the JavaScript highlights,
which we forgot to do in that PR since the highlights are not shareable
and the fix was only applied to TSX... Hence, porting the fixes here
manually to solve the issue for good.

Release Notes:

- Fixed an issue where JSX components were highlighted too broadly,
causing normal HTML tags to be highlighted as such

Co-authored-by: Finn Evers <finn@zed.dev>

zed-zippy[bot] and Finn Evers created

f2abde4 editor: Fix relative line numbers breaking with nested folds (#47035) (cherry-pick to stable) (#47108)

Click to expand commit body
Cherry-pick of #47035 to stable

----
Closes #46516

The previous fix only worked for non-nested folds, whereas this one also
considers nested folds properly. Also makes this more straightforward to
read.

Release Notes:

- Fixed an issue where relative line numbering would break with nested
folds.

Co-authored-by: Finn Evers <finn@zed.dev>

zed-zippy[bot] and Finn Evers created

d4cfed4 Add BYOK GPT-5.2-codex support (#47025) (cherry-pick to stable) (#47031)

Click to expand commit body
Cherry-pick of #47025 to stable

----
<img width="449" height="559" alt="Screenshot 2026-01-16 at 4 52 12 PM"

src="https://github.com/user-attachments/assets/1b5583d7-9b90-46b1-a32f-9821543ea542"
/>

Release Notes:

- Add support for GPT-5.2-Codex via OpenAI API Key

Co-authored-by: Richard Feldman <richard@zed.dev>

zed-zippy[bot] and Richard Feldman created

300099d gpui: Fix utf8 slicing panic in `truncate_line` (#46914) (cherry-pick to stable) (#46917)

Click to expand commit body
Cherry-pick of #46914 to stable

----
Fixes https://github.com/zed-industries/zed/issues/46904

Release Notes:

- Fixed a panic in the git panel when utf8 multibyte character filenames
got truncated

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

zed-zippy[bot] and Lukas Wirth created

4b351b4 workspace: Do not attempt to unnecessarily update jump list on worktree updates (#46882) (cherry-pick to stable) (#46887)

Click to expand commit body
Cherry-pick of #46882 to stable

----
It should be a no-op but causes massive main thread hangs on windows due
to the winapi calls this emits, restores the behavior pre
github.com/zed-industries/zed/pull/46256 without reverting the main
changes of that.

Release Notes:

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

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

zed-zippy[bot] and Lukas Wirth created

2450122 Fix emoji on Linux when using High DPI (#46857) (cherry-pick to stable) (#46860)

Click to expand commit body
Cherry-pick of #46857 to stable

----
Fixes https://github.com/zed-industries/zed/issues/46849

Release Notes:

- Fixed emoji being too small on Linux when using High DPI

Co-authored-by: John Tur <john-tur@outlook.com>

zed-zippy[bot] and John Tur created

d136bb0 gpui: Fix bug on `on_hover` callbacks (#46371) (cherry-pick to stable) (#46831)

Click to expand commit body
Cherry-pick of #46371 to stable

----
Tackling this as I noticed a bug in the agent panel where the button to
delete a thread, which appeared only on hover, stopped showing up. PRs
#43324 and #45437 fixed stuff in applying hover styles through
`.hover()` but broke the `.on_hover()` callback. Problem was that both
methods were sharing the same `element_state.hover_state` but running at
different phases. The solution here was to add a new independent state
field for the hover listener (`hover_listener_state`) while the hover
style method keeps using `hover_state`.

Release Notes:

- Agent: Fixed a bug where the button to delete a thread stopped showing
up.

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

zed-zippy[bot] and Danilo Leal created

5595f7c v0.219.x stable

Joseph T. Lyons created

0727934 Revert "Clean up image resources for the current window (#45969)" (#46779) (cherry-pick to preview) (#46781)

Click to expand commit body
Cherry-pick of #46779 to preview

----
This reverts commit 94faaebfec5e46afa6d3aee5372cbbdb33b97c33.

The logic changed in the [original
PR](https://github.com/zed-industries/zed/pull/45969) is either
misplaced or lacks a counterpart that reacts on `gpui::Image` drop one
way or another.

The change was dropping the texture out of the global rendering atlas
when an image preview tab was disposed of, while in reality, another
instance (agent panel or another image preview tab) could require the
very same atlas entry to be rendered meanwhile.

Currently, only `RetainAllImageCache` in Zed does any kind of image
cleanup, and any other image usages will leak memory.
What makes it harder is that the atlas entry needs to live as long as a
particular `Arc<Image>` lives, and some public `gpui` API expects this
type to stay:


https://github.com/zed-industries/zed/blob/e747cfc955e8cfd9327d8d6b8d617cf1d3a6bcaa/crates/gpui/src/platform.rs#L1851-L1866

For image viewer in particular, we need to consider why
`RetainAllImageCache` is not used there; for the global, normal fix, we
need to consider ways to have `cx` and `window` and a way to react on
`Image` drop.
As an option, we could break the `gpui` API (as it [happens
periodically](https://github.com/zed-industries/zed/issues/46183)
already) and use `Entity<Image>` instead of `Arc`, then react with
`cx.on_release_in` for each such image.

Closes https://github.com/zed-industries/zed/issues/46755
Closes https://github.com/zed-industries/zed/issues/46435

Release Notes:

- Fixed panics on concurrent image handling

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

zed-zippy[bot] and Kirill Bulatov created

a5176e6 Trust settings sync as a collab project client (#46700) (cherry-pick to preview) (#46702)

Click to expand commit body
Cherry-pick of #46700 to preview

----
Collab projects are considered trusted and remote clients use the
editor-related settings only. A better fix would be sync "not trusted"
indicator with the project host, and disallow clients' iteraction with
that indicator.

Release Notes:

- Fixed collab settings sync causing "not trusted" pop ups for client

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

zed-zippy[bot] and Kirill Bulatov created

9961d18 terminal_view: Fix terminal opening in / when no project is open (#46582) (cherry-pick to preview) (#46682)

Click to expand commit body
Cherry-pick of #46582 to preview

----
Closes #46574

The `default_working_directory()` function in
`crates/terminal_view/src/terminal_view.rs:1585` returned `None` when no
project directory was available. The code comment (now removed)
incorrectly claimed "None implies `~` on whichever machine we end up
on". However, when `None` is passed to `alacritty_terminal`, it uses the
process CWD, not the home directory. On macOS when Zed is launched from
a .`app` bundle, the CWD is `/`.
    
Added a fallback at the end of` default_working_directory()` that
explicitly returns the home directory when no project directory is
found: `directory.or_else(dirs::home_dir)`

  This ensures:
  1. `CurrentProjectDirectory` with no project open → home directory
  2. `FirstProjectDirectory `with no project open → home directory
3. `AlwaysHome `→ home directory (explicitly, not relying on shell
behavior)
  4. Always `{ directory }` with invalid directory → home directory



Release Notes:
- Fixed terminal opening in `/` instead of home directory when no
project is open.

Co-authored-by: Max Malkin <60683392+maxmalkin@users.noreply.github.com>

zed-zippy[bot] and Max Malkin created

b295c8f editor: Fix regression with folds and relative counting (#46658) (cherry-pick to preview) (#46664)

Click to expand commit body
Cherry-pick of #46658 to preview

----
Closes #46516

Release Notes:

- Fixed a regression with relative line numbering that would occur with
folds present (preview only)

Co-authored-by: Finn Evers <finn@zed.dev>

zed-zippy[bot] and Finn Evers created

8a79bd5 Bump to 0.219.4 for @SomeoneToIgnore

Zed Zippy created

e925d2e Fix worktree trust not applied on window reuse (#46623) (cherry-pick to preview) (#46628)

Click to expand commit body
Cherry-pick of #46623 to preview

----
New workspace/window creates a different `WeakEntity<WorktreeStore>` for
the same path, which was not considered before.

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

Release Notes:

- Fixed worktree trust not applied in window reuse

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

zed-zippy[bot] and Kirill Bulatov created

f2e86f4 copilot: Fix double lease panic when signing out (#46619) (cherry-pick to preview) (#46625)

Click to expand commit body
Cherry-pick of #46619 to preview

----
Extracted out of #46618 as I wanna fast-track it to Preview.

Release Notes:

- Fixed a crash that occured when signing out of Copilot.

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>

zed-zippy[bot] and Piotr Osiewicz created

cf55413 gpui(windows): Force a paint message when running out foreground budget (#46609) (cherry-pick to preview) (#46622)

Click to expand commit body
Cherry-pick of #46609 to preview

----
Release Notes:

- Fixed zed no longer rendering on windows in a timely manner if it gets
overloaded with foreground work

Co-authored-by: John Tur <john-tur@outlook.com>

Co-authored-by: Lukas Wirth <lukas@zed.dev>
Co-authored-by: John Tur <john-tur@outlook.com>

zed-zippy[bot] , Lukas Wirth , and John Tur created

4cf8795 Properly notify all language server worktree trust listeners (#46613) (cherry-pick to preview) (#46614)

Click to expand commit body
Cherry-pick of #46613 to preview

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



https://github.com/user-attachments/assets/8464a3b6-9258-4d15-9168-56178bf46437

`use smol::channel::{Receiver, Sender};` do not propagate the value
change to all receivers, hence only one language server received the
"worktree trusted" message.
The fix uses `watch` kind of channels instead, and cleans up its state
more eager to rely on the sender drop as another form of notification.

Release Notes:

- Fixed groups of language servers not starting after worktree trust
approval

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

zed-zippy[bot] and Kirill Bulatov created

cf13576 Always show worktree trust, even if other title bar items are hidden with settings (#46606) (cherry-pick to preview) (#46607)

Click to expand commit body
Cherry-pick of #46606 to preview

----
Closes https://github.com/zed-industries/zed/discussions/46595

Release Notes:

- Fixed "show project items" keeping worktree trust title bar element
hidden

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

zed-zippy[bot] and Kirill Bulatov created

807deba Skip worktree trust checks on Zed invisible worktrees (#46563) (cherry-pick to preview) (#46578)

Click to expand commit body
Cherry-pick of #46563 to preview

----
Follow-up of https://github.com/zed-industries/zed/pull/46256

Release Notes:

- Fixed worktree trust pop-up appearing on a keymap editor invication

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

zed-zippy[bot] and Kirill Bulatov created

4099f02 languages: Do not highlight JSX/TSX components too broadly (#46442) (cherry-pick to preview) (#46446)

Click to expand commit body
Cherry-pick of #46442 to preview

----
Closes #46340

Release Notes:

- Fixed an issue where HTML tags where highlighted as JSX components.

Co-authored-by: Finn Evers <finn@zed.dev>

zed-zippy[bot] and Finn Evers created

3d83b3c Bump to 0.219.3 for @maxbrunsfeld

Zed Zippy created

0d91961 mercury: Fix spurious newline removal (#46289)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

f255b09 Update pulldown-cmark to v0.13.0 to fix crash (#46267) (cherry-pick to preview) (#46309)

Click to expand commit body
Cherry-pick of #46267 to preview

----
Hi Zed team thank you for the awesome editor!

I recently stumbled upon a markdown sequence that seems to cause a crash

```md
-	[	] -
\
-
```

*easier to read escape characters below

```rust
let crash_input = "-\t[\t] -\r\\\n-"
println!("{}", crash_input)
```

## how to reproduce

1. copy the markdown above
2. save the file
3. `[shift]` + `[cmd]` + `p` to open the command palette
4. select `markdown: open preview`
5. crash

I've confirmed that the issue is a bug in pulldown-cmark version 12, and
has been resolved in version

[v0.13.0](https://github.com/pulldown-cmark/pulldown-cmark/releases/tag/v0.13.0)
and specifically fixed in
https://github.com/pulldown-cmark/pulldown-cmark/pull/1017

this PR simply bumps the pulldown-cmark version in zed which resolves
the crash on my local machine.


## recording 




https://github.com/user-attachments/assets/dc77132f-0d43-40f3-9841-0bf34fe714fb


Release Notes:

- Fixes crash due to markdown parsing via bumping pulldown-cmark

Co-authored-by: drbh <david.richard.holtz@gmail.com>

zed-zippy[bot] and drbh created

5b6799c Bump to 0.219.2 for @cole-miller

Zed Zippy created

34ebc7c git: Fix base text in branch diff and text diff view not being highlighted (cherry-pick #46302) (#46304)

Click to expand commit body
Release Notes:

- Fixed deleted portions of hunks in the branch diff and text diff views
not being syntax-highlighted.

Cole Miller created

bef41a2 zed 0.219.1

John Tur created

2571c6f Use transparent clear color for opaque windows on Linux (#46281) (cherry-pick to preview) (#46288)

Click to expand commit body
Cherry-pick of #46281 to preview

----
https://github.com/zed-industries/zed/pull/45423 changed the Blade
renderer to use a white clear color for "opaque" windows. This interacts
poorly with our client-side decorations, causing the shadows around the
window to be drawn over a white background.

Release Notes:

- N/A

Co-authored-by: John Tur <john-tur@outlook.com>

zed-zippy[bot] and John Tur created

33ac5b9 git: Fix project diff sorting not matching the git panel when tree view is in use (#46283) (cherry-pick to preview) (#46285)

Click to expand commit body
Cherry-pick of #46283 to preview

----
The tree view effectively always sorts by status, not by path.

Release Notes:

- Fixed incorrect ordering of paths in the project diff when using the
git panel's tree view.

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

zed-zippy[bot] and Cole Miller created

79d1d1f Add fallback message when preview changelog is empty (#46260)

Click to expand commit body
Avoid publishing preview releasing that say nothing in the release
notes:

<img width="947" height="258" alt="SCR-20260107-ioxx"
src="https://github.com/user-attachments/assets/97204551-8f55-43fb-8c9c-35491a4f1378"
/>

Release Notes:

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

Joseph T. Lyons created

0b9c125 v0.219.x preview

Joseph T. Lyons created

7fa65ea Add action tracking to enable token healing for Sweep (#46212)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

b41eb6e Add fallback message when preview changelog is empty (#46260)

Click to expand commit body
Avoid publishing preview releasing that say nothing in the release
notes:

<img width="947" height="258" alt="SCR-20260107-ioxx"
src="https://github.com/user-attachments/assets/97204551-8f55-43fb-8c9c-35491a4f1378"
/>

Release Notes:

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

Joseph T. Lyons created

82826e7 ep: Fix revision resolution for tilde expressions (#46258)

Click to expand commit body
When a revision like `abcd~1` wasn't found locally, the function would
fetch and then return `FETCH_HEAD`, which points to the tip of the
fetched branch rather than the requested revision expression.

Now it re-resolves the original revision after fetching, correctly
handling tilde expressions and other git revision syntax.

Release Notes:

- N/A

Oleksiy Syvokon created

0136e41 ep: Fix incorrect example count in failure summary (#46257)

Click to expand commit body
The 'X of Y examples failed' message was counting completed steps/tasks
instead of actual examples. For example, with 2 examples each going
through Load and Context steps, it would report '1 of 3' instead of '1
of 2'.

Release Notes:

- N/A

Oleksiy Syvokon created

cf8200f Skip worktree trust queries for remote collab project clients (#46256)

Click to expand commit body
Release Notes:

- Skip worktree trust queries for remote collab project clients

Kirill Bulatov created

523c27a ep cli: Clean leftover git locks (#46255)

Click to expand commit body
Sometimes git locks are left over from crashed runs. We now assume
there's only one process of the CLI running and clean them up. If we
want to run multiple processes at the same time, we should consider our
own file-based lock, but it seems fine for an internal tool.

Release Notes:

- N/A

Agus Zubiaga created

134c5e6 ep cli: Handle opening buffers from files created by the edit history (#46254)

Click to expand commit body
Since we don't persist new files to disk, they don't have entries, so we
have to look them up in memory first.

Release Notes:

- N/A

Agus Zubiaga created

1362582 Override project status in Closed Bugs workflow (#46253)

Click to expand commit body
Since the project board to which the closed bugs with new comments are
added might have an automated workflow for moving closed issues to the
"Done" status, we need to override the status to ensure the bugs are
actually surfaced to the team and not buried in "Done".

Release Notes:

- N/A

Lena created

a354473 Fix the action version in Closed Bugs GH workflow (#46251)

Click to expand commit body
fix-up for https://github.com/zed-industries/zed/pull/46249 because
testing github workflows is fun and opus 4.5 thinks it's amusing.

Release Notes:

- N/A

Lena created

754bfad Add GH workflow to surface comments on closed bugs (#46249)

Click to expand commit body
Sometimes bugs come back or are not fixed all the way. We want to
preserve the context of the issue we've closed prematurely so instead of
always making people open a new github issue in this case we want to be
able to notice if someone* comments on a closed bug and decide what to
do about it.

Before:

Bug is closed → A user can again/still reproduce it on a new version and
leaves a comment → Maybe someone sees the notification about it, maybe
not; maybe they see it but forget to act on it right away and it's lost.

After:

Bug is closed → A user can again/still reproduce it on a new version and
leaves a comment → The issue is added to a project board where it's
visible until someone makes a call about it (maybe the comment was “oh
my glob i'm so happy this was fixed” and no action is needed, or maybe
the issue must be reopened as a regression).

*Someone in this case means (1) not a bot, (2) not a member of staff.

Release Notes:

- N/A

Lena created

f845893 ui_input: Only render number field border on focus (#46165)

Click to expand commit body
The `NumberField.render` method was always rendering a `border_1` for
the number input, even when not focused. Even though it was using
`cx.theme().colors().border_transparent`, some themes don't have this
value set to a fully transparent color so it ends up looking a little
bit weird.

As such, this commit updates the way the border is rendered, to ensure
it's actually only rendered, i.e., the `border_1` method is only called,
when the field is actually focused.

Release Notes:

- Improved rendering of border on number field's input to ensure it's
only rendered when the field is focused

Dino created

9e9269b settings: Add Sapling directory to default `file_scan_exclusions` (#45837)

Click to expand commit body
[Sapling](https://sapling-scm.com/docs/git/git_support_modes/) is
similar to git / hg / jj in that it creates a /.sl directory when
initializing a repository. This can be added alongside the other source
control scan exclusions

includes a docs update for these defaults

Release Notes:
- Settings: Add Sapling directory to default `file_scan_exclusions`

Cory Wilhite created

00becd8 docs: Add LGPL v3 and zlib as accepted extension licenses (#46242)

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

Release Notes:

- N/A

Finn Evers created

f90fe5c language_models: Make wording for setting env vars consistent (#46240)

Click to expand commit body
Release Notes:

- N/A

Jakub Konka created