Commit log

1139904 Remove unnecessary conditional definition of `FS_WATCH_LATENCY` (#26967)

Click to expand commit body
This was added in #8343 to make it only visible for tests. #9189 then
made it visible regardless of `test-support`, so the definitions became
identical.

Release Notes:

- N/A

Michael Sloan created

b4ef379 Send stable release notes email (#26964)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

88907ee git: Always zero panel's entry counts when clearing entries (#26924)

Click to expand commit body
Keep the panel's state consistent even when we transition to having no
active repository.

Release Notes:

- N/A

Cole Miller created

cd5d7e8 collab: Make account age-related fields required in `LlmTokenClaims` (#26959)

Click to expand commit body
This PR makes the account age-related fields required in
`LlmTokenClaims`.

We've also removed the account age check from the LLM token issuance
endpoint, instead having it solely be enforced in the `POST /completion`
endpoint.

This change will be safe to deploy at ~8:01PM EDT.

Release Notes:

- N/A

Marshall Bowers created

0851842 collab: Defer account age check to `POST /completion` endpoint (#26956)

Click to expand commit body
This PR defers the account age check to the `POST /completion` endpoint
instead of doing it when an LLM token is generated.

This will allow us to lift the account age restriction for using Edit
Prediction.

Note: We're still temporarily performing the account age check when
issuing the LLM token until this change is deployed and the LLM tokens
have had a chance to cycle.

Release Notes:

- N/A

Marshall Bowers created

1397e01 collab: Clean up LLM token creation (#26955)

Click to expand commit body
This PR cleans up the LLM token creation a bit.

We now pass in the entire list of feature flags to the
`LlmTokenClaims::create` method to prevent having a bunch of confusable
`bool` parameters.

Release Notes:

- N/A

Marshall Bowers created

2b2b9c1 Make repo and branch popovers extend up from their trigger buttons (#26950)

Click to expand commit body
Previously, when clicking on the branch, the popover would obscure the
button you just clicked, which was awkward.

Release Notes:

- Improved the placement of the repo and branch picker popovers in the
git panel.
- Added a 'SelectRepo' action that opens the repository selector in a
modal.

Max Brunsfeld created

a05066c assistant edit tool: Track read buffers and notify model of user edits (#26952)

Click to expand commit body
When the model reads file, we'll track the version it read, and let it
know if the user makes edits to the buffer. This helps prevent edit
failures because it'll know to re-read the file before.

Release Notes:

- N/A

Agus Zubiaga created

cb439e6 editor: Fix navigate back for locations opened via preview item (#26943)

Click to expand commit body
Closes #25458

When navigating code from a preview tab with
`enable_preview_from_code_navigation` set to `true`, "Go Back" from a
newly opened tab could focus on the tab to the right instead of
returning to the original preview tab.

Before, we killed the existing preview tab before opening a new one,
which breaking history as the new tab had no reference to the old one.
This caused navigation to shift to the next tab on the right.

Now, we first add the new tab at the preview index, and then kill the
existing preview tab. This preserves the history by linking new preview
tab to existing tab.

Release Notes:

- Fixes an issue where navigating code from a preview tab with
`enable_preview_from_code_navigation` set to `true`, "Go Back" from a
newly opened tab could focus on the tab to the right instead of
returning to the original preview tab.

Smit Barmase created

6b0a282 docs: Fix wrong html-like tags shortcut for Vim (#26792)

Click to expand commit body
Release Notes:

- N/A

Mostafa Mahmoud created

25772b8 Fix sticky header in last buffer of a multibuffer (#26944)

Click to expand commit body
This also simplifies our code to stop generating a last excerpt boundary
that we always ignore.

Closes #ISSUE

Release Notes:

- N/A

Conrad Irwin created

94b6380 assistant edit tool: Fuzzy match search block (#26935)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Antonio Scandurra <me@as-cii.com>

Agus Zubiaga and Antonio Scandurra created

798af67 Disable the other flaky tests (#26942)

Click to expand commit body
I thought it might be just `test_file_status` this time, but it seems to
be all four of the tests that we were previously seeing issues with.

Release Notes:

- N/A

Cole Miller created

db1d2de Sync git button states between project diff & git panel (#26938)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Git action buttons are now synced between the project diff and git
panel

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com>

Anthony Eid , Conrad Irwin , and Piotr Osiewicz created

430bd83 Don't open the commit editor when staging last hunk (#26939)

Click to expand commit body
Closes #26880

Release Notes:

- Removed a behavior where staging the last hunk in the project diff
would open the commit modal.

Max Brunsfeld created

dbe5399 Remove disabling effect on the stage and unstage toolbar buttons (#26936)

Click to expand commit body
Closes #26883

Release Notes:

- N/A

Cole Miller created

aba242d Document `gutter_debounce` (#26940)

Click to expand commit body
Release Notes:

- N/A

João Marcos created

ddc210a Add website docs for the hunk_style variants (#26937)

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

Release Notes:

- N/A

Mikayla Maki created

65994c0 Add `git.hunk_style` setting for gutter hollow hunk behavior (#26816)

Click to expand commit body
This is a follow up to #26809, introducing `git.hunk_style` setting to
control whether staged or unstaged hunks are shown as hollow.

Reused `GitHunkStyleSetting` which was left over from #26504.

Release Notes:

- Added `git.hunk_style` setting to control whether staged or unstaged
hunks are hollow.

Jakub Charvat created

011f823 Move buffer diff storage from `BufferStore` to `GitStore` (#26795)

Click to expand commit body
Release Notes:

- N/A

---------

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

João Marcos , Max Brunsfeld , and max created

3d1ae68 docs: Remove duplicate `indent_guides` setting in Project panel options (#26927)

Click to expand commit body
Just a small docs pull request to remove the duplicate `indent_guides`
setting in the Project panel options section of the docs. There is also
another `indent_guides` on
[L2585](https://github.com/zed-industries/zed/pull/26927/files#diff-c2decf822f3085926bd23bdf175700222dfd8193d48ea39908d4bb1d1a7c6240R2584).
~~Let me know if you prefer to remove the other instance, thank you!~~

Edit: I just realized it's the old setting, `indent_guides` now expects
a object.

Marco Roth created

1f62274 assistant edit tool: Return applied actions back to main model (#26810)

Click to expand commit body
We'll now include the search/replace block that got applied as part of
the tool output. We think this will help the model have a better idea of
how the file changed and prevent later edit failures.

Release Notes:

- N/A

Agus Zubiaga created

c2f62d2 Disable flaky file status test again (#26925)

Click to expand commit body
Failure on an unrelated commit:
https://github.com/zed-industries/zed/actions/runs/13903012863/job/38899239052

Release Notes:

- N/A

Cole Miller created

7d433a3 git_hosting_providers: Allow configuring additional hosting providers via settings (#26879)

Click to expand commit body
Release Notes:

- Added a new `git_hosting_providers` setting for configuring custom Git
hosting providers.

---------

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

khayyam and Marshall Bowers created

52567f4 Eliminate unnecessary macros in languages crate (#26813)

Click to expand commit body
I vibe coded this in Zed, dawg.

This avoids a number of cases where we created multiple copies of the
same lsp adapter. Now we clone the Arcs.

Release Notes:

- N/A

Max Brunsfeld created

a0ee84d Use the main thread less on search tool (#26732)

Click to expand commit body
Release Notes:

- N/A

Richard Feldman created

6cac0b3 docs: Add marker to signal which languages are built into Zed (#26913)

Click to expand commit body
I saw over the weekend some social media posts that indicated people
didn't know which languages are included in Zed by default. We do say
that on each language-specific page, but I figured having this
high-level view on the languages page wouldn't hurt.

Release Notes:

- N/A

Danilo Leal created

45606ab git_hosting_providers: Refactor constructors (#26919)

Click to expand commit body
This PR refactors the constructors for the various Git hosting providers
to facilitate adding support for more self-hosted variants.

Release Notes:

- N/A

Marshall Bowers created

8ba6ce4 git_hosting_providers: Fix incorrect name for SourceHut (#26915)

Click to expand commit body
This PR fixes an issue where the SourceHut Git hosting provider was
using the wrong name.

Release Notes:

- N/A

Marshall Bowers created

040d42f assistant tools: Fix running tests locally (#26914)

Click to expand commit body
Without this, we running into the following error:

```
Running into this when running tests. Is this  
dyld[45041]: Library not loaded: @rpath/WebRTC.framework/WebRTC
  Referenced from: <B2EA63A5-994E-3FB0-A74B-C9C4F7E5C1EF> /Users/aguz/zed/zed/target/debug/deps/assistant_tools-522d7745dd439dfb
  Reason: no LC_RPATH's found
```

Thanks Piotr!

Release Notes:

- N/A

Agus Zubiaga created

22d905d nix: Allow auto-update in the devshell (#26911)

Click to expand commit body
Our direnv integration was making zed refuse to auto-update when you had
the zed repo open with the devshell active. This was happening even when
you used a non-nix build of zed, which actually should be able to
auto-update.

I'm a bit unsure of why we check for the `ZED_UPDATE_EXPLANATION` env
var [both at build time _and_ at
runtime](https://github.com/zed-industries/zed/blob/2828dcb67b0427bb64dd7c350896673ff6a14782/crates/auto_update/src/auto_update.rs#L149),
but I can see an argument for why people might want that so I'll just do
the less intrusive change for now and leave the var out of the devshell.

Release Notes:

- N/A

Julia Ryan created

bf735da Support extended keys on Mac (F20-F35) (#26899)

Click to expand commit body
Closes #4640

About the support limit of Fn:

Mac F1-F35
Win F1-F24
Linux F1-F35
Terminal F1-F20

Release Notes:

- Improved support for extended keyboards on Mac (F20-F35)

0x2CA created

210d8d5 Allow cancellation of tool uses (#26906)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

a0f995d Support SSH usernames which contain @ symbols (#25314)

Click to expand commit body
Closes #25246

Release Notes:

- SSH: Improved handling of multiple `@` in connection strings: e.g.
`ssh jim.lv@es2@10.220.67.57@11.239.1.231` improving support of jump
hosts running JumpServer.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Color Fuzzy and Conrad Irwin created

8f560da chore: Extract http-client-tls crate (#26895)

Click to expand commit body
http-client pulled in rustls which in turn meant that gpui depended on
rustls/aws-lc-sys. This commit extracts http-client-tls crate to
separate the http-client and tls dependencies.

Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

d5bb126 Delete tool uses paths instead of globs (#26715)

Click to expand commit body
Also made `run` avoid doing work on the main thread.

Release Notes:

- N/A

Richard Feldman created

8a31dca Use textDocument/codeLens data in the actions menu when applicable #2 (#26848)

Click to expand commit body
Re-applies what's been reverted in
https://github.com/zed-industries/zed/pull/26832 with an action-related
fix in
https://github.com/zed-industries/zed/commit/64b5d37d324176cc7b819418f46724cd4c67393d

Before, actions were resolved only if `data` is present and either of
the possible fields is empty:

https://github.com/zed-industries/zed/blob/e842b4eade368127f01944f1b442016edd6b292d/crates/project/src/lsp_store.rs#L1632-L1633

But Zed resolves completions and inlays once, unconditionally, and the
reverted PR applied the same strategy to actions.
That did not work despite the spec not forbidding `data`-less actions to
be resolved.

Soon, it starts to work due to
https://github.com/rust-lang/rust-analyzer/pull/19369 but it seems safer
to restore the original filtering code.

Code lens have no issues with `data`-less resolves:

https://github.com/rust-lang/rust-analyzer/blob/220d913cbcd05f9b7635179a98c685f31821a572/crates/rust-analyzer/src/handlers/request.rs#L1618-L1620

so the same approach as completions and inlays is kept: resolve once.


Release Notes:

- N/A

Kirill Bulatov created

ef91e7a Minor optimization of line number length logic (#26845)

Click to expand commit body
In `layout_excerpt_gutter`, compute max line number length once instead
of for every row

In `max_line_number_width`, use ilog10 instead of converting to floats
and back

Release Notes:

- N/A

Michael Sloan created

c220fb3 Fix panic when providing 0 to ilog10 in line number length logic (#26844)

Click to expand commit body
Introduced in #24428

Release Notes:

- N/A

Michael Sloan created

adbde21 termina: Fix text selection for first line scrolls up (#26842)

Click to expand commit body
Closes #21626
 
Now scroll will only happen when cursor goes beyond the bounds of
terminal.
 
 Before:
 


https://github.com/user-attachments/assets/9ac48e80-d0e0-44c9-87ad-14ed748de78d


 After:


https://github.com/user-attachments/assets/c697c1fc-a6d2-4b9a-aad4-5b0c79837c2a
 
Release Notes:

- Fixed an issue where selecting the first line in the terminal would
cause it to scroll.

Smit Barmase created

b81a1ad gpui: Fix text underline width (#26827)

Click to expand commit body
Release Notes:

- N/A 

Fix #24721 mistake to make sure underline width same as the text.

## Before


![image](https://github.com/user-attachments/assets/1fe6a8c2-517f-41be-bdf0-0ee777b7f8aa)

## After

<img width="912" alt="image"
src="https://github.com/user-attachments/assets/222b5dcb-c0fb-4ec1-8e23-d68247621375"
/>

Jason Lee created

5f390f1 Initial PyLSP documentation (#26835)

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

Release Notes:

- N/A

Peter Tripp created

c282acb terminal: Don’t include line breaks for soft wrap in Assistant terminal context (#25415)

Click to expand commit body
> Detects and combines wrapped lines into single logical lines, more
accurately representing the actual terminal content.


```shell
perl -i -pe \
    's/"vscode-languageserver(\/node)?"/"\@zed-industries\/vscode-languageserver$1"/g' packages/css/lib/node/cssServerMain.js
```

<img width="518" alt="image"
src="https://github.com/user-attachments/assets/52d9327c-c381-4e5f-a676-0cf84c824388"
/>

<img width="1314" alt="image"
src="https://github.com/user-attachments/assets/0a32e1f9-7e95-482e-9beb-2e8a6c40584c"
/>




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

Release Notes:

- Fixed a bug where context for the terminal assistant would add line
breaks in the presence of soft wrapped lines.

---------

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

Richard Hao and Peter Tripp created

021d658 Revert "Use `textDocument/codeLens` data in the actions menu when applicable (#26811)" (#26832)

Click to expand commit body
This reverts commit b61171f1526f00c9916a5429af3d95b33d560d56.

This PR reverts #26811, as it has broken `rust-analyzer` code actions.

With this commit reverted my code actions are working again. 

Release Notes:

- Community: Reverted https://github.com/zed-industries/zed/pull/26811.

Marshall Bowers created

b547cd1 ci: Remove `migration_checks` as a required check (#26833)

Click to expand commit body
This PR removes the `migration_checks` job as a required check.

This was not required before, and we shouldn't make it required, as
there are cases where we need to bypass it, as is the case in
https://github.com/zed-industries/zed/pull/26832.

Release Notes:

- N/A

Marshall Bowers created

8f841d1 Revert unintended `Cargo.lock` changes (#26830)

Click to expand commit body
This PR reverts some of the changes made to `Cargo.lock` in #25702. In
that PR, several crate versions were unintentionally downgraded,
including `aws-lc-rs`, which has caused release builds to fail on
Windows again.

Release Notes:

- N/A

张小白 created

4b153e7 gpui: Fix `line_through`, `underline` position when used text center or right (#24721)

Click to expand commit body
Release Notes:

- N/A

---

| Before | After |
| --- | --- |
| <img width="912" alt="image"
src="https://github.com/user-attachments/assets/0640ac85-ee5d-4707-b866-997e36608c18"
/> | <img width="912" alt="image"
src="https://github.com/user-attachments/assets/caf84477-a7bc-4c22-a9e6-f44c3b6f86ef"
/> |
 
And fix the `line_through` doc link.

Jason Lee created

b61171f Use `textDocument/codeLens` data in the actions menu when applicable (#26811)

Click to expand commit body
Similar to how tasks are fetched via LSP, also queries for document's
code lens and filters the ones with the commands, supported in server
capabilities.

Whatever's left and applicable to the range given, is added to the
actions menu:


![image](https://github.com/user-attachments/assets/6161e87f-f4b4-4173-8bf9-30db5e94b1ce)

This way, Zed can get more actions to run, albeit neither r-a nor vtsls
seem to provide anything by default.

Currently, there are no plans to render code lens the way as in VSCode,
it's just the extra actions that are show in the menu.

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

As part of the attempts to use rust-analyzer LSP data about the
runnables, I've explored a way to get this data via standard LSP.

When particular experimental client capabilities are enabled (similar to
how clangd does this now), r-a starts to send back code lens with the
data needed to run a cargo command:

```
{"jsonrpc":"2.0","id":48,"result":{"range":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}},"command":{"title":"▶︎ Run Tests","command":"rust-analyzer.runSingle","arguments":[{"label":"test-mod tests::ecparser","location":{"targetUri":"file:///Users/someonetoignore/work/ec4rs/src/tests/ecparser.rs","targetRange":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}},"targetSelectionRange":{"start":{"line":0,"character":0},"end":{"line":98,"character":0}}},"kind":"cargo","args":{"environment":{"RUSTC_TOOLCHAIN":"/Users/someonetoignore/.rustup/toolchains/1.85-aarch64-apple-darwin"},"cwd":"/Users/someonetoignore/work/ec4rs","overrideCargo":null,"workspaceRoot":"/Users/someonetoignore/work/ec4rs","cargoArgs":["test","--package","ec4rs","--lib"],"executableArgs":["tests::ecparser","--show-output"]}}]}}}
```

This data is passed as is to VSCode task processor, registered in


https://github.com/rust-lang/rust-analyzer/blob/60cd01864a2d0d6e2231becee402ba063b59dfa1/editors/code/src/main.ts#L195

where it gets eventually executed as a VSCode's task, all handled by the
r-a's extension code.

rust-analyzer does not declare server capabilities for such tasks, and
has no `workspace/executeCommand` handle, and Zed needs an interactive
terminal output during the test runs, so we cannot ask rust-analyzer
more than these descriptions.

Given that Zed needs experimental capabilities set to get these lens:

https://github.com/rust-lang/rust-analyzer/blob/60cd01864a2d0d6e2231becee402ba063b59dfa1/editors/code/src/client.ts#L318-L327

and that the lens may contain other odd tasks (e.g. docs opening or
references lookup), a protocol extension to get runnables looks more
preferred than lens:
https://rust-analyzer.github.io/book/contributing/lsp-extensions.html#runnables

This PR does not include any work on this direction, limiting to the
general code lens support.

As a proof of concept, it's possible to get the lens and even attempt to
run it, to no avail:

![image](https://github.com/user-attachments/assets/56950880-d387-48f9-b865-727f97b5633b)


Release Notes:

- Used `textDocument/codeLens` data in the actions menu when applicable

Kirill Bulatov created

0b492c1 Use `line_endings` macro for the edit tool tests (#26642)

Click to expand commit body
This aligns with how we handle other tests on Windows.

Release Notes:

- N/A

张小白 created

265caed vim: Add global marks (#25702)

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

Release Notes:

- vim: Added global marks `'[A-Z]`
- vim: Added persistence for global (and local) marks. When re-opening
the same workspace your previous marks will be available.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

AidanV and Conrad Irwin created