Commit log

0a9e3c4 zed 0.197.2

Peter Tripp created

2ee15a7 Use zed settings to detect `.zed` folders (#35224)

Click to expand commit body
Behind-the-scenes enhancement of
https://github.com/zed-industries/zed/pull/35221

Release Notes:

- N/A

Richard Feldman created

e2b8631 Allow edit tool to access files outside project (with confirmation) (#35221)

Click to expand commit body
Now the edit tool can access files outside the current project (just
like the terminal tool can), but it's behind a prompt (unlike other edit
tool actions).

Release Notes:

- The edit tool can now access files outside the current project, but
only if the user grants it permission to.

Richard Feldman created

916eb99 keymap_ui: Additional keystroke input polish (cherry-pick #35208) (#35218)

Click to expand commit body
Cherry-picked keymap_ui: Additional keystroke input polish (#35208)

Closes #ISSUE

Fixed various issues and improved UX around the keystroke input
primarily when used for keystroke search.

Release Notes:

- Keymap Editor: FIxed an issue where the modifiers used to activate
keystroke search would appear in the keystroke search
- Keymap Editor: Made it possible to search for repeat modifiers, such
as a binding with `cmd-shift cmd`
- Keymap Editor: Made keystroke search matches match based on ordered
(not necessarily contiguous) runs. For example, searching for `cmd
shift-j` will match `cmd-k cmd-shift-j alt-q` and `cmd-i g shift-j` but
not `alt-k shift-j` or `cmd-k alt-j`
- Keymap Editor: Fixed the clear keystrokes binding (`delete` by
default) not working in the keystroke input

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

gcp-cherry-pick-bot[bot] and Ben Kunkle created

185122d git: Touch up amend UX (cherry-pick #35114) (#35213)

Click to expand commit body
Cherry-picked git: Touch up amend UX (#35114)

Follow-up to #26114

- Ensure that the previous commit message is filled in when toggling on
amend mode from the context menu
- Fix keybinding flicker in context menu

Release Notes:

- N/A

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

gcp-cherry-pick-bot[bot] and Cole Miller created

44c6382 Fix Nushell environment variables (#35166)

Click to expand commit body
- Fixes environment variable ingestion for Nushell.

Closes #35056

Release Notes:

- N/A

Todd L Smith created

b06f843 Fix environment loading with nushell (#35002)

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

I believe this is a regression introduced here:
- https://github.com/zed-industries/zed/pull/33599

Release Notes:

- Fixed a regression with loading environment variables in nushell

Peter Tripp created

39a4409 lmstudio: Propagate actual error message from server (#34538)

Click to expand commit body
Discovered in this issue: #34513

Previously, we were propagating deserialization errors to users when
using LMStudio, instead of the actual error message sent from the
LMStudio server. This change will help users understand why their
request failed while streaming responses.

Release Notes:

- lmsudio: Display specific backend error messaging on failure rather
than generic ones

---------

Signed-off-by: Umesh Yadav <git@umesh.dev>
Co-authored-by: Peter Tripp <peter@zed.dev>

Umesh Yadav and Peter Tripp created

c86f82b project_panel: Automatically open project panel when Rename or Duplicate is triggered from workspace (#34988)

Click to expand commit body
In project panel, `rename` and `duplicate` action further needs user
input for editing, so if panel is closed we should open it.

Release Notes:

- Fixed project panel not opening when `project panel: rename` and
`project panel: duplicate` actions are triggered from workspace.

Smit Barmase created

ceab8c1 Don't auto-retry in certain circumstances (#35037)

Click to expand commit body
Someone encountered this in production, which should not happen:

<img width="1266" height="623" alt="Screenshot 2025-07-24 at 10 38
40 AM"
src="https://github.com/user-attachments/assets/40f3f977-5110-4808-a456-7e708d953b3b"
/>

This moves certain errors into the category of "never retry" and reduces
the number of retries for some others. Also it adds some diagnostic
logging for retry policy.

It's not a complete fix for the above, because the underlying issues is
that the server is sending a HTTP 403 response and although we were
already treating 403s as "do not retry" it was deciding to retry with 2
attempts anyway. So further debugging is needed to figure out why it
wasn't going down the 403 branch by the time the request got here.

Release Notes:

- N/A

Richard Feldman created

f6f7762 ai onboarding: Add overall fixes to the whole flow (#34996)

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

Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <hi@aguz.me>
Co-authored-by: Ben Kunkle <Ben.kunkle@gmail.com>

Danilo Leal , Agus Zubiaga , and Ben Kunkle created

c015ef6 linux: Fix `ctrl-0..9`, `ctrl-[`, `ctrl-^` (#35028)

Click to expand commit body
There were two different underlying reasons for the issues with
ctrl-number and ctrl-punctuation:

1. Some keys in the ctrl-0..9 range send codes in the `\1b`..`\1f`
range. For example, `ctrl-2` sends keycode for `ctrl-[` (0x1b), but we
want to map it to `2`, not to `[`.

2. `ctrl-[` and four other ctrl-punctuation were incorrectly mapped,
since the expected conversion is by adding 0x40

Closes #35012

Release Notes:

- N/A

Oleksiy Syvokon created

d3b2f60 Differentiate between file and selection diff events (#35014)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

b8849d8 Fix some bugs with `editor: diff clipboard with selection` (#34999)

Click to expand commit body
Improves testing around `editor: diff clipboard with selection` as well.

Release Notes:

- Fixed some bugs with `editor: diff clipboard with selection`

Joseph T. Lyons created

77dda2e ollama: Add Magistral to Ollama (#35000)

Click to expand commit body
See also: #34983

Release Notes:

- Added magistral support to ollama

versecafe created

ece9dd2 mistral: Add support for magistral-small and magistral-medium (#34983)

Click to expand commit body
Release Notes:

- mistral: Added support for magistral-small and magistral-medium

Peter Tripp created

c60f37a mistral: Add support for Mistral Devstral Medium (#34888)

Click to expand commit body
Mistral released their new DevstralMedium model to be used via API:
https://mistral.ai/news/devstral-2507

Release Notes:

- Add support for Mistral Devstral Medium

Renato Lochetti created

ca646e2 zed 0.197.1

Joseph T. Lyons created

b5433a9 agent_ui: Show keybindings for NewThread and NewTextThread in new thread button (#34967)

Click to expand commit body
I believe in this PR: #34829 we moved to context menu entry from action
but the side effect of that was we also removed the Keybindings from
showing it in the new thread button dropdown. This PR fixes that. cc
@danilo-leal

| Before | After |
|--------|--------|
| <img width="900" height="1962" alt="CleanShot 2025-07-23 at 23 36
28@2x"
src="https://github.com/user-attachments/assets/760cbe75-09b9-404b-9d33-1db73785234f"
/> | <img width="850" height="1964" alt="CleanShot 2025-07-23 at 23 37
17@2x"
src="https://github.com/user-attachments/assets/24a7e871-aebc-475c-845f-b76f02527b8f"
/> |

Release Notes:

- N/A

Umesh Yadav created

4727ae3 Fix telemetry event type names (cherry-pick #34974) (#34975)

Click to expand commit body
Cherry-picked Fix telemetry event type names (#34974)

Release Notes:

- N/A

Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>

gcp-cherry-pick-bot[bot] and Joseph T. Lyons created

d61db1f agent: Fix follow button disabled state (#34978)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

45d211a v0.197.x preview

Joseph T. Lyons created

56b64b1 keymap ui: Improve resize columns on double click (#34961)

Click to expand commit body
This PR splits the resize logic into separate left/right propagation
methods and improve code organization around column width adjustments.
It also allows resize to work for both the left and right sides as well,
instead of only checking the right side for room

Release Notes:

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

---------

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

Anthony Eid and Ben Kunkle created

fdcd866 ai onboarding: Add telemetry event capturing (#34960)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Katie Geer <katie@zed.dev>
Co-authored-by: Joseph T. Lyons <JosephTLyons@gmail.com>

Danilo Leal , Katie Geer , and Joseph T. Lyons created

3b428e2 Remove `!menu` from `j k` binding in initial keymap examples (#34959)

Click to expand commit body
See
https://github.com/zed-industries/zed/pull/34912#issuecomment-3108802582

Release Notes:

- N/A

Michael Sloan created

986b446 keymap ui: Resizable column follow up (#34955)

Click to expand commit body
I cherry picked a small fix that didn't get into the original column
resizable branch PR because I turned on auto merge.

Release Notes:

- N/A

Anthony Eid created

8713c55 keymap_ui: Dim keybinds that are overridden by other keybinds (#34952)

Click to expand commit body
This change dims rows in the keymap editor for which the corresponding
keybind is overridden by other keybinds coming from higher priority
sources.

Release Notes:

- N/A

Finn Evers created

326fe05 Resizable columns (#34794)

Click to expand commit body
This PR adds resizable columns to the keymap editor and the ability to
double-click on a resizable column to set a column back to its default
size.

The table uses a column's width to calculate what position it should be
laid out at. So `column[i]` x position is calculated by the summation of
`column[..i]`. When resizing `column[i]`, `column[i+1]`’s size is
adjusted to keep all columns’ relative positions the same. If
`column[i+1]` is at its minimum size, we keep seeking to the right to
find a column with space left to take.

An improvement to resizing behavior and double-clicking could be made by
checking both column ranges `0..i-1` and `i+1..COLS`, since only one
range of columns is checked for resize capacity.

Release Notes:

- N/A

---------

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

Mikayla Maki , Anthony , and Remco Smits created

1f4c9b9 language: Update block_comment and documentation comment (#34861)

Click to expand commit body
As suggested in https://github.com/zed-industries/zed/pull/34418, this
proposes various changes to language configs to make block comments and
doc-block-style comments more similar. In doing so, it introduces some
breaking changes into the extension schema.

This change is needed to support the changes I'm working on in #34418,
to be able to support `rewrap` in block comments like `/* really long
comment ... */`. As is, we can do this in C-style doc-block comments (eg
`/** ... */`) because of the config in `documentation`, but we can't do
this in regular block comments because we lack the info about what the
line prefix and indentation should be.

And while I was here, I did various other clean-ups, many of which feel
nice but are optional.

I would love special attention on the changes to the schema, version and
related changes; I'm totally unfamiliar with that part of Zed.

**Summary of changes**
- break: changes type of `block_comment` to same type as
`documentation_comment` (**this is the important change**)
- break: rename `documentation` to `documentation_comment` (optional,
but improves consistency w/ `line_comments` and `block_comment`)
- break/refactor?: removes some whitespace in the declaration of
`block_comment` delimiters (optional, may break things, need input; some
langs had no spaces, others did)
- refactor: change `tab_size` from `NonZeroU32` to just a `u32` (some
block comments don't seem to need/want indent past the initial
delimiter, so we need this be 0 sometimes)
- refactor: moves the `documentation_comment` declarations to appear
next to `block_comment`, rearranges the order of the fields in the TOML
for `documentation_comment`, rename backing `struct` (all optional)

**Future scope**
I believe that this will also allow us to extend regular block comments
on newline – as we do doc-block comments – but I haven't looked into
this yet. (eg, in JS try pressing enter in both of these: `/* */` and
`/** */`; the latter should extend w/ a `*` prefixed line, while the
former does not.)

Release Notes:

- BREAKING CHANGE: update extension schema version from 1 to 2, change
format of `block_comment` and rename `documentation_comment`

/cc @smitbarmase

claytonrcarter created

14171e0 collab: Add `POST /users/:id/update_plan` endpoint (#34953)

Click to expand commit body
This PR adds a new `POST /users/:id/update_plan` endpoint to Collab to
allow Cloud to push down plan updates to users.

Release Notes:

- N/A

Marshall Bowers created

326ab5f Improve collab channel organization keybinds (#34821)

Click to expand commit body
Change channel reorganization (move up/down) from `cmd-up/down` (mac) /
`ctrl-up/down` (linux) to `alt-up/down` (both) to match moving lines in
the editor.

Also fix an issue where if you selected channels using down/up in the
filter field, the movement shortcuts would not work (`editing` vs
`not_editing`).

Release Notes:

- N/A

Peter Tripp created

2bc6e18 Ensure `disable_ai` is properly respected (#34941)

Click to expand commit body
Quick follow up to #34896 which ensures that the Agent Panel cannot be
caught by actions like `workspace: toggle left dock` when `disable_ai`
is set to true.

Also removes a method that was introduced but unused in the workspace
because `first_enabled_panel_idx` already covers all cases this method
could be useful for.

Release Notes:

- N/A

Finn Evers created

c2c2264 gpui: Add tree example (#34942)

Click to expand commit body
This commit adds an example with deep children hierarchy.
The depth of a tree can be tweaked with GPUI_TREE_DEPTH env variable.
With depth=100
<img width="301" height="330" alt="image"
src="https://github.com/user-attachments/assets/844cd285-c5f3-4410-a74e-981bf093ba2e"
/>
With this example, I can trigger a stack overflow at depth=633 (and
higher).


Release Notes:

- N/A

Piotr Osiewicz created

6cd3726 Revert "chore: Bump taffy to 0.8.3" (#34938)

Click to expand commit body
Reverts zed-industries/zed#34876

From our Slack:
<img width="1694" height="1610" alt="image"
src="https://github.com/user-attachments/assets/c7b8f02a-8609-4ed3-9cd5-7d05d152e40e"
/>


https://github.com/user-attachments/assets/828964be-9b6e-4496-9361-9e3a2e9aa208

Release Notes:
- N/A

Piotr Osiewicz created

7db110f sum_tree: Utilize `size_hint` in `TreeSet::extend` (#34936)

Click to expand commit body
Collect the iterator instead of manually looping over it to utilize
possible size hints. Zed usually passes in owned `Vec`'s, meaning we get
to reuse memory as well.

Release Notes:

- N/A

tidely created

6122f46 project: Fix search filter patterns on remote projects (#34748)

Click to expand commit body
we were join(",") and split(",") to serialize the patterns.

This doesn't work when pattern includes a ","
example: *.{ts,tsx} (very common pattern used by agent)


help needed:

how will this work on version mismatch?

Release Notes:

- Fixed search filter patterns on remote projects.

maan2003 created

500ceaa Add an `editor: diff clipboard with selection` action (#33283)

Click to expand commit body
https://github.com/user-attachments/assets/d472fbdd-7736-4bd7-8a90-8cca356b2815

This PR adds `editor: diff clipboard with selection` - good for spotting
the differences in eerily-similar code, which is when refactoring code,
as you need to see what needs to be passed in in order to maintain
previous behavior of both snippets.

1. Copy some text from anywhere
2. Highlight some text in Zed
3. Run `editor: diff clipboard with selection`

Like JetBrains' IDEs and VS Code with the `PartialDiff` package, if the
selection is empty, we take the entire buffer as the selection.

Caveats:

- We do not know the language of the text in the clipboard. I went ahead
and just assumed that in most cases, it will be the same language as the
selected text, which does mean we will highlight the old text
incorrectly if they are copying from a different language, but I think
in most cases, it will be the same, and the alternative of always having
no syntax highlighting is worse. PyCharm seems to do the same thing.

Release Notes:

- Added an `editor: diff clipboard with selection` action

---------

Co-authored-by: Junkui Zhang <364772080@qq.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>

Joseph T. Lyons , Junkui Zhang , and Ben Kunkle created

3e27fa1 gpui: Allow Animation to be cloned (#34933)

Click to expand commit body
Release Notes:

- N/A

---

Let `Animation` able to clone, then we can define one to share for
multiple places.

For example:

<img width="914" height="637" alt="image"
src="https://github.com/user-attachments/assets/8eafb318-afba-4399-a975-d83cb7afe74c"
/>

Jason Lee created

11ac83f workspace: Fix closing remote workspace restores last local workspace on startup (#34931)

Click to expand commit body
Closes #7759

While opening a new SSH project if we are reusing an existing window,
i.e. drop the existing workspace and create a new one, then before
dropping it, we should remove `session_id` from that workspace's
serialized entry. That way:

1. Upon closing (cmd-w) this remote workspace (which also clears
`session_id` for this), and then quitting. No workspace with that
`session_id` is found, and it starts fresh.
2. Upon directly quitting (cmd-q) this remote workspace, only this
workspace exists in db (among two of them) with that `session_id`, and
it restores correctly.
 
Release Notes:

- Fixed an issue while closing remote workspace restores last local
workspace on startup.

Smit Barmase created

e90cf0b workspace: Fix last removed folder from workspace used to reopen on Zed startup (#34925)

Click to expand commit body
Closes #34924

Now, when `local_paths` are empty, we detach `session_id` from that
workspace serialization item. This way, when we restore it using the
default "last_session", we don't restore this workspace back. This is
same as when we use `cmd-w` to close window, which also sets
`session_id` to `None` before serialization.

Release Notes:

- Fixed an issue where last removed folder from workspace used to reopen
on Zed startup.

Smit Barmase created

0560038 collab: Remove `POST /billing/subscriptions` endpoint (#34928)

Click to expand commit body
This PR removes the `POST /billing/subscriptions` endpoint, as it has
been moved to `cloud.zed.dev`.

Release Notes:

- N/A

Marshall Bowers created

5d985fa Improve MCP server responses (#34927)

Click to expand commit body
Release Notes:

- N/A

Agus Zubiaga created

7f70325 language_models: Rename `handler` to `handle` in Bedrock provider (#34923)

Click to expand commit body
This PR renames the `handler` field to `handle` on the
`BedrockLanguageModelProvider` and `BedrockModel` structs.

Release Notes:

- N/A

Marshall Bowers created

f3c332d Fix new crate license symlink (#34922)

Click to expand commit body
The license file is not properly linked to actual license. This was
casued due to new-crate script linking the license to wrong file. Fixed
both of them.

Reference logs:

```
2025-07-22T17:16:19+05:30 ERROR [worktree] error reading target of symlink "/Users/umesh/code/zed/crates/onboarding/LICENSE-GPL": canonicalizing
```

Release Notes:

- N/A

Umesh Yadav created

446d333 debugger: Fix debug console persist to history when reusing a previous item (#34893)

Click to expand commit body
Closes #34887

Release Notes:

- Debugger: Fix debug console persist to history when reusing a previous
item

Remco Smits created

c0f75e1 debugger: Fix built-in JavaScript debug tasks were not working due missing `type` field value (#34894)

Click to expand commit body
Release Notes:

- Debugger: Fix built-in JavaScript debug tasks were not working due
missing `type` field value

Remco Smits created

708c264 collab: Tweak screen selector appearance (#34919)

Click to expand commit body
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>


Release Notes:

- N/A

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

Piotr Osiewicz and Danilo Leal created

4272c15 ai onboarding: Copyedit the whole flow (#34916)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Katie Geer <katie@zed.dev>

Danilo Leal and Katie Geer created

99466f4 Make zooming from menus not persist (#34910)

Click to expand commit body
Closes: https://github.com/zed-industries/zed/issues/34479
Follow-up to: https://github.com/zed-industries/zed/issues/23505

View->Zoom In / Zoom Out / Reset Zoom were not reverted to match when
the default keybindings were reverted.

Release Notes:

- N/A

Peter Tripp created

9e280d0 collab: Remove unneeded caching of Stripe price IDs by meter ID (#34915)

Click to expand commit body
This PR removes the caching of Stripe price IDs by meter ID on the
`StripeBilling` object, as we weren't actually reading them anywhere.

Release Notes:

- N/A

Marshall Bowers created