Commit log

ac30a8b Improve FreeBSD support (#33162)

Click to expand commit body
This PR contains a set of changes for improving FreeBSD support (#15309,
#29550) and is a kind of follow up to the PR #20480 which added an
initial support for FreeBSD.

A summary of changes is as follows:
- Add some more freebsd conditionals which seem missing in the previous
PR.
- Implement `anonymous_fd()` and `current_path()` functions for FreeBSD.
- Improve detection of FreeBSD in telemetry and GPU detection.
- Temporarily disable LiveKit/WebRTC support to make build succeed.
- Remove support for flatpak since it is Linux-only packaging format.

Adding `RUSTFLAGS="-C link-dead-code"` does not seem necessary anymore.
It builds fine without the flag.

Known issues:
- Integrated terminal is painfully laggy and virtually unusable in my
environment. This might be specific to my setup.
- I cannot input Japanese using IME. When I type characters, they appear
on the screen. But when I hit return key, they disappears. Seems the
same issue as #15409.

My environment is MATE desktop on X11 on FreeBSD 14.2 on Intel Core
i5-7260U integrated graphics.

P.S. For those who might be interested, a work-in-progress FreeBSD port
and binary packages are available at
https://github.com/tagattie/FreeBSD-Zed

Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Hiroki Tagato and Peter Tripp created

6b4c607 bedrock: Support Claude 3.7 in APAC (#33068)

Click to expand commit body
In ap-northeast-1 we have access to 3.7 and 4.0

Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Willem and Peter Tripp created

595f61f bedrock: Use Claude 3.0 Haiku where Haiku 3.5 is not available (#33214)

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

@kuzaxak Can you confirm this works for you?

Release Notes:

- bedrock: Use Anthropic Haiku 3.0 in AWS regions where Haiku 3.5 is
unavailable

Peter Tripp created

1047d8a bedrock: Add Sonnet 4 to cross-region model list (eu/apac) (#33192)

Click to expand commit body
Closes #31946

Sonnet 4 is [now
available](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)
via Bedrock in EU aws regions.

Release Notes:

- bedrock: Add cross-region usage of Sonnet 4 in EU/APAC AWS regions

Vladimir Kuznichenkov created

21fd5c2 emacs: Fix ctrl-p/ctrl-n navigating popover menus (#33218)

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

Release Notes:

- emacs: Fixed ctrl-p/ctrl-n keyboard navigation of autocomplete/code
actions menus

Peter Tripp created

336d2c4 docs: Update the AI configuration page (#33208)

Click to expand commit body
- Improve the Vercel v0 model section
- Replace "assistant panel" to "agent panel"
- Replace "Zed assistant" to "Zed agent"
- Fix "open configuration" action name
- Break sentences where useful

Release Notes:

- N/A

Danilo Leal created

5244085 windows: Fix wrong glyph index being reported (#33193)

Click to expand commit body
Closes #32424

This PR fixes two bugs:

* In cases like `fi ~~something~~`, the `fi` gets rendered as a
ligature, meaning the two characters are combined into a single glyph.
The final glyph index didn’t account for this change, which caused
issues.
* On Windows, some emojis are composed of multiple glyphs. These
composite emojis can now be rendered correctly as well.

![屏幕截图 2025-06-22
161900](https://github.com/user-attachments/assets/e125426b-a15e-41d1-a6e6-403a16924ada)

![屏幕截图 2025-06-22
162005](https://github.com/user-attachments/assets/f5f01022-2404-4e73-89e5-1aaddf7419d9)


Release Notes:

- N/A

张小白 created

af8f26d Add a `Copy` button for `About Zed` (#33197)

Click to expand commit body
Closes #33160

Since `TaskDialog` doesn’t allow users to copy its contents directly,
VSCode added a `Copy` button so users can easily copy the message.




https://github.com/user-attachments/assets/04090753-226f-44d9-992c-8cc8cb8d7ecb




Release Notes:

- N/A

张小白 created

3b9f504 Remove unused dependencies (#33189)

Click to expand commit body
I verified it after running `cargo shear`.

https://crates.io/crates/cargo-shear

Release Notes:

- N/A

yoshi-taka created

0579bf7 docs: Document `language_ids` in extension.toml (#33035)

Click to expand commit body
Document `language-servers.*.language_ids` property in extension.toml.

Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Emanuele Stoppa and Peter Tripp created

534475d Add reference to `commit_message_model` in git docs. (#33186)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

8d05f6f Add visual customization section to documentation (#33133)

Click to expand commit body
Release Notes:

- Improved settings documentation for [visual customization](https://zed.dev/docs/visual-customization/)

Peter Tripp created

3cb4342 editor: Disable tab to indent in single line mode (#33031)

Click to expand commit body
Release Notes:

- Disable indent on `tab` in single line editors.

----


https://github.com/user-attachments/assets/64207777-52c9-4425-be66-88acaf81f0b8

Jason Lee created

6fb1081 Disable next/previous hunk menu items when there are no hunks (#32907)

Click to expand commit body
Closes #32887

Release Notes:

- Button menu hunk is disabled if there are no changes

Alvaro Parker created

0ed6b4e git_ui: Add collapse_untracked_diff settings to improve usability for untracked files (#32591)

Click to expand commit body
In repositories with untracked files that are not intended to be added,
showing the expanded diffs in the panel is confusing, as it places the
changes side by side with changes in tracked files.

This change adds a setting, collapse_untracked_diff, that can be enabled
to collapse untracked diffs by default when the panel is opened.

See
https://github.com/zed-industries/zed/pull/31855#issuecomment-2957547018
(and previous comment for examples of why this is useful).

Example before this change, or with the setting in its default state:


![image](https://github.com/user-attachments/assets/f974c849-7ebf-424e-9397-442a6cc2513b)

Example after this change with the setting set to `true`:


![image](https://github.com/user-attachments/assets/bd8934f5-bd9a-4f5a-b723-cd4b798d2c2c)

Release Notes:

- Git: Added `collapse_untracked_diff` setting to auto-collapse
untracked diffs

Arseny Kapoulkine created

d75e210 docs: Fix path to keymap.json config file for macOS (#32728)

Click to expand commit body
Update key-bindings doc page to correctly reference
`~/.config/zed/keymap.json` instead of the old `~/.zed/keymap.json`

Closes #ISSUE

Release Notes:

- N/A

Dallin Huff created

2b3e453 Avoid using tmpdir when writing Zed settings.json on macOS (#32976)

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

Release Notes:

- macOS: Fixed an issue with writing Zed settings.json if user's home
directory is on a non-root volume.

Peter Tripp created

cb50f07 One Light Theme: Change constant color (#33166)

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

Changes the One Light syntax highlight for `constant` to be a distinct
from `comment`:

| Before | After |
| - | - |
| <img width="424" alt="Screenshot 2025-06-21 at 11 59 22"
src="https://github.com/user-attachments/assets/8780918f-7701-4780-809a-f95951970c90"
/> | <img width="430" alt="Screenshot 2025-06-21 at 11 59 17"
src="https://github.com/user-attachments/assets/d7efaa16-f95a-4076-a0b2-b1170e2ffe68"
/> |

I picked a color which was present in the palette from the original One
Light theme from Atom.

@failable: Sorry this took so long, does this look ok to you?

Release Notes:

- N/A

Peter Tripp created

a713c66 Redact command environment variables from log output (#32985)

Click to expand commit body
Before/After (linebreaks added for readability)
```log 
# before
INFO  [project::context_server_store::extension]
loaded command for context server mcp-server-github:
Command { 
  command: "/Users/peter/Library/Application Support/Zed/extensions/work/mcp-server-github/github-mcp-server-v0.5.0/github-mcp-server", 
  args: ["stdio"], 
  env: [("GITHUB_PERSONAL_ACCESS_TOKEN", "gho_WOOOOOOOOOOOOOOO")] 
}

#after
INFO  [project::context_server_store::extension]
loaded command for context server mcp-server-github:
Command {
  command: "/Users/peter/Library/Application Support/Zed/extensions/work/mcp-server-github/github-mcp-server-v0.5.0/github-mcp-server",
  args: ["stdio"],
  env: [("GITHUB_PERSONAL_ACCESS_TOKEN", "[REDACTED]")]
}
```

Release Notes:

- Redact sensitive environment variables from MCP logs

Peter Tripp created

76e3136 editor: Utilize `filter_text` from language server for `filter_range` (#33155)

Click to expand commit body
Closes #33106

Instead of directly using `filter_text` in `StringMatchCandidate`, which
yields better results for fuzzy matching but messes up with highlighting
letters in bold, as `positions` list generated by fuzzy crate are now of
`filter_text` and not `label` shown to the user.

This PR fixes it by keeping use of `filter_range` in
`StringMatchCandidate`, which is range w.r.t to `label` shown to user.
And actually generating this `filter_range` at source by using
`filter_range` if exists.

- [x] Tests

Release Notes:

- Fixed issue where incorrect letters are marked as bold in completions.

Smit Barmase created

834cdc1 agent: Store if context server should be enabled/disabled in the settings (#32994)

Click to expand commit body
- [x] Show disabled MCP servers in the list so you can enable them again
- [x] If MCP is not present in the settings, add it

Closes #ISSUE

Release Notes:

- agent: Allow to enable/disable context servers permanently in the
agent configuration view

---------

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

Bennet Bo Fenner and Danilo Leal created

dfdd2b9 language_models: Add thinking support to OpenRouter provider (#32541)

Click to expand commit body
Did some bit cleanup of code for loading models for settings as that is
not required as we are fetching all the models from openrouter so it's
better to maintain one source of truth

Release Notes:

- Add thinking support to OpenRouter provider

Umesh Yadav created

b9838ef agent: Add button to scroll to top of the thread (#33130)

Click to expand commit body
Release Notes:

- agent: Added a button to scroll to top of the thread.

Danilo Leal created

db8acfa Update pathfinder_simd for nightly arm simd fixes (#33131)

Click to expand commit body
`pathfinder_simd` doesn't compile on nightly aarch64 right now, but that
was fixed by https://github.com/servo/pathfinder/pull/575 and updated on
crates.io by https://github.com/servo/pathfinder/pull/577. This PR
simply updates the `pathfinder_simd` dependency to the version that
contains these fixes.

I verified that this compiles with nightly on my machine.

June created

5c1dc8b Cargo.lock updates (#33129)

Click to expand commit body
Should have been in #33125

Release Notes:

- N/A

Michael Sloan created

7e801dc agent: Fix issues with usage display sometimes showing initially fetched usage (#33125)

Click to expand commit body
Having `Thread::last_usage` as an override of the initially fetched
usage could cause the initial usage to be displayed when the current
thread is empty or in text threads. Fix is to just store last usage info
in `UserStore` and not have these overrides

Release Notes:

- Agent: Fixed request usage display to always include the most recently
known usage - there were some cases where it would show the initially
requested usage.

Michael Sloan created

e0c0b6f Remove duplicate issues in top-ranking issues script (#33127)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

ad76db7 debugger: Add variable watchers (#32743)

Click to expand commit body
### This PR introduces support for adding watchers to specific
expressions (such as variable names or evaluated expressions).

This feature is useful in scenarios where many variables are in scope,
but only a few are of interest—especially when tracking variables that
change frequently. By allowing users to add watchers, it becomes easier
to monitor the values of selected expressions across stack frames
without having to sift through a large list of variables.


https://github.com/user-attachments/assets/c49b470a-d912-4182-8419-7406ba4c8f1e

------

**TODO**:
- [x] make render variable code reusable for render watch method
- [x] use SharedString for watches because of a lot of cloning
- [x] add tests
  - [x] basic test
  - [x] test step debugging

Release Notes:

- Debugger Beta: Add support for variable watchers

---------

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

Remco Smits , Anthony Eid , and Anthony created

9f2c541 Fetch 100 results per page (#33124)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

9597c73 Account for issue types in top-ranking issues script (#33118)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

7812985 linux: Fix blurry rendering on Wayland when using fractional scaling (#33087)

Click to expand commit body
Closes #25195

In Wayland, To create buffer size (`renderer.update_drawable_size`), we
convert logical pixels to device pixels by taking the scale factor into
account. Later, we also let the compositor know the logical pixels we
want to use for our app (`viewport.set_destination`). Then, the
compositor takes our buffer and tries to scale it to fit the viewport
size we provided. If this is accurate, we see perfect rendering. If our
buffer size is not accurate (off by 1px in this case), the compositor
scales our buffer to fit the viewport size. This causes blur.

To make sure we set correct buffer size for renderer as same as what
compositor is going to use, we needs to use rounding instead of truncate
when converting logical pixels to device pixels. It's not super clear
from docs, what exact algorithm it uses but it says it uses rounding and
seems to fix issue for me if we follow that for our buffer.

From https://wayland.app/protocols/fractional-scale-v1:
> If a surface has a surface-local size of 100 px by 50 px and wishes to
submit buffers with a scale of 1.5, then a buffer of 150px by 75 px
should be used and the wp_viewport destination rectangle should be 100
px by 50 px.
>
> For toplevel surfaces, the size is **rounded halfway away from zero**.
The rounding algorithm for subsurface position and size is not defined.

Tested on:
- [x] Gnome
- [x] KDE
- [ ] ~Sway~ (Need to investigate this more for Sway)

Release Notes:

- Fixed blurry rendering on Wayland when using fractional scaling for
Gnome and KDE.

Co-authored-by: Julia Ryan p1n3appl3@users.noreply.github.com
Co-authored-by: Antonio Scandurra me@as-cii.com

Smit Barmase , Julia Ryan p1n3appl3@users.noreply.github.com , and Antonio Scandurra me@as-cii.com created

b0f192e agent: Do not send stale files notifications (#32974)

Click to expand commit body
Removing it for two reasons:

1. We need a better implementation that doesn't hurt caching and doesn't
distracts the agent too much (see
https://github.com/zed-industries/zed/pull/32876 for more context)

2. Current insertion point of notifications doesn't play well with
Claude Thinking models (see
https://github.com/zed-industries/zed/issues/33000#issuecomment-2991709484)

I think we should get this code back in a form of a tool. But for now,
I'm dropping it to resolve recent issues.

Closes #33000

Release Notes:

- N/A

Oleksiy Syvokon created

c9e5ff2 docs: Update manifest keys in debugger extension docs (#33085)

Click to expand commit body
This is silly and caused at least one of our users a lot of confusion.

Closes #33040

Release Notes:

- N/A

Piotr Osiewicz created

c02e249 windows: Simplify the logic of `handle_get_min_max_info_msg` (#33102)

Click to expand commit body
Release Notes:

- N/A

张小白 created

a7bbbc0 Fix handling of `--diff` flag (#33094)

Click to expand commit body
* Restore the ability to combine --diff with other path arguments
* Restore combining --diff with --wait

There is still one defect in the current handling of `--diff`: when Zed
is already open, we'll open the diff view in your current active zed
window. It would be better to search all of the open zed windows for any
window containing the diffed paths, but implementing that is a bit
complex. Currently, the logic for *picking* an existing zed window is
coupled to the logic for opening buffers in that window. I'd like to
decouple it, but I wanted to keep this change small, so that we hotfix
it to stable without too much risk.

Release Notes:

- Fixed a bug where the `--diff` CLI flag did not work with `--wait`

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Max Brunsfeld and Ben Brandt created

f8a0eb5 Fix capslock on windows (#33093)

Click to expand commit body
The new feature doesn't work well on windows

Release Notes:

- N/A

张小白 created

d97a58b debugger: Refresh variable list on set variable value response (#33078)

Click to expand commit body
Variable list wasn't notified when a set variable value request was
successfully. This caused the variable list and inline values to show
stale data in some cases, which this PR fixes.

Release Notes:

- debugger: Fix bug where setting a variable's value wouldn't update the
variable list or inline values

Anthony Eid created

10f0aab docs: Update development debugger guide to include Zed's debugger (#33080)

Click to expand commit body
Closes #33069 

Release Notes:

- N/A

Anthony Eid created

2624950 agent: Fix text wrapping in the provider set up list items (#33063)

Click to expand commit body
Release Notes:

- agent: Fixed text wrapping in the provider set up list items in the
settings view.

Danilo Leal created

ca3f1d6 Ensure compiled extensions work with older Zed versions (#33051)

Click to expand commit body
Closes #33039

This PR fixes a bug which causes the newest versions of the Biome and
Tombi extensions to not work with older Zed versions.

The bug occurs because in #32822, the type of the debug adapter and
debug locators was changed from a Vec to a BTreeMap. However, these
fields were already introduced much earlier in Zed, which now causes the
de-serialization of the `extension.toml` to fail for older Zed versions.
Any extension compiled with the newest extension CLI bumped in
https://github.com/zed-industries/extensions/pull/2866 will not work
with older Zed versions prior to v0.191.

By adding this change and bumping the extension CLI again, this could be
prevented. On de-serialization, we would just fallback to either a Vec
for versions prior to v0.190 or a BTreeMap after. Feel free to let me
know what you think here.

Release Notes:

- N/A

Finn Evers created

00fe195 debugger: Move breakpoint management to the pane strip (#33062)

Click to expand commit body
Closes #ISSUE

Release Notes:

- debugger: Moved "remove breakpoint" button to the top of a breakpoint
list"

Piotr Osiewicz created

bca1a91 Make pull diagnostics remote test more robust (#33057)

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

Due to request races, we cannot predict the amount of result_id s that
we'll get. Ensure their amount grows monotonically each time.

This time, iterations=5000 did not fail for me.

Release Notes:

- N/A

Kirill Bulatov created

b89ddf3 agent: Improve layout shift on previous message editor (#33055)

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

This PR creates a slot for the `message_editor::create_editor` to allow
using different values for min and max lines. In practice, the panel's
main editor now has a minimum of 4 lines, whereas the previous message
editor has just one. This makes the layout shift when clicking on a
previous message to edit it much smaller.

Release Notes:

- agent: Improved layout shift when clicking to edit a previous sent
message.

Danilo Leal created

5c7e90d agent: Move focus to the panel after sending a user message edit (#33049)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/31611.
Closes https://github.com/zed-industries/zed/issues/33005.

Release Notes:

- agent: Fixed a bug where, after confirming editing a previous user
message while zoomed in, the focus went to the buffer and the panel got
closed.

Danilo Leal created

61abfd5 agent: Avoid layout shift due to the "waiting for confirmation" label (#33046)

Click to expand commit body
Just a tiny, one-line change to avoid the "Waiting for Confirmation"
animated label pushing the "allow" buttons to the side.

Release Notes:

- agent: Fixed layout shift in "waiting for confirmation" state in the
terminal card.

Danilo Leal created

ddaa8b3 agent: Expand disclosure click area in setting view's provider section (#33041)

Click to expand commit body
Previously, you could only expand the provider item in the agent panel
settings view by clicking on the little chevron icon button. Now, you
can click on the whole title area (minus the button, when present) to do
that. Just that little bit more convenient to interact with it.

Release Notes:

- N/A

Danilo Leal created

3b31db1 open_router: Avoid redundant model list downloads (#33033)

Click to expand commit body
Previously, the OpenRouter models list (~412kb) was being downloaded
around 10 times during startup -- even when OpenRouter was not
configured.

This update addresses the issue by:

1. Fetching the models list only when OpenRouter settings change.
2. Skipping API calls if OpenRouter is not configured.


Release Notes:

- Avoid unnecessary requests to OpenRouter

Oleksiy Syvokon created

1f736ed copilot: Remove PromptTokensDetails from Usage struct (#33029)

Click to expand commit body
Closes #33024

Release Notes:

- Removed `PromptTokensDetails` from `Usage` as Gemini no longer
supplies cached token data for copilot.

Umesh Yadav created

0b228ad debugger: Fix issues with debugging scripts from package.json (#32995)

Click to expand commit body
- [x] Pass in cwd
- [x] Use the appropriate package manager
- [x] Don't mix up package.json and composer.json

Release Notes:

- debugger: Fixed wrong arguments being passed to the DAP when debugging
scripts from package.json.

Cole Miller created

e914d84 copilot: Fix config dir logic to support Flatpak environments (#32901)

Click to expand commit body
Closes #30784

In github copilot we were not handling the config path correctly for
FLATPAK.

* Only tested on mac don't have access to other platform. But this
should work on other platform as well. It follows the similar pattern
seen in zed config path resolution.
- [x] Macos
- [ ] Linux
- [ ] Linux with Flatpak
- [ ] Windows

Release Notes:

- Fix copilot config detection for flatpack

Umesh Yadav created