Commit log

5bfc0ba macos: Reset exception ports for shell-spawned processes (#44193)

Click to expand commit body
## Summary

Follow-up to #40716. This applies the same `reset_exception_ports()` fix
to `set_pre_exec_to_start_new_session()`, which is used by shell
environment capture, terminal spawning, and DAP transport.

### Root Cause

After more debugging, I finally figured out what was causing the issue
on my machine. Here's what was happening:

1. Zed spawns a login shell (zsh) to capture environment variables
2. A pipe is created: reader in Zed, writer mapped to fd 0 in zsh
3. zsh sources `.zshrc` → loads oh-my-zsh → runs poetry plugin
4. Poetry plugin runs `poetry completions zsh &|` in background
5. Poetry inherits fd 0 (the pipe's write end) from zsh
6. zsh finishes `zed --printenv` and exits
7. Poetry still holds fd 0 open
8. Zed's `reader.read_to_end()` blocks waiting for all writers to close
9. Poetry hangs (likely due to inherited crash handler exception ports
interfering with its normal operation)
10. Pipe stays open → Zed stuck → no more processes spawn (including
LSPs)

I confirmed this by killing the hanging `poetry` process, which
immediately unblocked Zed and allowed LSPs to start. However, this
workaround was needed every time I started Zed.

While poetry was the culprit in my case, this can affect any shell
configuration that spawns background processes during initialization
(oh-my-zsh plugins, direnv, asdf, nvm, etc.).

Fixes #36754

## Test plan

- [x] Build with `ZED_GENERATE_MINIDUMPS=true` to force crash handler
initialization
- [x] Verify crash handler logs appear ("spawning crash handler
process", "crash handler registered")
- [x] Confirm LSPs start correctly with shell plugins that spawn
background processes

Release Notes:

- Fixed an issue on macOS where LSPs could fail to start when shell
plugins spawn background processes during environment capture.

Rémi Kalbe created

d7b99a5 gpui: Fix new window cascade positioning (#44358)

Click to expand commit body
Closes [#44354](https://github.com/zed-industries/zed/discussions/44354)

Release Notes:
- Fixed new windows to properly cascade from the active window instead
of opening at the exact same position

Jake Go created

7691cf3 Fix selections when opening excerpt with an existing buffer that has expanded diff hunks (#44360)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

63cc90c debugger: Fix stack frame filter not persisting between sessions (#44352)

Click to expand commit body
This bug was caused by using two separate keys for writing/reading from
the KVP database. The bug didn't show up in my debug build because there
was an old entry of a valid key.

I added an integration test for this feature to prevent future
regressions as well.

Release Notes:

- debugger: Fix a bug where the stack frame filter state wouldn't
persist between sessions

Anthony Eid created

d1e45e2 debugger: Fix UI would not update when you select the `Current State` option (#44340)

Click to expand commit body
This PR fixes that the `Current State` option inside the history
dropdown does not updating the UI. This was because we didn't send the
`SessionEvent::HistoricSnapshotSelected` event in the reset case. This
was just a mistake.

**After**


https://github.com/user-attachments/assets/6df5f990-fd66-4c6b-9633-f85b422fb95a

cc @Anthony-Eid

Release Notes:

- N/A

Remco Smits created

9da0d40 docs: Point to the right URL for Regal LSP (#44318)

Click to expand commit body
Release Notes:

- N/A

Kunall Banerjee created

9f344f0 docs: Point to the right URL for Astro LSP (#44314)

Click to expand commit body
The original URL points to a deprecated repo.

Release Notes:

- N/A

Kunall Banerjee created

ef76f07 debugger: Make historic snapshot button a dropdown menu (#44307)

Click to expand commit body
This allows users to select any snapshot in the debugger history feature
and go back to the active session snapshot.

We also change variable names to use hsitoric snapshot instead of
history and move the snapshot icon to the back of the debugger top
control strip.


https://github.com/user-attachments/assets/805de8d0-30c1-4719-8af7-2d47e1df1da4

Release Notes:

- N/A

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Remco Smits and Anthony Eid created

4577e1b debugger: Get stack frame list working with historic snapshot feature (#44303)

Click to expand commit body
This PR fixes an issue where the stack frame list would not update when
viewing a historic snapshot.
We now also show the right active debug line based on the currently
selected history.


https://github.com/user-attachments/assets/baccd078-23ed-4db3-9959-f83dc2be8309

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Remco Smits and Anthony Eid created

a574ae8 debugger: Start work on adding session snapshot feature (#44298)

Click to expand commit body
This PR adds the basic logic for a feature that allows you to visit any
stopped information back in time. We will follow up with PRs to improve
this and actually add UI for it so the UX is better.


https://github.com/user-attachments/assets/42d8a5b3-8ab8-471a-bdd0-f579662eadd6


Edit Anthony:

We feature flagged this so external users won't be able to access this
until the feature is polished

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>

Remco Smits and Anthony Eid created

16666f5 Use single `languages::{rust_lang, markdown_lang}` in tests across the codebase (#44282)

Click to expand commit body
This allows referencing proper queries and keeping the tests up-to-date.

Release Notes:

- N/A

Kirill Bulatov created

b2e35b5 zlog: Fix dynamic mod path filtering (#44296)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Linux: cleaned up noisy logs from `zbus`

Ben Kunkle created

9e33243 Fix unregistration logic for pull diagnostics (#44294)

Click to expand commit body
Even if `workspace_diagnostics_refresh_tasks` is empty, registrations
which didn't advertise support for workspace diagnostics may still
exist.

Release Notes:

- N/A

John Tur created

a0848da agent ui: Fix clicks on the notification sometimes not being triggered (#44280)

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

We were seeing clicks on the "View Panel" and "Dismiss" buttons
sometimes not being triggered. I believe this was happening because the
overall parent also had an on_click, which due to this being a popup
window, was causing conflicts with the buttons' on click handlers. This
should hopefully fix that issue.

Release Notes:

- agent: Fixed an issue where clicking on the agent notification buttons
would sometimes not trigger their actions.

Danilo Leal created

d727467 Put tracy dependency behind feature tracy (#44277)

Click to expand commit body
It broke CI, now it no longer does :tada: Proper fix followes after the
weekend.

Release Notes:

- N/A

David Kleingeld created

0565992 project picker: Improve tooltip on secondary actions (#44264)

Click to expand commit body
This PR adds the keybinding for the "open in project window" button on
the project picker as well as makes the tooltip for the content bit on
the active list item only show up for the content container.


https://github.com/user-attachments/assets/42944cf7-e4e7-4bf8-8695-48df8b3a35eb


Release Notes:

- N/A

Danilo Leal created

e1d8c1a Improve visual alignment on the inline assistant (#44265)

Click to expand commit body
Just making all of the elements in the inline assistant more vertically
centered.

<img width="500" height="1938" alt="Screenshot 2025-12-06 at 12  02@2x"
src="https://github.com/user-attachments/assets/7f9627ac-4f2d-4f93-9a7e-31c5a01c32d1"
/>

Release Notes:

- N/A

Danilo Leal created

f08fd73 Add experimental mercury edit prediction provider (#44256)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Agus Zubiaga , Ben Kunkle , and Max Brunsfeld created

51b7d06 Fix a typo: to -> two (#44272)

Click to expand commit body
Release Notes:

- N/A

Haojian Wu created

66c7bdf git: For conflicted files, set project diff excerpts using conflicts only (#44263)

Click to expand commit body
It's just distracting having excerpts for all the successfully merged
hunks.

Release Notes:

- git: The project diff now focuses on merge conflicts for files that
have them.

Cole Miller created

363fbbf git: Fix excerpt ranges in the commit view (#44261)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

9860884 gpui: Make length helpers into const functions (#44259)

Click to expand commit body
Make gpui's `rems()`, `phi()`, `auto()` length related helpers into
const functions.

I can't see why these functions aren't already const except that it
must've been overlooked when they were written?

In my project I had need for rems() to be const, and I thought I'd do
phi() and auto() whilst I was in the neighbourhood

Release Notes:

- N/A

Serophots created

4cef8eb Fix persistence for single-file worktrees (#44257)

Click to expand commit body
We were just deleting them before

Co-Authored-By: Matthew Chisolm <mchisolm0@gmail.com>

Closes #ISSUE

Release Notes:

- Fixed restoring window location for single-file worktrees

Co-authored-by: Matthew Chisolm <mchisolm0@gmail.com>

Conrad Irwin and Matthew Chisolm created

e5f8773 markdown_preview: Remove unnecessary vec allocation (#44238)

Click to expand commit body
Instead of allocating a one-element vec on the heap, we can just use an
array here (since `Editor::edit` accepts anything that implements
`IntoIterator`).

I haven't checked if there are more instances that can be simplified,
just accidentally stumbled upon this when working on something else in
the markdown preview crate.

Release Notes:

- N/A

Oleksii (Alexey) Orlenko created

f4b8b0f settings: Fix inconsistent terminal font weight step size (#44243)

Click to expand commit body
Closes #44242

Release Notes:

- Fixed inconsistent terminal font weight step size in settings

Mayank Verma created

5cd30e5 inline assistant: Use tools and remove insertion mode (#44248)

Click to expand commit body
Co-authored by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Release Notes:

- N/A

Michael Benfield created

a350438 Specify a schema to use when dealing with JSONC files (#44250)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/43854
Closes https://github.com/zed-industries/zed/issues/40970

Seems that json language server does not distinguish between JSONC and
JSON files in runtime, but there is a static schema, which accepts globs
in its `fileMatch` fields.

Use all glob overrides and file suffixes for JSONC inside those match
fields, and provide a grammar for such matches, which accepts trailing
commas.

Release Notes:

- Improved JSONC trailing comma handling

Kirill Bulatov created

bd6ca84 git_ui: Improve the branch picker UI (#44217)

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

- Make this picker feel more consistent with other similar pickers
(namely, the project picker)
- Move actions to the footer and toggle them conditionally
- Only show the "Create" and "Create New From: {default}" when we're
selecting the "Create" list item _or_ when that item is the only
visible. This means I'm changing here the state transition to only
change to `NewBranch/NewRemote` if we only have those items available.
- Reuse more UI code and use components when available (e.g.,
`ListHeader`)
- Remove secondary actions from the list item

Next step (in another PR), will be refine the same picker in the
smaller, panel version.


https://github.com/user-attachments/assets/fe72ac06-c1df-4829-a8a4-df8a9222672f

Release Notes:

- N/A

Danilo Leal created

f9cea5a Fix project not getting dropped after closing window (#44237)

Bennet Bo Fenner created

3bb6c25 git_ui: Fix history view label truncation (#44218)

Click to expand commit body
There's still a weird problem happening where the labels (and the label
on the tab, too, for what is worth) flicker as the file history view
gets smaller. I suspect that problem is related to something
else—potentially the truncation algorithm or focus management—so I'm not
solving it here.

<img width="500" height="1948" alt="Screenshot 2025-12-05 at 11  24@2x"
src="https://github.com/user-attachments/assets/25715725-e2cb-475a-bdab-f506bb75475f"
/>

Release Notes:

- N/A

Danilo Leal created

37b0cdf multi_buffer: Remap excerpt ids to latest excerpt in excerpt fetching (#44229)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

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

Lukas Wirth created

d76dd86 tab_switcher: Add documentation for tab switcher (#44189)

Click to expand commit body
Release Notes:

- Added documentation for Tab Switcher

Dino created

b558be7 adds tracing for instrumenting non-async functions (#44147)

Click to expand commit body
Tracing code is not included in normal release builds
Documents how to use them in our performance docs
Only the maps and cursors are instrumented atm

# Compile times:
current main: fresh release build (cargo clean then build --release)
377.34 secs
current main: fresh debug build (cargo clean then build )
89.31 secs

tracing tracy: fresh release build (cargo clean then build --release)
374.84 secs
tracing tracy: fresh debug build (cargo clean then build )
88.95 secs

tracing tracy: fresh release build with timings (cargo clean then build
--release --features tracing)
375.77 secs
tracing tracy: fresh debug build with timings (cargo clean then build
--features tracing)
90.03 secs


Release Notes:

- N/A

---------

Co-authored-by: localcc <work@localcc.cc>

David Kleingeld and localcc created

07fe8e9 remoting: Proxy configuration docs (#44225)

Click to expand commit body
Adds an explicit section about how to configure proxies when remoting.

Release Notes:

- N/A

Agus Zubiaga created

b776178 agent_ui: Fix mention and slash command menu not appearing with show_completions_on_input set to false (#44222)

Click to expand commit body
Addresses a regression introduced by
https://github.com/zed-industries/zed/pull/44021 that caused @mentions
and slash commands to stop working if you set
`show_completions_on_input: false` in your settings.

In this case, we should always show these menus, otherwise the features
won't work at all.

Release Notes:

- N/A

Ben Brandt created

1d0aef6 Ensure font features are applied to styled text (#44219)

Click to expand commit body
- Replace `gpui::styled::Styled.font_family()` calls with
`gpui::styled::Styled.font()` when laying out inline diagnostics and
inline blame, to ensure that the font's features are also used, and
not just the font feature.
- Update both `editor::hover_popover::hover_markdown_style` and
`editor::hover_popover::diagnostics_markdown_style` to ensure that
both the UI and Buffer font features are used in both markdown and
diagnostics popover.

Closes #44209 

Release Notes:

- Fixed font feature application for inline git blame, inline
diagnostics, markdown popovers and diagnostics popovers

Dino created

c7ef302 remoting: Server download connect timeout (#44216)

Click to expand commit body
Sometimes machines are configured to drop outbound packets (rather than
reject connections). In these cases, curl/wget just hang causing our
download step to never complete. This PR adds a timeout of 10s for the
connection (not the whole download), so that in situations like this we
can fallback to our client-side download eventually.

Related to but doesn't fully fix:
https://github.com/zed-industries/zed/issues/43694 and
https://github.com/zed-industries/zed/issues/43718

Release Notes:

- remote: Add 10s connect timeout for server download

Agus Zubiaga created

822fc7e remote: Use last line of `uname` and shell output (#44165)

Click to expand commit body
We have seen cases (see
https://github.com/zed-industries/zed/issues/43694) where the user's
shell initialization script includes text that ends up in the output of
the commands we use to detect the platform and shell of the remote. This
solution isn't perfect, but it should address the issue in most
situations since both commands should only output one line.

Release Notes:

- remote: Improve resiliency when initialization scripts output text

Agus Zubiaga created

126d708 git: Fix branch picker creating new branches with refs/head/ prefixed on the branch name (#44206)

Click to expand commit body
The bug was introduced in this recent PR:
https://github.com/zed-industries/zed/pull/42819. Since it's still in
nightly, there is no need for release notes.

I also polished the feature a bit by:
- Ensuring branch names are always a single line so the branch picker's
uniform list uses the correct element height.
- Adding tooltip text for the filter remotes button.
- Fixing the create branch from default icon showing up for non-new
branch entries.

Release Notes:

- N/A

Anthony Eid created

a5ab5c7 gpui: Document the leak detector (#44208)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

35da6d0 debugger: Fix evaluate selection running two evaluations & failing for Python and go (#44205)

Click to expand commit body
Evaluate selection now acts as if the text was typed verbatim into the
console.

Closes ##33526

Release Notes:

- debugger: Fixed "evaluate selection" not behaving as if the
highlighted text was not typed verbatim into the console.

Piotr Osiewicz created

d6241b1 Fix infinite loop in assemble_excerpts (#44195)

Click to expand commit body
Also, expand the number of identifiers fetched.

Release Notes:

- N/A

Max Brunsfeld created

42583c1 Reorganize edit prediction code and remove old experiments (#44187)

Click to expand commit body
Release Notes:

- N/A

---------

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

Max Brunsfeld , Agus Zubiaga , and Ben Kunkle created

7616710 Add experimental LSP-based context retrieval system for edit prediction (#44036)

Click to expand commit body
To do

* [x] Default to no context retrieval. Allow opting in to LSP-based
retrieval via a setting (for users in `zeta2` feature flag)
* [x] Feed this context to models when enabled
* [x] Make the zeta2 context view work well with LSP retrieval
* [x] Add a UI for the setting (for feature-flagged users)
* [x] Ensure Zeta CLI `context` command is usable

---

* [ ] Filter out LSP definitions that are too large / entire files (e.g.
modules)
* [ ] Introduce timeouts
* [ ] Test with other LSPs
* [ ] Figure out hangs

Release Notes:

- N/A

---------

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

Max Brunsfeld , Ben Kunkle , and Agus Zubiaga created

cd8679e Allow trailing commas in builtin JSONC schemas (#43854)

Click to expand commit body
The JSON language server looks for a top-level `allowTrailingCommas`
flag to decide whether it should warn for trailing commas. Since the
JSONC parser for these builtin files can handles trailing commas, adding
this flag to the schema also prevents a warning for those commas.

I don't think there's an issue that is only for this specific issue, but
it relates to *many* existing / older issues:
- #18509
- #17487
- #40970
- #18509
- #21303

Release Notes:

- Suppress warning for trailing commas in builtin JSON files
(`settings.json`, `keymap.json`, etc.)

Ian Chamberlain created

43f977c terminal view: Use tooltip element for the tab tooltip (#44169)

Click to expand commit body
Just recently realized we don't need this custom component for it given
we now have `Tooltip::element`. UI result is exactly the same; nothing
changes.

Release Notes:

- N/A

Danilo Leal created

bdb8caa git_ui: Fix indent guides not showing for file buffers in the commit view (#44166)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/44162 where my
strategy for not displaying the indent guides only in the commit message
was wrong given I ended up... disabling indent guides for all the
buffers. This PR adds a new method to the editor where we can disable it
for a specific buffer ID following the pattern of
`disable_header_for_buffer`.

Release Notes:

- N/A

Danilo Leal created

9ae77ec markdown: Don't adjust indentation when inserting with multiple cursors (#40794)

Click to expand commit body
Closes #40757

## Summary

This PR addresses an issue where Zed incorrectly adjusts the indentation
of Markdown lists when inserting text using multiple cursors. Currently:

- Editing individual lines with a single cursor behaves correctly (no
unwanted indentation changes).
- Using multiple cursors, Zed automatically adjusts the indentation,
unlike VS Code, which preserves the existing formatting.

## Tasks
- [x] Implement a new test to verify correct Markdown indentation
behavior with multiple cursors.
- [x] Apply the fix to prevent Zed from adjusting indentation when
inserting text on multiple cursors.

------------------------

Release Notes:

- Fixed an issue where inserting text with multiple cursors inside a
nested Markdown list would cause it to lose its indentation.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

vipex and Smit Barmase created

d5ed9d3 git: Don't call `git2::Repository::find_remote` for every blamed buffer (#44107)

Click to expand commit body
We already store the remote URLs for `origin` and `upstream` in the
`RepositorySnapshot`, so just use that data. Follow-up to #44092.

Release Notes:

- N/A

Cole Miller created

74a1b5d Update PHP language server docs (#44001)

Click to expand commit body
Reformat document structure like other language docs, improve
information flow, add missing requirements, and fix typos.

Release Notes:

- N/A

---------

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

Liffindra Angga Zaaldian and Piotr Osiewicz created