Commit log

ccb049b Format streamed edits on save (#31623)

Click to expand commit body
Re-enables format on save for agent changes (when the user has that
enabled in settings), except differently from before:
- Now we do the format-on-save in the separate buffer the edit tool
uses, *before* the diff
- This means it never triggers separate staleness
- It has the downside that edits are now blocked on the formatter
completing, but that's true of saving in general.

Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>

Richard Feldman and Agus Zubiaga created

fe57eed agent: Rename `PromptEditor` to `TextThread` in the panel's `ActiveView` (#31705)

Click to expand commit body
Was touching this part of the Agent Panel and thought it could be a
quick name consistency win here, so it is aligned with the terminology
we're currently actively using in the product/docs.

Release Notes:

- N/A

Danilo Leal created

c57e6bc tab_switcher: Add placeholder text (#31697)

Click to expand commit body
| Before | After |
|---|---|
|<img width="478" alt="image"
src="https://github.com/user-attachments/assets/5baba783-ee31-42cd-9760-7ee19edb1123"
/>|<img width="478" alt="image"
src="https://github.com/user-attachments/assets/1b149500-4a97-4085-80e5-fd628c92471a"
/>|

Release Notes:

- N/A

5brian created

83135e9 Introduce $ZED_CUSTOM_PYTHON_ACTIVE_ZED_TOOLCHAIN_RAW to work around (#31685)

Click to expand commit body
Follow up to #31674 

Release Notes:

- N/A

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

Piotr Osiewicz and Kirill Bulatov created

703ee29 Rename Max Mode to Burn Mode throughout code and docs (#31668)

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

I started looking at config and changed preferred_completion_mode to
burn to only find its max so made changes to align it better with
rebrand. As this is in preview build now.

This doesn't touch zed_llm_client. Only the Zed changes the code and doc
to match the new UI of burn mode. There are still more things to be
renamed, though.

Release Notes:

- N/A

---------

Signed-off-by: Umesh Yadav <git@umesh.dev>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Umesh Yadav and Danilo Leal created

f792827 Allow to reuse PickerPopoverMenu outside of the model selector (#31684)

Click to expand commit body
LSP button preparation step: move out the component that will be used to
build the button's context menu.

Release Notes:

- N/A

Kirill Bulatov created

45f9edc docs: Add small refinements to CSS adjacent pages (#31683)

Click to expand commit body
Follow up to https://github.com/zed-industries/zed/pull/31681. Was
visiting some of these pages and noticed these somewhat small formatting
and copywriting improvement opportunities. The docs for Svelte in
particular felt somewhat unorganized.

Release Notes:

- N/A

Danilo Leal created

e335454 docs: Improve the Tailwind CSS page (#31681)

Click to expand commit body
Namely, ensuring we mention the support for their Prettier plugins.

Release Notes:

- N/A

Danilo Leal created

cb187b0 evals: Configurable number of max dialog turns (#31680)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

d989b22 Do not react on settings change for disabled minimaps (#31677)

Click to expand commit body
Turning minimap on during debug sessions would cause the console editor
to gain the minimap, despite it being explicitly disabled in the code.

Release Notes:

- N/A

Kirill Bulatov created

ae076fa task: Add ZED_RELATIVE_DIR task variable (#31657)

Click to expand commit body
This is my first contribution to zed, let me know if I missed anything.

There is no corresponding issue/discussion.

`$ZED_RELATIVE_DIR` can be used in cases where a task's command's
filesystem namespace (e.g. inside a container) is different than the
host, where absolute paths cannot work.

I modified `relative_path` to `relative_file` after the addition of
`relative_dir`.

For top-level files, where `relative_file.parent() == Some("")`, I use
`"."` for `$ZED_RELATIVE_DIR`, which is a valid relative path in both
*nix and windows.

Thank you for building zed, and open-sourcing it. I hope to contribute
more as I use it as my primary editor.

Release Notes:

- Added ZED_RELATIVE_DIR (path to current file's directory relative to
worktree root) task variable.

Dhruvin Gandhi created

b4af61e Revert "task: Wrap programs in ""s (#31537)" (#31674)

Click to expand commit body
That commit broke a lot, as our one-off tasks (alt-enter in the tasks
modal), npm, jest tasks are all not real commands, but a composition of
commands and arguments.

This reverts commit 5db14d315b0822c6d261c0853a3ea039877fd8a8.

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

Release Notes:

- N/A

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

Kirill Bulatov and Piotr Osiewicz created

ea8a3be recent_projects: Move SSH server entry to initialize once instead of every render (#31650)

Click to expand commit body
Currently, `RemoteEntry::SshConfig` for `ssh_config_servers` initializes
on every render. This leads to side effects like a new focus handle
being created on every render, which leads to breaking navigating
up/down for `ssh_config_servers` items.

This PR fixes it by moving the logic of remote entry
for`ssh_config_servers` into `default_mode`, and only rebuilding it when
`ssh_config_servers` actually changes.

Before:


https://github.com/user-attachments/assets/8c7187d3-16b5-4f96-aa73-fe4f8227b7d0

After:


https://github.com/user-attachments/assets/21588628-8b1c-43fb-bcb8-0b93c70a1e2b

Release Notes:

- Fixed issue navigating SSH config servers in Remote Projects with
keyboard.

Smit Barmase created

5173a1a recent_projects: Fix remote projects not regaining focus after SSH server connect (#31651)

Click to expand commit body
Closes #28071

Release Notes:

- Fixed issue preventing remote projects modal from regaining focus
after a successful SSH server connection.

Smit Barmase created

87f097a terminal_view: Fix terminal stealing focus on editor selection (#31639)

Click to expand commit body
Closes #28234

Release Notes:

- Fixed the issue where the terminal focused when the mouse hovered over
it after selecting text in the editor.

Smit Barmase created

f9407db debugger: Add spinners while session is starting up (#31548)

Click to expand commit body
Release Notes:

- Debugger Beta: Added a spinner to the debug panel when a session is
starting up.

---------

Co-authored-by: Remco Smits <djsmits12@gmail.com>
Co-authored-by: Julia <julia@zed.dev>

Cole Miller , Remco Smits , and Julia created

384b113 debugger: Disambiguate child session labels (#31526)

Click to expand commit body
Add `(child)` instead of using the same label.

Release Notes:

- Debugger Beta: Made child sessions appear distinct from their parents
in the session selector.

Cole Miller created

f20596c debugger: Don't open non-absolute paths from stack frame list (#31534)

Click to expand commit body
Follow-up to #31524 with a more general fix

Release Notes:

- N/A

---------

Co-authored-by: Piotr <piotr@zed.dev>

Cole Miller and Piotr created

eb863f8 collab: Use `StripeClient` when creating Stripe Checkout sessions (#31644)

Click to expand commit body
This PR updates the `StripeBilling::checkout_with_zed_pro` and
`StripeBilling::checkout_with_zed_pro_trial` methods to use the
`StripeClient` trait instead of using `stripe::Client` directly.

Release Notes:

- N/A

Marshall Bowers created

9757966 Fix editor rendering slowness with large folds (#31569)

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

* Looking up settings on every row was very slow in the case of large
folds, especially if there was an `.editorconfig` file with numerous
glob patterns
* Checking whether each indent guide was within a fold was very slow,
when a fold spanned many indent guides.

Release Notes:

- Fixed slowness that could happen when editing in the presence of large
folds.

Max Brunsfeld created

53849cf collab: Remove Zed Free as an option when initiating a checkout session (#31638)

Click to expand commit body
This PR removes Zed Free as an option when initiating a checkout
session, as we manage this plan automatically now.

Release Notes:

- N/A

Marshall Bowers created

1e25249 docs: Adjust the channels page a bit (#31636)

Click to expand commit body
All the docs related to collaboration could use some deep revamp, but
this PR is just formatting tweaks so it doesn't look broken. The images
weren't showing at all!

Release Notes:

- N/A

Danilo Leal created

469824c collab: Use `StripeClient` for creating model usage meter events (#31633)

Click to expand commit body
This PR updates the `StripeBilling::bill_model_request_usage` method to
use the `StripeClient` trait.

Release Notes:

- N/A

Marshall Bowers created

a1c645e docs: Improve footer button design (#31634)

Click to expand commit body
Just touching up these a little bit. I think including the page
destination as a label here is a good move!

Release Notes:

- N/A

Danilo Leal created

0791596 docs: Hide "on this page" element when there are no headings (#31635)

Click to expand commit body
We were still showing the "On this page" element even when the page
didn't contain any h2s or h3s.

Release Notes:

- N/A

Danilo Leal created

9cc1851 python: Improve docstring highlighting (#31628)

Click to expand commit body
This PR broadens the highlighting for docstrings in Python. 

Previously, only the first docstring for e.g. type aliases was
highlighted in Python files. This happened as only the first occurrence
in the module was considered a docstring. With this change, now all
existing docstrings are actually highlighted as such.

| `main` | This PR | 
| --- | --- |
|
![main](https://github.com/user-attachments/assets/facc96a9-4e98-4063-8b93-d6e9884221ff)
|
![PR](https://github.com/user-attachments/assets/9da557a1-b327-466a-be87-65d6a811e24c)
|

Release Notes:

- Added more docstring highlights for Python.

Finn Evers created

50bd877 file_finder: Reduce vertical padding in footer (#31632)

Click to expand commit body
Follow-up to #31542

This PR reduces the vertical padding in the file finders footer. We can
remove this padding as we already apply it just above


https://github.com/zed-industries/zed/blob/a5a116439e711772190b7fb8e5507eb5dbd95237/crates/file_finder/src/file_finder.rs#L1500

This also ensures that the items on the right side have the same padding
to the border as the icon on the left side. Currently, due to the
padding being applied twice, the items on the right side have `pr_4` as
well as `py_4` in practice, which seems a little excessive.

| `main` | This PR |
| --- | --- |
|
![file_finder_main](https://github.com/user-attachments/assets/352d2ac9-04a9-487d-96ca-b009b797809b)
|
![file_finder_pr](https://github.com/user-attachments/assets/c0b44beb-ff2c-4e93-a5b1-2393652a2a58)
|


Release Notes:

- N/A

Finn Evers created

00bdebc collab: Use `StripeClient` in `StripeBilling::subscribe_to_price` (#31631)

Click to expand commit body
This PR updates the `StripeBilling::subscribe_to_price` method to use
the `StripeClient` trait.

Release Notes:

- N/A

Marshall Bowers created

d513406 agent: Add keybinding to toggle Burn Mode (#31630)

Click to expand commit body
One caveat with this PR is that the keybinding still doesn't work for text threads. Will do that in a follow-up.

Release Notes:

- agent: Added a keybinding to toggle Burn Mode on and off.

Danilo Leal created

0e9f698 nix: Add job names and garnix substitutor (#31625)

Click to expand commit body
This should result in some additional cache hits as I personally use
garnix.

Also added `-v` cachix arg to try to figure out why CI jobs aren't
pushing any paths. Right now they just show ["Pushing is
disabled."](https://github.com/zed-industries/zed/actions/runs/15293723678/job/43018512167#step:13:3)
but I'm not sure if that's due to the `pushFilter` or misconfigured
secrets.

Release Notes:

- N/A

Julia Ryan created

1035c6a editor: Fix horizontal scrollbar alignment if indent guides are disabled (#31621)

Click to expand commit body
Follow-up to #24887
Follow-up to #31510

This PR ensures that [this misalignment of the horizontal
scrollbar](https://github.com/zed-industries/zed/pull/31510#issuecomment-2912842457)
does not occur. See the entire discussion in the first linked PR as to
why this gap is there in the first place.

I am also aware of the general stance towards comments. Yet, I felt for
this case it is better to just straight up explain how these two things
are connected, as I do believe this is not intuitively clear after all.

Might also be a good time to bring
https://github.com/zed-industries/zed/issues/25519 up again. The
horizontal scrollbar seems huge for the edit file tool card.
Furthermore, since we do not reserve space for the horizontal scrollbar
(yet), this will lead to the last line being not clickable.

Release Notes:

- N/A

Finn Evers created

75e69a5 collab: Use `StripeClient` to retrieve prices and meters from Stripe (#31624)

Click to expand commit body
This PR updates `StripeBilling` to use the `StripeClient` trait to
retrieve prices and meters from Stripe instead of using the
`stripe::Client` directly.

Release Notes:

- N/A

Marshall Bowers created

05afe95 agent: Fix bug in creating empty files (#31626)

Click to expand commit body
Release Notes:

- NA

Oleksiy Syvokon created

a5a1164 agent: Rejecting agent changes shouldn't discard user edits (#31617)

Click to expand commit body
The fix prevents data loss, but it also results in a somewhat confusing
UX. Specifically, after the user has made changes to an AI-created file,
selecting "Reject" will leave AI changes in place.

This is because there's no trivial way to disentangle user edits from
the edits made by the AI.

A better solution might exist. In the meantime, this change should do.
    
Closes
* #30527 

Release Notes:

- Prevent data loss when reverting changes in an agent-created file

Oleksiy Syvokon created

361ceee collab: Introduce `StripeClient` trait to abstract over Stripe interactions (#31615)

Click to expand commit body
This PR introduces a new `StripeClient` trait to abstract over
interacting with the Stripe API.

This will allow us to more easily test our billing code.

This initial cut is small and focuses just on making
`StripeBilling::find_or_create_customer_by_email` testable. I'll follow
up with using the `StripeClient` in more places.

Release Notes:

- N/A

Marshall Bowers created

68724ea agent: Make clicking on the backdrop to dismiss message editing more reliable (#31614)

Click to expand commit body
Previously, the click on the backdrop to dismiss the message editing was
unreliable. You would click on it and sometimes it would work and others
it wouldn't. This PR fixes that now.

Release Notes:

- agent: Fixes the previous message dismissal by clicking on the
backdrop

Danilo Leal created

e12106e agent: Move focus to the panel after dismissing a user message edit (#31611)

Click to expand commit body
Previously, when you clicked on a previous message to edit it and then
dismissed it, your focus would jump to the buffer. This caught me
several times as the most obvious place to return to for me was the
agent panel main message editor, so I can continue prompting something
else. And this is what this PR changes.

Release Notes:

- agent: Improved previous message editing UX by returning focus to the
main panel's text area after dismissing it.

Danilo Leal created

77aa667 docs: Update LM Studio docs to show tool use is supported (#31610)

Click to expand commit body
As the lmstudio tool call support was added recently:
https://github.com/zed-industries/zed/pull/30589. This updates the doc
to reflect it.

Release Notes:

- N/A

Umesh Yadav created

8b47b40 Improve AI GitHub Issue template (#31598)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

01990c8 Bump Tree-sitter to 0.25.5 for YAML-editing crash fix (#31603)

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

See https://github.com/tree-sitter/tree-sitter/pull/4472 for the fix

Release Notes:

- Fixed a crash that could occur when editing YAML files.

Max Brunsfeld created

4e7dc37 language_models: Remove handling of WrappedTextContent in tool result content (#31605)

Click to expand commit body
Fixes ci pipeline

Release Notes:

- N/A

Umesh Yadav created

00fd045 Make language model deserialization more resilient (#31311)

Click to expand commit body
This expands our deserialization of JSON from models to be more tolerant
of different variations that the model may send, including
capitalization, wrapping things in objects vs. being plain strings, etc.

Also when deserialization fails, it reports the entire error in the JSON
so we can see what failed to deserialize. (Previously these errors were
very unhelpful at diagnosing the problem.)

Finally, also removes the `WrappedText` variant since the custom
deserializer just turns that style of JSON into a normal `Text` variant.

Release Notes:

- N/A

Richard Feldman created

7443fde Show version info when downloading and installing updates (#31568)

Click to expand commit body
Follow up to #31179 

In addition to seeing the version when in the `Click to restart and
update Zed` status, this PR allows us to see the version when in
`Downloading Zed update…` or `Installing Zed update…` status, in a
tooltip, when hovering on the activity indicator.

Will merge after tomorrow's release.

Release Notes:

- Added version information, in a tooltip, when hovering on the activity
indicator for both the download and install status.

Joseph T. Lyons created

d5ab42a Clean up some auto updater code (#31543)

Click to expand commit body
This PR simply does a tiny bit of cleanup on some code, where I wasn't
quite happy with the naming and ordering of parameters of the now
`check_if_fetched_version_is_newer` function. There should be no
functional changes here, but I will wait until after tomorrow's release
to merge.

Release Notes:

- N/A

Joseph T. Lyons created

07403f0 Improve LSP tasks ergonomics (#31551)

Click to expand commit body
* stopped fetching LSP tasks for too long (but still use the hardcoded
value for the time being — the LSP tasks settings part is a simple bool
key and it's not very simple to fit in another value there)

* introduced `prefer_lsp` language task settings value, to control
whether in the gutter/modal/both/none LSP tasks are shown exclusively,
if possible

Release Notes:

- Added a way to prefer LSP tasks over Zed tasks

Kirill Bulatov created

00bc154 debugger: Fix invalid schema for `pathMappings` (#31595)

Click to expand commit body
See
https://github.com/xdebug/vscode-php-debug?tab=readme-ov-file#remote-host-debugging

Release Notes:

- Debugger Beta: Fixed invalid schema for `pathMappings`

Remco Smits created

f627ac9 Bump Zed to v0.190 (#31592)

Click to expand commit body
Release Notes:

-N/A

Joseph T. Lyons created

218e8d0 Revert "Fix text wrapping in commit message editors (#31030)" (#31587)

Click to expand commit body
This reverts commit f2601ce52ce82eb201799ae6c4f1f92f42ccf7c8.

Release Notes:

- N/A

Cole Miller created

2c4b75a Remove agent label for github issues (#31591)

Click to expand commit body
Release Notes:

- N/A

Peter Tripp created

aab7620 debugger beta: Fix bug where debug Rust main running action failed (#31291)

Click to expand commit body
@osiewicz @SomeoneToIgnore If you guys have time to look this over it
would be greatly appreciated. I wanted to move the bug fix into the task
resolution code but wasn't sure if there was a reason that we didn't
already.

The bug is caused by an env variable being empty when we send it as a
terminal command. When the shell resolves all the env variables there's
an extra space that gets added due to the empty env variable being
placed between two other variables.

Closes #31240

Release Notes:

- debugger beta: Fix a bug where debug main Rust runner action wouldn't
work

Anthony Eid created