Commit log

0a391ab zed 0.177.5

Joseph T. Lyons created

e29fb61 git_ui: Try to prompt the model out of including the diff output (#26281)

Click to expand commit body
This PR updates the prompt for generating commit messages to tell the
model not to include the raw diff output in the message.

Release Notes:

- N/A

Marshall Bowers created

9db97b8 Fix inline diagnostics in the project diff (#26275)

Click to expand commit body
https://github.com/zed-industries/zed/blob/205f9a9f0391da47a87cac45a41f67d2a23f5a95/crates/editor/src/element.rs#L1643

Due to the snippet above, Zed is supposed to have `row` larger or equal
to `start_row` here:


https://github.com/zed-industries/zed/blob/205f9a9f0391da47a87cac45a41f67d2a23f5a95/crates/editor/src/element.rs#L1694

yet the panic were reported when clicking in the project diff.

That project diff has a lot of highlighting happening already, so the PR
disables inline diagnostics within a git diff view.


Release Notes:

- N/A

Kirill Bulatov created

871bca5 git: Fix git panel not using default width (#26220)

Click to expand commit body
Closes #26062

Removing the width here causes zed to use the default value (inside
default settings) after restart like other panels.

Release Notes:

- Fixed issue where git panel wasn't using default width after restart

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

loczek and Mikayla Maki created

6dde040 Add staged variants of the hunk_style controls (#26259)

Click to expand commit body
This PR adds a few more hunk style settings that flips the emphasis.
Normally, the concept at Zed has been that the project diff should
emphasize what's going into the commit. However, this leads to a problem
where the default state of all diff hunks are in the non-emphasized
state, making them hard to see and interact with. Especially on light
themes. This PR is an experiment in flipping the emphasis states. Now
the project diff is more like a queue of work, with the next "job" (hunk
to be evaluated) emphasized, and the "completed" (staged) hunks
deemphasized. This fixes the default state issue but is a big jump from
how we've been thinking about it. So here we can try it out and see how
it feels :)

Release Notes:

- Git Beta: Added hunk style settings to emphasize the unstaged state,
rather than the staged state.

Mikayla Maki created

d6190db Restore co-author hiding (#26257)

Click to expand commit body
Release Notes:

- N/A

Mikayla Maki created

7365cac Improve the generate commit message design (#26233)

Click to expand commit body
[WIP]

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Marshall Bowers , Mikayla Maki , and Danilo Leal created

84f8b86 Fix paths on Windows in new test (#26255)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Cole Miller created

e53389f Disable restore hunk control for created files (#25841)

Click to expand commit body
Release Notes:

- Git Beta: disable hunk restore action and button for created files

Cole Miller created

12fb23b Add StatusToast & the ToastLayer (#26232)

Click to expand commit body
https://github.com/user-attachments/assets/b16e32e6-46c6-41dc-ab68-1824d288c8c2

This PR adds the first part of our planned extended notification system:
StatusToasts.

It also makes various updates to ComponentPreview and adds a `Styled`
extension in `ui::style::animation` to make it easier to animate styled
elements.

_**Note**: We will be very, very selective with what elements are
allowed to be animated in Zed. Assume PRs adding animation to elements
will all need to be manually signed off on by a designer._

## Status Toast

![CleanShot 2025-03-06 at 14 15
52@2x](https://github.com/user-attachments/assets/b65d4661-f8d1-4e98-b9be-2c05cba1409f)

These are designed to be used for notifying about things that don't
require an action to be taken or don't need to be triaged. They are
designed to be ignorable, and dismiss themselves automatically after a
set time.

They can optionally include a single action. 

Example: When the user enables Vim Mode, that action might let them undo
enabling it.

![CleanShot 2025-03-06 at 14 18
34@2x](https://github.com/user-attachments/assets/eb6cb20e-c968-4f03-88a5-ecb6a8809150)

Status Toasts should _not_ be used when an action is required, or for
any binary choice.

If the user must provide some input, this isn't the right component!

### Out of scope

- Toasts should fade over a short time (like AnimationDuration::Fast or
Instant) when dismissed
- We should visually show when the toast will dismiss. We'll need to
pipe the `duration_remaining` from the toast layer -> ActiveToast to do
this.
- Dismiss any active toast if another notification kind is created, like
a Notification or Alert.

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <m@cole-miller.net>

Nate Butler and Cole Miller created

75f7def Add event to track LLM-generated commit messages (#26245)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

9195cd5 git_ui: Add support for generating commit messages with an LLM (#26227)

Click to expand commit body
This PR finishes up the support for generating commit messages using an
LLM.

We're shelling out to `git diff` to get the diff text, as it seemed more
efficient than attempting to reconstruct the diff ourselves from our
internal Git state.


https://github.com/user-attachments/assets/9bcf30a7-7a08-4f49-a753-72a5d954bddd

Release Notes:

- Git Beta: Added support for generating commit messages using a
language model.

---------

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

Marshall Bowers and Conrad Irwin created

f0be142 git_ui: Scaffold out support for generating commit messages with an LLM (#26161)

Click to expand commit body
This PR adds the rough structure needed to support generating commit
messages using an LLM.

This functionality is not yet surfaced to the user.

This is the current state, if you tweak the source to show the button:

https://github.com/user-attachments/assets/66d1fbc4-09f3-4277-84f4-e9c9ebab274c

Release Notes:

- N/A

Marshall Bowers created

0dec6fb Cherry-pick: Worktree paths in git panel, take 2 (#26047) (#26252)

Click to expand commit body
Release Notes:

- Git Beta: updated the git panel to use worktree-relative paths and
support opening files outside the active repository's worktree

Cole Miller created

4f8a094 Fix early return when reaching end excerpt in `lift_buffer_metadata` (#26253)

Click to expand commit body
Release Notes:

- Fixed a bug causing slowness when viewing multi buffers with lots of
excerpts

Max Brunsfeld created

43c8106 Disable restore hunk control for created files (cherry-pick #25841) (#26251)

Click to expand commit body
Cherry-picked Disable restore hunk control for created files (#25841)

Release Notes:

- Git Beta: disable hunk restore action and button for created files

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

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

b7b700e language_models: Remove `.unwrap`s in Bedrock provider (cherry-pick #26238) (#26241)

Click to expand commit body
Cherry-picked language_models: Remove `.unwrap`s in Bedrock provider
(#26238)

This PR removes a number of `.unwrap`s in the Bedrock provider.

We must not `.unwrap` in situations where it is not provably safe to do
so, which it was not in any of these cases.

Release Notes:

- Fixed some potential panics in the AWS Bedrock model provider.

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

gcp-cherry-pick-bot[bot] and Marshall Bowers created

f3fb7b7 Git telemetry (cherry-pick #26222) (#26229)

Click to expand commit body
Cherry-picked Git telemetry (#26222)

Release Notes:

- git: Adds telemetry to git actions

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

decfd98 Git askpass (#25953)

Click to expand commit body
Supersedes #25848

Release Notes:

- git: Supporting push/pull/fetch when remote requires auth

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Conrad Irwin and Mikayla Maki created

661e36f Clear pending staged/unstaged diff hunks hunks when writing to the git index fails (#26173)

Click to expand commit body
Release Notes:

- Git Beta: Fixed a bug where discarding a hunk in the project diff view
performed two concurrent saves of the buffer.
- Git Beta: Fixed an issue where diff hunks appeared in the wrong state
after failing to write to the git index.

Max Brunsfeld created

c80d251 Git uncommit warning (#25977)

Click to expand commit body
Adds a prompt when clicking the uncommit button when the current commit
is already present on a remote branch:

![screenshot showing
prompt](https://github.com/user-attachments/assets/d6421875-588e-4db0-aee0-a92f36bce94b)

Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>

Julia Ryan and Conrad created

420bb84 ci: Less Windows CI for PRs (#26155)

Click to expand commit body
Split Windows GHA CI job into `windows_clippy` and `windows_tests`
(`cargo test` and `cargo build`). `windows_clippy` will continue to run
on every PR commit, but `windows_tests` will only be run on main. Tag a
PR `windows` if you would like to run windows tests.

Added a call to the Azure metadata service to detect the Azure hardware
used by the GitHub hosted Windows runners. This is temporary and I'll
remove once I've gathered some data (adds 5-15secs to Windows CI times)

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

Peter Tripp and Mikayla Maki created

b8d1c3c git: Make repo selector wider (#26149)

Click to expand commit body
…m_item()

Closes #ISSUE

Release Notes:

- git: Fixed repository selector being too narrow

Conrad Irwin created

090c38d Fix git branches in non-active repository (#26148)

Click to expand commit body
Release Notes:

- Git Beta: Fixed a bug where the branch selector would only show for
the first repository opened.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Mikayla Maki , Conrad Irwin , and Richard Feldman created

8a0fb91 zed 0.177.4

Joseph T. Lyons created

664ccc4 git: Fix git commit font fallbacks (#26184)

Click to expand commit body
Closes #ISSUE

Release Notes:

- Fixed git commit font_fallbacks

0x2CA created

b575bc9 Fix panic in commit editor selections syncing (cherry-pick #26186) (#26188)

Click to expand commit body
Cherry-picked Fix panic in commit editor selections syncing (#26186)

Closes #26183 

Release Notes:

- Git Beta: Fixed a panic when selecting text in one of the commit
message editors

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

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

da895a6 git: Add CHERRY_PICK_HEAD to the list of merge heads (cherry-pick #26145) (#26168)

Click to expand commit body
Cherry-picked git: Add CHERRY_PICK_HEAD to the list of merge heads
(#26145)

Attempt to fix an issue where conflicts from a cherry-pick don't get
cleared out of the git panel after being resolved.

Release Notes:

- Git Beta: Fixed resolution of conflicts from cherry-picks not being
reflected in the git panel

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

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

2309721 Fix panic when expanding a deletion hunk with blame open (cherry-pick #26130) (#26142)

Click to expand commit body
Cherry-picked Fix panic when expanding a deletion hunk with blame open
(#26130)

Closes #26118

Release Notes:

- Fixed a panic when expanding diff hunks while git blame is open

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

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

fa2f982 Fix language model selector (#26138)

Click to expand commit body
This PR fixes the language model selector.

I tried to piece together the state prior to #25697 (the state it was in
at 11838cf89e0b96531f90f22432b3df6859587871) while retaining unrelated
changes that happened since then.

Release Notes:

- Fixed an issue where language models would not be authenticated until
after the model selector was opened (Preview only).

Marshall Bowers created

78b460f Clean up language model selector (#26134)

Click to expand commit body
This PR does some cleanup for the language model selector after
https://github.com/zed-industries/zed/pull/26090.

Release Notes:

- N/A

Marshall Bowers created

2d5063b zed 0.177.3

Cole Miller created

a87929c Bump Tree-sitter to 0.25.3 for error recovery fixes (#26092)

Click to expand commit body
For https://github.com/tree-sitter/tree-sitter/pull/4257

Release Notes:

- Fixed a hang that could occur when editing certain Zig files.

Max Brunsfeld created

535c949 Fix performance regression in multibuffer diff syncing (cherry-pick #26137) (#26139)

Click to expand commit body
Cherry-picked Fix performance regression in multibuffer diff syncing
(#26137)

This fixes a performance problem introduced in #25906 and caused by
calling `BufferDiff::snapshot` too frequently.

Release Notes:

- Fixed a performance regression related to buffer diffs

Co-authored-by: Conrad <conrad@zed.dev>

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

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

4b6fcef zed 0.177.2

Joseph T. Lyons created

dc37471 Fix diff_hunk_before in a multibuffer (cherry-pick #26059) (#26102)

Click to expand commit body
Cherry-picked Fix diff_hunk_before in a multibuffer (#26059)

Also simplify it to avoid doing a bunch of unnecessary work.

Co-Authored-By: Cole <cole@zed.dev>

Closes #ISSUE

Release Notes:

- git: Fix jumping to the previous diff hunk

---------

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

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Cole <cole@zed.dev>

gcp-cherry-pick-bot[bot] , Conrad Irwin , and Cole created

c084706 git: Improvements to fetch/push/pull (cherry-pick #26041) (#26051)

Click to expand commit body
Cherry-picked git: Improvements to fetch/push/pull (#26041)

- Add global handlers so these actions can be invoked from the command
palette, etc.
- Tweak spinner to not show itself until a remote has been selected

Release Notes:

- N/A

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

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

578c9f8 Synchronize modal commit editor with panel editor (cherry-pick #26068) (#26093)

Click to expand commit body
Cherry-picked Synchronize modal commit editor with panel editor (#26068)

Release Notes:

- Git Beta: Synchronized selections between the modal editor and the
panel editor
- Git Beta: Allow opening the commit modal even if we're unable to
commit.

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

gcp-cherry-pick-bot[bot] and Mikayla Maki created

f06cee4 Fix focus handle leak (cherry-pick #26090) (#26094)

Click to expand commit body
Cherry-picked Fix focus handle leak (#26090)

This fixes a major performance issue in the current git beta.
This PR also removes the PopoverButton component, which was easy to
misuse.

Release Notes:

- Git Beta: Fix frame drops caused by opening the git panel

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>

gcp-cherry-pick-bot[bot] , Conrad Irwin , and Mikayla Maki created

1f936ec Fix lag when large diff hunk intersects the viewport (#26088)

Click to expand commit body
We were iterating over the row range of a hunk, and inserting into a
hash map for every row.

Release Notes:

- Fixed a performance problem when a large diff hunk was displayed in an
editor.

Max Brunsfeld created

1516ee3 zed 0.177.1

Joseph T. Lyons created

53af68a git: Fix project diff shortcuts (cherry-pick #26045) (#26049)

Click to expand commit body
Cherry-picked git: Fix project diff shortcuts (#26045)

Release Notes:

- git: Fix keyboard shortcut display in project diff view
- vim: add git keyboard shortcuts: `d u/d U` for staging/unstaging in
the project diff view. `d o/d O` to show hide/toggle staged in the
editor and `d p` for restoring the hunk.

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

e897f19 Git Beta: Fix a few cases of empty toasts showing up (cherry-pick #25985) (#25987)

Click to expand commit body
Cherry-picked Git Beta: Fix a few cases of empty toasts showing up
(#25985)

Improve parsing of git remote outputs

Release Notes:

- N/A

Co-authored-by: Mikayla Maki <mikayla@zed.dev>

gcp-cherry-pick-bot[bot] and Mikayla Maki created

aba10b7 Git fix repo selection (cherry-pick #25996) (#25998)

Click to expand commit body
Cherry-picked Git fix repo selection (#25996)

Release Notes:

- git: Fixed a bug where staging/unstaging of hunks could use the wrong
git repository if you had many open

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

46190bd git: Fix race condition loading project diff (cherry-pick #25992) (#25999)

Click to expand commit body
Cherry-picked git: Fix race condition loading project diff (#25992)

Release Notes:

- git: Fixed a race condition where some files would be missing from
project diff

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

gcp-cherry-pick-bot[bot] and Conrad Irwin created

0b360fe git: Add `hunk_style` setting (#26038)

Click to expand commit body
This PR adds the `git.hunk_style` setting, allowing setting an alternate
style for hunks – specifically the rendering of unstaged hunks.

It has 2 options:

- `transparent` (unstaged hunks are more transparent/less opaque than
staged hunks)
- `pattern (unstaged hunks are indicated by a visual pattern)

We'll possibly explore a VSCode-style "don't show staged hunks", but the
complexity it adds is a bit out of scope for now.

Transparent:

![CleanShot 2025-03-04 at 09 07
09@2x](https://github.com/user-attachments/assets/a74c4286-8264-48a2-bd58-0c582efb4e22)

Pattern:

![CleanShot 2025-03-04 at 09 10
12@2x](https://github.com/user-attachments/assets/4dd3040e-fb36-4670-9279-fcc7a4f12ced)

Release Notes:

- Git Beta: Added `git.hunk_style` setting to allow toggling between git
hunk visual styles.

Nate Butler created

11d75c4 Disable diff hunks for untracked files, even w/ no newline at eof (cherry-pick #25980) (#26004)

Click to expand commit body
Cherry-picked Disable diff hunks for untracked files, even w/ no newline
at eof (#25980)

This fixes an issue where diff hunks were shown for untracked files, but
only if the files did not end with a newline.

Release Notes:

- N/A

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

gcp-cherry-pick-bot[bot] and Max Brunsfeld created

b3de2bf Reuse existing logic used to generate commit messages to disable commit buttons (#26034)

Click to expand commit body
Also
- Recomputes `suggested_commit_message` and no longer stores it, to
ensure things are always up to date
- Reduces indentation in `render_footer`

Release Notes:

- N/A

Joseph T. Lyons created

b2f174a Revert "git: Use worktree paths in the panel (#25950)" (#25995)

Click to expand commit body
This reverts commit e7b3b8bf03f5f8693f8c330b98b656b16ab8f931.

Release Notes:

- N/A

Cole Miller created

a3b7c1d Fix a panic on Linux theme appearance change (cherry-pick #26019) (#26028)

Click to expand commit body
Cherry-picked Fix a panic on Linux theme appearance change (#26019)

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



https://github.com/zed-industries/zed/blob/21484a2e9d07b6285f112ba49ca413cdb8e360e4/crates/gpui/src/platform/linux/platform.rs#L517-L519

`with_common` panicked at `borrow_mut` which is the way it's implemented
for X11, Wayland and Headless Linux counterparts.



https://github.com/zed-industries/zed/blob/21484a2e9d07b6285f112ba49ca413cdb8e360e4/crates/gpui/src/platform/linux/wayland/client.rs#L722-L724

By accessing the appearance global instead of a `RefCell` with it, the
panic goes away with one notable side-effect, on Linux only: the first
global's value on `Dark` appearance would be `Light`: it becomes normal
instantly, thanks to



https://github.com/zed-industries/zed/blob/21484a2e9d07b6285f112ba49ca413cdb8e360e4/crates/workspace/src/workspace.rs#L1083-L1090

Things work without flickering:



[linux_theme_toggle.webm](https://github.com/user-attachments/assets/0e39ddc0-b4ff-4475-93ff-7b2bd7233628)


Release Notes:

- Fixed a panic on Linux theme appearance change

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

gcp-cherry-pick-bot[bot] and Kirill Bulatov created