71866d6
assistant2: Include some text in the tool result messages (#25825)
Click to expand commit body
This PR makes it so we include some textual content in the user messages
that as used to send up tool results.
I observed that when sending up the tool results with no text, it would
lead the model to start replying with no text, which would then result
in an error when attaching later tool results.
I think there's a deeper issue at play here, but for now we just include
some text to keep the model on track.
Release Notes:
- N/A
Marshall Bowers
created
0c2bbb3
Optimistically update hunk states when staging and unstaging hunks (#25687)
Click to expand commit body
This PR adds an optimistic update when staging or unstaging diff hunks.
In the process, I've also refactored the logic for staging and unstaging
hunks, to consolidate more of it in the `buffer_diff` crate.
I've also changed the way that we treat untracked files. Previously, we
maintained an empty diff for them, so as not to show unwanted
entire-file diff hunks in a regular editor. But then in the project diff
view, we had to account for this, and replace these empty diffs with
entire-file diffs. This form of state management made it more difficult
to store the pending hunks, so now we always use the same
`BufferDiff`/`BufferDiffSnapshot` for untracked files (with a single
hunk spanning the entire buffer), but we just have a special case in
regular buffers, that avoids showing that entire-file hunk.
* [x] Avoid creating a long queue of `set_index` operations when
staging/unstaging rapidly
* [x] Keep pending hunks when diff is recalculated without base text
changes
* [x] Be optimistic even when staging the single hunk in added/deleted
files
* Testing
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <m@cole-miller.net>
This PR updates the ui of the git panel. It removes the header from the
panel and unifies the repository, branch and commit controls in the
bottom section.
It also adds a secondary menu to the primary button giving access to a
variety of actions for managing local and remote changes:

Known issues (will be fixed in a later pr)
- Spinner showing git operation progress was removed, will be re-added
- Clicking expand with the panel editor focused will commit (due to
shared action name. Already tracked)
Before | After

(Also adds `component`, `linkme` to cargo-machete ignore as they are
used in the `IntoComponent` proc-macro and will always be incorrectly
flagged as unused)
Release Notes:
- N/A
---------
Co-authored-by: Cole Miller <m@cole-miller.net>
Co-authored-by: Cole Miller <53574922+cole-miller@users.noreply.github.com>
Co-authored-by: Cole Miller <cole@zed.dev>
Nate Butler
,
Cole Miller
,
Cole Miller
, and
Cole Miller
created
8a22a07
git: Adjust rendering of git hunks (#25824)
Click to expand commit body
- Light themes get their own values (creating better contrast and a
better distinction between staged and unstaged hunks in light themes.)
- Scrollbar git hunks indicators now use the correct colors
Before:

After:

Release Notes:
- Fixed an issue where git hunk indicators in editor scrollbars used the
incorrect colors.
Nate Butler
created
fad4df5
editor: Add Organize Imports Action (#25793)
Click to expand commit body
Closes #10004
This PR adds support for the organize imports action. Previously, you
had to manually configure it in the settings and then use format to run
it.
Note: Default key binding will be `alt-shift-o` which is similar to
VSCode's organize import. Also, because `cmd-shift-o` is taken by
outline picker.
Todo:
- [x] Initial working
- [x] Handle remote
- [x] Handle multi buffer
- [x] Can we make it generic for executing any code action?
Release Notes:
- Added `editor:OrganizeImports` action to organize imports (sort,
remove unused, etc) for supported LSPs. You can trigger it by using the
`alt-shift-o` key binding.
fc52b43
assistant2: Factor out tool use into its own module (#25819)
Click to expand commit body
This PR factors out the concerns related to tool use out of `Thread` and
into their own module.
Release Notes:
- N/A
Marshall Bowers
created
b445e4c
assistant2: Rework how tool results are stored and referred to (#25817)
Click to expand commit body
This PR reworks how we store tool results and refer to them later.
We now maintain a mapping of the tool uses to their corresponding
results, with separate mappings for the messages and the tool uses they
correspond to.
Release Notes:
- N/A
I've been bothered by using simple hyphens for bullet lists here for a
while; it kinda looked cheap and not well-formatted. So, in this PR, I'm
adding a new, custom UI component in the `language_models` crate, called
`InstructionListItem`, based off the `ListItem` that's somewhat
mimic'ing what a `<li>` would be on the web.
It does have a "rigid" structure as in it's always a label followed by a
button (which is optional), but that seems okay given it has been the
overall shape of the copy we've been using here. Also, never really
loved that we were pasting URLs directly, that kinda felt cheap, too. I
could see an argument where it's just clearer, but it looks too
cluttered, as URLs aren't super pretty, necessarily.
| Before | After |
|--------|--------|
| <img
src="https://github.com/user-attachments/assets/ffd1ac27-b1f4-450d-abf5-079285fc9877"
width="700px" /> | <img
src="https://github.com/user-attachments/assets/28fb9d0d-205d-45d8-9e43-1aaa947adc96"
width="700px" /> |
Release Notes:
- N/A
Danilo Leal
created
c9aba6c
windows: Use a clippy script instead of `xtask` (#25807)
Click to expand commit body
Closes #ISSUE
Match the behaviour of our macOS and Linux tests
Release Notes:
- N/A *or* Added/Fixed/Improved ...
张小白
created
5740fec
Ensure search input always has regex language synced with search_options state (#25811)
Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/25797
Release Notes:
- N/A
Kirill Bulatov
created
22220ed
windows: Remove unnecessary code in #25412 (#25805)
7440833
Add a way to toggle inlay hints with modifiers #2 (#25766)
Click to expand commit body
https://github.com/zed-industries/zed/pull/25752 with fixes on top
* Ensures no flickering happens for all modifiers `: false` case
* Dismisses the toggled state on focus out
* Reworks cache state so that "enabled" and "toggled by modifiers" are
different states with their own lifecycle
Release Notes:
- N/A
Kirill Bulatov
created
bb3aef1
Reset buffer language on buffer search redeploy (#25797)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25792
Release Notes:
- Fixed search input regex highlight not going away after redeploy
Kirill Bulatov
created
ece1818
docs: Add documentation for use_smartcase_search (#25786)
604eb91
logging: Add runtime log replace upon max size limit (#25768)
Click to expand commit body
Closes #25638
We currently only check the log size limit at startup and move `Zed.log`
to `Zed.log.old`. If a user runs Zed for an extended period, there's no
runtime restriction on the log file size, which can cause it to grow to
several gigabytes.
This PR fixes that by tracking the log file size while writing. If it
exceeds a certain threshold, we perform the same log replace and
continue logging.
Release Notes:
- Fixed an issue where `Zed.log` could grow excessively large during
long sessions of Zed.
Update default slash command to use description constant format from
https://github.com/zed-industries/zed/pull/18595.
|Before|After|
|---|---|
|||
^ This is when you type slash in the assistant panel.
Release Notes:
- N/A
a5f9690
Update to suggest commit message based on file staging (#25790)
Click to expand commit body
Currently, you only get a suggested commit message if you have a single
changed file in the repository. After the PR, the suggest happens per
single-staged file.
https://github.com/user-attachments/assets/4cc19fe6-099c-4690-967d-898b8ca7540b
Release Notes:
- N/A
Joseph T. Lyons
created
b15aa5e
rust: Fix test/doctest tasks showing up outside of tests (#25787)
Click to expand commit body
Closes #ISSUE
Release Notes:
- Fixes Rust test tasks showing up outside of tests
Piotr Osiewicz
created
62fb555
Use "restore" more consistently in the git panel (#25780)
Click to expand commit body
This PR replaces almost all uses of "discard" in the git panel UI with
"restore", since that's the verb we settled on for the project diff.
The only exception is in the confirmation prompt for restoring files,
where I've kept the "discard changes" language. I think consistency is
less important here and it's helpful to rephrase the action that's being
taken to emphasize that it's destructive.
Release Notes:
- N/A
df7beb4
Use active worktree's task sources (#25784)
Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/25605
Previous PR made global tasks with `ZED_WORKTREE_ROOT` available for
"nothing open" scenario, this PR also gets all related worktree task
templates, using the centralized `TextContexts`' active worktree
detection.
Release Notes:
- N/A
Kirill Bulatov
created
6f30d5d
Use consistent comment style in `default.json` (#25783)
Click to expand commit body
This PR updates the comments in the `default.json` file consistently use
`//`.
Some comments were using `///`, which doesn't make sense in JSONC.
Release Notes:
- N/A
Marshall Bowers
created
b8387c6
docs: Clarify wording around `...` in `language_servers` setting (#25782)
Click to expand commit body
This PR clarifies the wording around how `...` is used in the
`language_servers` setting.
Closes https://github.com/zed-industries/zed/issues/25779.
Release Notes:
- N/A
Marshall Bowers
created
c05ce88
docs: Add note about `path` in `extensions.toml` (#25778)
Click to expand commit body
This PR adds a note about the `path` field in `extensions.toml` and how
to use it.
Suggested in https://github.com/zed-industries/extensions/pull/2128.
Release Notes:
- N/A
Marshall Bowers
created
eaf3949
edit predictions: Remove `enabled_in_assistant` docs for now (#25777)
Click to expand commit body
I shouldn't have added this because it's not out yet
Release Notes:
- N/A
Agus Zubiaga
created
c47305d
title_bar: Fix the order of the collab buttons (#25775)
Click to expand commit body
My previous #24761 and #25192 PR's changed the order of the buttons in
the title_bar for collab, the logic is kept the same but the order is
now as it was previously.
Release Notes:
- N/A
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
7ec3702
Fix cursor position when navigating to a multibuffer's first excerpt (#25723)
Click to expand commit body
This PR fixes an unexpected cursor position when jumping to the
beginning of the project diff editor's first excerpt if that excerpt
starts with a deleted region. Previously, the cursor would end up in the
*following* region in this situation; now it ends up at the start of the
deleted region, as happens already for excerpts that are not the first.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Cole Miller
and
Max
created
91862dd
markdown_preview: Fix markdown preview not updating on `AcceptEditPrediction` (#25772)
Click to expand commit body
Closes #25384
Markdown preview now subscribes to `ExcerptsEdited` event which is
emited when edit prediction is accepted.
Release Notes:
- Fixed markdown preview not updating when edit prediction is accepted.
smit
created
eb4fad5
Fix panic when scrolling in project diff (#25771)
Click to expand commit body
It may happen that the column for the scroll anchor is nonzero, and the
adjustment we're doing here could result in an invalid point in that
case.
Release Notes:
- N/A
Co-authored-by: Max <max@zed.dev>
Cole Miller
and
Max
created
541a5c0
edit predictions: Fix docs for `enabled_in_assistant` (#25770)
Click to expand commit body
Remove mention of "prompt editor" since that feature isn't out yet.
Release Notes:
- N/A
6eb2ffe
Support absolute `disabled_globs` (#25755)
Click to expand commit body
Closes: #25556
We were always comparing `disabled_globs` against the relative file
path, we'll now use the absolute path if the glob is also absolute.
Release Notes:
- Support absolute globs in `edit_predictions.disabled_globs`
Agus Zubiaga
created
c5632f8
Revert "Add a way to toggle inlay hints with modifiers" (#25764)
Click to expand commit body
This PR caused inlay hints to show on every modifiers press
Reverts zed-industries/zed#25752
Release Notes:
- N/A
Mikayla Maki
created
6856e86
Fix git panel's suggested commit message not updating (#25708)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Cole Miller
created
cc3b5c7
Keep cursor at top when diff view is first opened (#25682)
Click to expand commit body
Previously, we had the cursor at the bottom while the scroll stayed at
the top.
Now, if you run `git: diff`, the cursor will also be at the top.
The cursor moving to the end was possibly a side-effect of using
`Bias::Right` for selections.
---
Release Notes:
- N/A
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
João Marcos
and
Max Brunsfeld
created
4e60eba
Fix toggling deletion hunk with mouse at start of buffer (#25726)
Click to expand commit body
Closes #ISSUE
Release Notes:
- N/A
Cole Miller
created
e8ef36e
Add a way to toggle inlay hints with modifiers (#25752)
Kirill Bulatov
created
2e98bc1
lsp: Use available workspace folders in initialize params (#25753)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/25743
Closes https://github.com/biomejs/biome-zed/issues/73
Release Notes:
- Fixed issues with launching Svelte/Biome language servers
Piotr Osiewicz
created
5c400da
assistant2: Adjust empty state layout (#25745)
Click to expand commit body
Going for a different, arguably simpler design for the Assistant 2 empty
state here. Also took the opportunity to adjust other elements like the
toolbar, message editor, and some items in the configuration page.
<img
src="https://github.com/user-attachments/assets/03fd1d48-a675-4eac-b694-bbe4eeaf06e9"
width="700px"/>
Release Notes:
- N/A
Danilo Leal
created
635b80e
assistant2: Fix submit button width depending on certain conditions (#25748)
Click to expand commit body
This PR makes the Assistant 2 submit button have a different width if
the platform is Linux or Windows, or if Vim mode is turned on. That's
because we now use written out words instead of icons for keybindings
when in those conditions.
| Before | After |
|--------|--------|
| 
| 
|
Release Notes:
- N/A
Just fine-tuning it a bit more.
<img
src="https://github.com/user-attachments/assets/0d46af77-d111-40a3-9204-d5d8aa9d4886"
width="700px"/>
Release Notes:
- N/A
Danilo Leal
created
1f52aab
buffer: Fix panic when multi-byte character is used in languages like Swift (#25739)
Click to expand commit body
Closes #25471
In languages like Swift, names can be concatinated in form like `class
Example: UI`, notice here `Example` and `:` are two different words.
Before, `name_ranges`translation of above text would look like:
```
"class" -> [0..5]
" Example" -> [5..13] (Spaces are intentional)
"e:" -> [12..14] (This is incorrect, and should be ":" -> [13..14])
" UI" -> [14..16]
```
Because this translation does not account for concatinated words, this
might affect queries, but most importantly this panics when multi-byte
character (`ф`) is used in place of `e`, as it then tries to access
index which lies inside that multi-byte. For example, it panics on
`class Examplф: UI`.
---
This PR fixes this by handing concatinated words when calculating
`name_ranges`.
Now, the corrected ranges will look like:
```
"class" -> [0..5]
" Example" -> [5..13]
":" -> [13..14] (Now it's correct)
" UI" -> [14..16]
```
and for multi-byte character
```
"class" -> [0..5]
" Examplф" -> [5..14] (Notice ф takes two bytes)
":" -> [14..15]
" UI" -> [15..17]
```
This way, it no longer tries to access a previous index, preventing a
panic when that index contains a multi-byte character.
Release Notes:
- Fixed a panic when Cyrillic characters are used in languages like
Swift.
smit
created
1732cdb
Update Rust crate sea-orm to v1.1.6 (#25696)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [sea-orm](https://www.sea-ql.org/SeaORM)
([source](https://redirect.github.com/SeaQL/sea-orm)) | dev-dependencies
| patch | `1.1.5` -> `1.1.6` |
| [sea-orm](https://www.sea-ql.org/SeaORM)
([source](https://redirect.github.com/SeaQL/sea-orm)) | dependencies |
patch | `1.1.5` -> `1.1.6` |
---
### Release Notes
<details>
<summary>SeaQL/sea-orm (sea-orm)</summary>
###
[`v1.1.6`](https://redirect.github.com/SeaQL/sea-orm/blob/HEAD/CHANGELOG.md#116---2025-02-24)
[Compare
Source](https://redirect.github.com/SeaQL/sea-orm/compare/1.1.5...1.1.6)
##### New Features
- Support PgVector
[https://github.com/SeaQL/sea-orm/pull/2500](https://redirect.github.com/SeaQL/sea-orm/pull/2500)
- Added `Insert::exec_with_returning_keys` &
`Insert::exec_with_returning_many` (Postgres only)
```rust
assert_eq!(
Entity::insert_many([
ActiveModel { id: NotSet, name: Set("two".into()) },
ActiveModel { id: NotSet, name: Set("three".into()) },
])
.exec_with_returning_many(db)
.await
.unwrap(),
[
Model { id: 2, name: "two".into() },
Model { id: 3, name: "three".into() },
]
);
assert_eq!(
cakes_bakers::Entity::insert_many([
cakes_bakers::ActiveModel {
cake_id: Set(1),
baker_id: Set(2),
},
cakes_bakers::ActiveModel {
cake_id: Set(2),
baker_id: Set(1),
},
])
.exec_with_returning_keys(db)
.await
.unwrap(),
[(1, 2), (2, 1)]
);
```
- Added `DeleteOne::exec_with_returning` &
`DeleteMany::exec_with_returning`
[https://github.com/SeaQL/sea-orm/pull/2432](https://redirect.github.com/SeaQL/sea-orm/pull/2432)
##### Enhancements
- Expose underlying row types (e.g. `sqlx::postgres::PgRow`)
[https://github.com/SeaQL/sea-orm/pull/2265](https://redirect.github.com/SeaQL/sea-orm/pull/2265)
- \[sea-orm-cli] Added `acquire-timeout` option
[https://github.com/SeaQL/sea-orm/pull/2461](https://redirect.github.com/SeaQL/sea-orm/pull/2461)
- \[sea-orm-cli] Added `with-prelude` option
[https://github.com/SeaQL/sea-orm/pull/2322](https://redirect.github.com/SeaQL/sea-orm/pull/2322)
- \[sea-orm-cli] Added `impl-active-model-behavior` option
[https://github.com/SeaQL/sea-orm/pull/2487](https://redirect.github.com/SeaQL/sea-orm/pull/2487)
##### Bug Fixes
- Fixed `seaography::register_active_enums` macro
[https://github.com/SeaQL/sea-orm/pull/2475](https://redirect.github.com/SeaQL/sea-orm/pull/2475)
##### House keeping
- Remove `futures` crate, replace with `futures-util`
[https://github.com/SeaQL/sea-orm/pull/2466](https://redirect.github.com/SeaQL/sea-orm/pull/2466)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
0625006
windows: Missing commit of #25412 (#25732)
0b96690
Update Rust crate convert_case to 0.8.0 (#25711)
Click to expand commit body
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [convert_case](https://redirect.github.com/rutrum/convert-case) |
workspace.dependencies | minor | `0.7.0` -> `0.8.0` |
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [ctor](https://redirect.github.com/mmastrac/rust-ctor) |
workspace.dependencies | minor | `0.3.0` -> `0.4.0` |
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>