Commit log

2c114f7 docs: Include slimmer C++ build tools only installation for Windows (#31107)

Click to expand commit body
Edit:
This PR adds docs for a slimmer build tools only installation for
compiling Zed on Windows.
The disk space required is 7 GB for the builds tools vs 8GB with the
editor.

<details>
<summary>Old description</summary>

Fixes the incorrect Visual Studio configuration faced by many people.
#29899
#29901

I have added the required workload in Visual Studio.
Can someone please confirm the minimum config required to compile on
Windows?

https://github.com/zed-industries/zed/blob/c8f56e38b11096e5b036a9c5fee5790a9903204c/docs/src/development/windows.md?plain=1#L20-L32

After installing the Desktop C++ build tools as [outlined in the rustup
website](https://rust-lang.github.io/rustup/installation/windows-msvc.html#walkthrough-installing-visual-studio-2022),
I have this config now:
```json
{
  "version": "1.0",
  "components": [
    "Microsoft.VisualStudio.Component.CoreEditor",
    "Microsoft.VisualStudio.Workload.CoreEditor",
    "Microsoft.VisualStudio.Component.Roslyn.Compiler",
    "Microsoft.Component.MSBuild",
    "Microsoft.VisualStudio.Component.TextTemplating",
    "Microsoft.VisualStudio.Component.VC.CoreIde",
    "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
    "Microsoft.VisualStudio.Component.Windows11SDK.26100",
    "Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
    "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
    "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake",
    "Microsoft.VisualStudio.Component.VC.CMake.Project",
    "Microsoft.VisualStudio.Component.VC.ASAN",
    "Microsoft.VisualStudio.Workload.NativeDesktop",
    "Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre"
  ],
  "extensions": []
}
```
</details>

Release Notes:

- N/A

Nitin K. M. created

49f3ec7 context_server: Fix casing of `mimeType` in tool responses (#30703)

Click to expand commit body
Closes #30243

Release Notes:

- Fixed wrong casing for the `mimeType` field when parsing MCP server
image responses.

Jonathan LEI created

7488405 Update terminal file icon associations in "FILE_SUFFIX_BY_ICON_KEY" (#31110)

Click to expand commit body
This PR updates terminal file icon associations in icon_theme.rs

I've added a `bash_login` file as mentioned in the gnu docs for bash
startup files. For zsh I updated the startup files to more accurately
reflect the zsh startup file documentation such as adding `zlogin` and
removing `zsh_profile` in favor of `zprofile`. I also added the default
`zsh_history` file that is set on MacOS.

Sources:
- [bash docs - Bash Startup
Files](https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html)
- [zsh docs - Startup
Files](https://zsh.sourceforge.io/Intro/intro_3.html)

Release Notes: 
- Improved file icon associations in icon_theme.rs to support more shell
configuration files

Luke Janssen created

8b59776 gpui: Remove unnecessary String (#31314)

Click to expand commit body
Replaces a `String` with `&'static str`

Release Notes:

- N/A

tidely created

206be2b Make sure GoPlsAdapter produces output that can be rendered as Markdown (#30911)

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

Adds `diagnostic_message_to_markdown()` to GoLspAdapter to ensure that
Go diagnostic messages are considered Markdown formatted and leading
whitespace is removed to get the Markdown to display properly.

Before:
<img width="805" alt="image"
src="https://github.com/user-attachments/assets/8a09276a-1f45-42de-9744-d7e620d5ebb6"
/>


After:
<img width="805" alt="image"
src="https://github.com/user-attachments/assets/bbe4aeaf-a3c6-4e85-bb10-89b3f4e27965"
/>

Release Notes:

- Fixed display of Go diagnostics, it should be displayed as Markdown
not as escaped string.

Mikal Sande created

51b25b5 agent: Ensure context meter updates when context is cleared (#30320)

Click to expand commit body
Addresses an issue where the agent context token meter in the panel
toolbar (showing usage like "X / Y tokens") failed to update its count
after the user cleared the current context via the context editor UI.
While the meter updated correctly when adding items, clearing them left
the display showing the old count.

The root cause was traced to the `ContextStore::clear` method in
`crates/agent/src/context_store.rs`. This method correctly cleared the
internal data structures holding the context items but neglected to call
`cx.notify()` to inform listeners of the state change. Consequently, the
UI components responsible for displaying the token count were not
triggered to re-render with the new (presumably lower) count.

This PR fixes the issue by adding the missing `cx.notify()` call to the
`ContextStore::clear` method. This ensures listeners are notified when
the context set is cleared, allowing the token meter UI to update
correctly.

Release Notes:

- Fixed an issue where the agent context token meter did not update when
the context was cleared.

Mani Rash Ahmadi created

2f274b2 vim: Document ctrl-s override (#30803)

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

Release Notes:

- N/A

5brian created

88fb623 Display the correct git push flag when force-pushing (#30818)

Click to expand commit body
When I force pushed via the Git panel and noticed that `git push
--force` command got logged at the bottom. I wanted to add an option to
use `--force-with-lease` instead. However, upon investigation, it seems
`--force-with-lease` is already being used for the executed command:


https://github.com/zed-industries/zed/blob/5112fcebeb365fab385b90b0954fe0bcb338ce63/crates/git/src/repository.rs#L1100

And there is a mismatch with the displayed message:


https://github.com/zed-industries/zed/blob/5112fcebeb365fab385b90b0954fe0bcb338ce63/crates/project/src/git_store.rs#L3555

Release Notes:

- Fixed the displayed flag name when force pushing

Tymoteusz Makowski created

df98d94 gpui: Activate the window example along with the Quit action (#30790)

Click to expand commit body
Make the gpui examples more consistent by activating the window upon
startup.
Most of the examples have 

```rust
activate(true) 
```

so this one should as well.

Make it easier to exit the example with the `cmd-q` KeyBinding

Release Notes:

- N/A

Michael Angerman created

c7da628 gpui: Fix typo in doc comment (#31397)

Click to expand commit body
Release Notes:

- N/A

waffle created

7ceb792 Revert having edit_file_tool format on save (#31403)

Click to expand commit body
An unintended consequence of format on save is that we start (correctly)
informing the model that the file changed on disk every time the
formatter changes anything, which in turn can lead the model to things
like extra reads.

Until we have a solution in place to prevent this downside, we're going
back to not formatting on save by reverting
cb112a4012433e33066273fc92c42cbe11c4c572.

Release Notes:

- N/A

Richard Feldman created

83af7b3 Add `agent: chat with follow` action (experimental) (#31401)

Click to expand commit body
This PR introduces a new `agent: chat with follow` action that
automatically enables "Follow Agent" when submitting a chat message with
`cmd-enter` or `ctrl-enter`. This is experimental. I'm not super
thrilled with the name, but the root action to submit a chat is called
`agent: chat`, so I'm following that wording. I'm also unsure if the
binding feels right or not.

Release Notes:

- Added an `agent: chat with follow` action via `cmd-enter` on macOS and
`ctrl-enter` on Linux

Joseph T. Lyons created

3d0147a Preserve selection direction when running an `editor: open selections in multibuffer` (#31399)

Click to expand commit body
Release Notes:

- Preserve selection direction when running an `editor: open selections
in multibuffer`

Joseph T. Lyons created

1b3f20b docs: Refine a few AI pages (#31381)

Click to expand commit body
Mostly sharpening the words, simplifying, and removing duplicate
content.

Release Notes:

- N/A

Danilo Leal created

4c28d2c language: Improve auto-indentation when using round brackets in Python (#31260)

Click to expand commit body
Follow-up to #29625 and #30902

This PR reintroduces auto-intents for brackets in Python and fixes some
cases where an indentation would be triggered if it should not. For
example, upon typing

```python
a = []
```
and inserting a newline after, the next line would be indented although
it shoud not be.

Bracket auto-indentation was tested prior to #29625 but removed there
and the test updated accordingly. #30902 reintroduced this for all
brackets but `()`. I reintroduced this here, reverted the changes to the
test so that indents also happen after typing `()`. This is frequently
used for tuples and multiline statements in Python.

Release Notes:

- Improved auto-indentation when using round brackets in Python.

Finn Evers created

a204510 editor: Add `toggle diagnostics` to command palette (#31358)

Click to expand commit body
Follow-up to #30316

This PR adds the `editor: toggle diagnostics` action to the comand
palette so that it can also be invoked that way.

I also ensures this, the `toggle inline diagnostics` and `toggle
minimap` actions are only registered if these are supported by the
current editor instance.

Release Notes:

- N/A

Finn Evers created

34be783 editor: Do not start scroll when hovering the scroll thumb during dragging events (#30782)

Click to expand commit body
Closes #30756
Closes #30729
Follow-up to #28064

The issue arose because GPUI does still propagate mouse events to all
event handlers during dragging actions even if the dragging action does
not belong to the current handler. I forgot about this in the other PR.

This resulted in an incorrect hover being registered for the thumb,
which was sufficient to trigger scrolling in the next frame, since
`dragging_scrollbar_axis` did not consider the actual thumb state (this
was generally sufficient, but not with this incorrectly registered
hover).

Theoretically, either of the both commits would suffice for fixing the
issue. However, I think it is better to fix both issues at hand instead
of just one. Now, we will only start the scroll on actual scrollbar
clicks and not show a hover on the thumb if any other drag is currently
going on.


https://github.com/user-attachments/assets/6634ffa0-78fc-428f-99b2-7bc23a320676

Release Notes:

- Fixed an issue where editor scrollbars would start scrolling when
hovering over the thumb whilst already dragging something else.

Finn Evers created

d312a13 ui: Fix content shift when selecting last tab (#31266)

Click to expand commit body
Follow-up to #29061

This PR ensures that the last tab does not flicker when either
selecting. It also fixes an issue where the layout would shift in the
new last tab when closing the last tab.


https://github.com/user-attachments/assets/529a2a92-f25c-4ced-a992-fb6b2d3b5f61

This happened because in #29061, the left padding was removed due to
issues with borders. However, the padding is relevant for the content to
not shift (we are basically doing border-box sizing manually here).
Instead, we need to remove the padding on the right side, as there is
already a border present on the right side and this padding would make
the last tab slightly larger than all other tabs.


https://github.com/user-attachments/assets/c3a10b3c-4a1d-4160-9b68-7538207bb46e


Release Notes:

- Removed a small flicker when selecting or closing the last tab in a
pane.

Finn Evers created

20a0956 Do not underline unnecessary diagnostics (#31355)

Click to expand commit body
Closes
https://github.com/zed-industries/zed/pull/31229#issuecomment-2906946881

Follow
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnosticTag

> Clients are allowed to render diagnostics with this tag faded out
instead of having an error squiggle.

and do not underline any unnecessary diagnostic at all.

Release Notes:

- Fixed clangd's inactive regions diagnostics excessive highlights

Kirill Bulatov created

6f918ed debugger beta: Fix regression where we sent launch args twice to any dap (#31325)

Click to expand commit body
This regression happens because our tests weren't properly catching this
edge case anymore. I updated the tests to only send the raw config to
the Fake Adapter Client.

Release Notes:

- debugger beta: Fix bug where launch args were sent twice

Anthony Eid created

7fb9569 language_model: Remove `CloudModel` enum (#31322)

Click to expand commit body
This PR removes the `CloudModel` enum, as it is no longer needed after
#31316.

Release Notes:

- N/A

Marshall Bowers created

fc8702a agent: Don't show "Tools Unsupported" when no model is selected (#31321)

Click to expand commit body
This PR makes it so we don't show "Tools Unsupported" when no model is
selected.

Release Notes:

- N/A

Marshall Bowers created

ab59982 Add initial element inspector for Zed development (#31315)

Click to expand commit body
Open inspector with `dev: toggle inspector` from command palette or
`cmd-alt-i` on mac or `ctrl-alt-i` on linux.

https://github.com/user-attachments/assets/54c43034-d40b-414e-ba9b-190bed2e6d2f

* Picking of elements via the mouse, with scroll wheel to inspect
occluded elements.

* Temporary manipulation of the selected element.

* Layout info and JSON-based style manipulation for `Div`.

* Navigation to code that constructed the element.

Big thanks to @as-cii and @maxdeviant for sorting out how to implement
the core of an inspector.

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Federico Dionisi <code@fdionisi.me>

Michael Sloan , Antonio Scandurra , Marshall Bowers , and Federico Dionisi created

685933b language_models: Fetch Zed models from the server (#31316)

Click to expand commit body
This PR updates the Zed LLM provider to fetch the available models from
the server instead of hard-coding them in the binary.

Release Notes:

- Updated the Zed provider to fetch the list of available language
models from the server.

Marshall Bowers created

172e0df Remove duplicate ThreadHistory key binding object (#31309)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

7341ab3 Keep file permissions when extracting zip archives on Unix (#31304)

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

Stop doing

```rs
#[cfg(not(windows))]
{
    file.set_permissions(<fs::Permissions as fs::unix::PermissionsExt>::from_mode(
        0o755,
    ))
    .await?;
}
```

after extracting zip archives on Unix, and use an API that provides the
file permissions data for each archive entry.

Release Notes:

- N/A

Kirill Bulatov created

ca72efe Add overdue invoices check (#31290)

Click to expand commit body
- Rename current_user_account_too_young to account_too_young for
consistency
- Add has_overdue_invoices field to track billing status
- Block edit predictions when user has overdue invoices
- Add overdue invoice warning to inline completion menu

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Ben Brandt and Marshall Bowers created

cb112a4 Have `edit_file_tool` respect `format_on_save` (#31047)

Click to expand commit body
Release Notes:

- Agents now automatically format after edits if `format_on_save` is
enabled.

Richard Feldman created

f3c2e71 Update syn crate from 1.0.109 to 2.0.101 (#31301)

Click to expand commit body
Nearly all generated by Zed Agent + Claude Opus 4. I just wrote the test
`Args` struct and pointed it at the [2.0 release
notes](https://github.com/dtolnay/syn/releases/tag/2.0.0).

Release Notes:

- N/A

Michael Sloan created

208f525 Don't always scroll to bottom on every new message (#31295)

Click to expand commit body
This is a partial reversion of
https://github.com/zed-industries/zed/pull/30878 - having it always
scroll to bottom whenever a new message is added makes it so that when
you're scrolled up, you don't have time to read what you're trying to
read before it autoscrolls to the end.

@danilo-leal when you're back, we can pair on addressing that in a
different way!

Release Notes:

- Fixed bug where scrolling up in the agent panel didn't prevent
automatic scroll-to-end whenever a new message arrived.

Richard Feldman created

697c838 languages: Allow complete override for ESLint settings (#31302)

Click to expand commit body
Closes #17088

This PR allows users to override ESLint settings as they want instead of
depending on a few set of hardcoded keys.

Release Notes:

- Added support for configuring all ESLint server settings instead of
only a limited set of predefined options.

smit created

1683e2f collab: Prevent canceling the free plan (#31292)

Click to expand commit body
This PR makes it so the Zed Free plan cannot be canceled.

We were already preventing this on the zed.dev side, but this will make
it more airtight.

Release Notes:

- N/A

Marshall Bowers created

2f1d928 debugger: Fix adapter names in initial-debug-tasks.json (#31283)

Click to expand commit body
Closes #31134

Release Notes:

- N/A

---------

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

Cole Miller and Piotr created

68a46c3 evals: Configurable judge model (#31282)

Click to expand commit body
This is needed for apples-to-apples comparison of different agent
models.

Another change is that now `cargo -p eval` accepts model names as
`provider_id/model_id` instead of separate `--provider` and `--model`
params.


Release Notes:

- N/A

Oleksiy Syvokon created

3a1053b Use shortened SHA when displaying version to install (#31281)

Click to expand commit body
This PR uses a shortened SHA when displaying the nightly version to
install in the update status, for nicer tooltip formatting.

Release Notes:

- N/A

Joseph T. Lyons created

14d9a41 debugger beta: Auto download Delve (Go's DAP) & fix grammar errors in docs (#31273)

Click to expand commit body
Release Notes:

- debugger beta: Go's debug adapter will now automatically download if
not found on user's PATH

Co-authored-by: Remco Smits <djsmits12@gmail.com>

Anthony Eid and Remco Smits created

9c01119 debugger beta: Add error handling when gdb doesn't send thread names (#31279)

Click to expand commit body
If gdb doesn't send a thread name we display the thread's process id in
the thread drop down menu instead now.

Co-authored-by: Remco Smits \<djsmits12@gmail.com\>

Release Notes:

- debugger beta: Handle bug where DAPs don't send thread names

Anthony Eid created

9dba8e5 Ensure client reconnects after erroring during the handshake (#31278)

Click to expand commit body
Release Notes:

- Fixed a bug that prevented Zed from reconnecting after erroring during
the initial handshake with the server.

Antonio Scandurra created

03ac3fb editor: Fix issue where newline on `*` as prefix adds comment delimiter (#31271)

Click to expand commit body
Release Notes:

- Fixed issue where pressing Enter on a line starting with * incorrectly
added comment delimiter.

---------

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

smit , Piotr Osiewicz , and Piotr Osiewicz created

0201d1e agent: Unfollow agent on completion cancellation (#31258)

Click to expand commit body
Handle unfollowing agent and clearing agent location when completion
is canceled.

Release Notes:

- N/A

Ben Brandt created

f48b6b5 debugger: Change placeholder text for Custom/Run text input (#31264)

Click to expand commit body
Before: 

![image](https://github.com/user-attachments/assets/6cdef5bb-c901-4954-a2ec-39c59f8314db)

After:

![image](https://github.com/user-attachments/assets/c4f60a23-249c-47ab-8a9e-a39e2277dd00)


Release Notes:

- N/A

Piotr Osiewicz created

d8fc23a toml: Bump to v0.1.4 (#31272)

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

Changes:

* https://github.com/zed-industries/zed/pull/31267


Release Notes:

- N/A

Kirill Bulatov created

6206150 Use `read()` over `read_with()` to improve readability in simple cases (#31263)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

e88cad2 Reduce the amount of queries performed when updating plan (#31268)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

9b7d849 Fix taplo artifact naming (#31267)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/31261

https://github.com/tamasfe/taplo/pull/598#issuecomment-2292984164
renamed all artifacts almost a year ago, and now had released it
finally.
Have to abide to that YOLO move.

Release Notes:

- N/A

Kirill Bulatov created

c4677c2 debugger: More focus tweaks (#31232)

Click to expand commit body
- Make remembering focus work with `ActivatePaneDown` as well
- Tone down the console's focus-in behavior so clicking doesn't
misbehave

Release Notes:

- N/A

Cole Miller created

26318b5 debugger: Detect debugpy from virtual env (#31211)

Click to expand commit body
Release Notes:

- Debugger Beta: Detect debugpy from virtual env

Remco Smits created

4266f0d terminal: Consume event during processing (#30869)

Click to expand commit body
By consuming the event during processing we save a few clones during
event processing.

Overall in this PR we save one Clone each during:

- Paste to the terminal
- Writing to the terminal
- Setting the title
- On every terminal transaction
- On every ViMotion when not using shift

Release Notes:

- N/A

tidely created

c50093d project: Use VecDeque in SearchHistory (#31224)

Click to expand commit body
`SearchHistory` internally enforced the max length of the search history
by popping elements from the front using `.remove(0)`. For a `Vec` this
is a `O(n)` operation. Use a `VecDeque` to make this `O(1)`

I also made it so the excess element is popped before the new one is
added, which keeps the allocation at the desired size.

Release Notes:

- N/A

tidely created

1cad1cb Add Code Actions to the Toolbar (#31236)

Click to expand commit body
Closes issue #31120.


https://github.com/user-attachments/assets/a4b3c86d-7358-49ac-b8d9-e9af50daf671

Release Notes:

- Added a code actions icon to the toolbar. This icon can be disabled by
setting `toolbar.code_actions` to `false`.

smit created