a17807d
docs: Rust-analyzer example settings for alternate targets (#29353)
Click to expand commit body
Release Notes: - N/A
Peter Tripp created
a17807d
docs: Rust-analyzer example settings for alternate targets (#29353)
Release Notes: - N/A
Peter Tripp created
f81e65a
agent: Do not create user messages for tool results in thread (#29354)
We used to insert empty user messages into the `Thread::messages` `Vec` when tools finished running and then we would attach the results when creating the request. This approach was very easy to mess up during state handling, leading to empty user messages displayed in the conversation and API failures. Instead, we will no longer insert actual user messages for tool results to the `Thread`, and will only do this on the fly when creating the model request. This simplifies a lot of code and show fix the mentioned errors. Release Notes: - agent: Improve reliability of LLM requests when including tool results --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de> Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Agus Zubiaga , Bennet Bo Fenner , and Oleksiy Syvokon created
952fe34
anthropic: Remove list of supported countries (#29346)
This PR removes the list of supported countries from the `anthropic` crate, as it is no longer referenced in this repo. Release Notes: - N/A
Marshall Bowers created
f527df6
google_ai: Remove list of supported countries (#29348)
This PR removes the list of supported countries from the `google_ai` crate, as it is no longer referenced in this repo. Release Notes: - N/A
Marshall Bowers created
b54bbeb
open_ai: Remove list of supported countries (#29347)
This PR removes the list of supported countries from the `open_ai` crate, as it is no longer referenced in this repo. Release Notes: - N/A
Marshall Bowers created
8bb7a1f
Remove `linked_edits` issue description from Elm doc (#29350)
The known issue with `linked_edits` seems to be fixed in this PR: https://github.com/elm-tooling/elm-language-server/pull/1364. This PR removes the section from Zeds documentation to avoid confusion. Release Notes: - Remove known issues section from Elm documentation.
Vojtěch Hořánek created
e70d8d4
agent: Simplify user message design more (#29326)
Follow-up to https://github.com/zed-industries/zed/pull/29165 where the user message design is simplified even more. The edit button is not visible anymore, and you can click on the whole message block to edit a message. Release Notes: - N/A
Danilo Leal created
ea5ce2a
collab: Remove unused `RateLimiter` (#29343)
This PR removes the `RateLimiter` from the collab codebase, as it is no longer used. Release Notes: - N/A
Marshall Bowers created
fd8eeb5
Fix ctrl-enter opening inline-assistant in assistant text threads (#29313)
Closes: https://github.com/zed-industries/zed/issues/24501 This has been broken for a while on linux (at least since Feb 8th!) for Assistant1. It is also broken for Text Threads in Assitant2 (on macos and linux). This should fix both. Potentially related: - https://github.com/zed-industries/zed/pull/29107 Release Notes: - Fix for `ctrl-enter` shortcut in Assistant text threads incorrectly opening inline assist instead of triggering Send. Co-authored-by: Conrad Irwin <conrad@zed.dev>
Peter Tripp and Conrad Irwin created
92f21ee
collab: Return current plan based on subscription status (#29341)
This PR makes collab return the current plan based on subscription status instead of based on the staff bit. Release Notes: - N/A
Marshall Bowers created
fcfeea4
Allow creating entries when nothing is selected in the project panel (#29336)
Closes https://github.com/zed-industries/zed/issues/29249 Release Notes: - Allowed creating entries when nothing is selected in the project panel
Kirill Bulatov created
c0f8e0f
Fix context_stack race in KeyContextView (#29324)
cc @notpeter Before this change we used our own copy of `cx.key_context()` when matching. This led to races where the context queried could be either before (or after) the context used in dispatching. To avoid the race, gpui now passes out the context stack actually used instead. Release Notes: - Fixed a bug where the Key Context View could show the incorrect context, causing confusing results.
Conrad Irwin created
9d10489
Show diagnostic codes (#29296)
Closes #28135 Closes #4388 Closes #28136 Release Notes: - diagnostics: Show the diagnostic code if available --------- Co-authored-by: Neo Nie <nihgwu@live.com> Co-authored-by: Zed AI <ai+claude-3.7@zed.dev>
Conrad Irwin , Neo Nie , and Zed AI created
8836c6f
Introduce LanguageModelToolUse::raw_input (#29322)
This is to enable alternative streaming solutions at the application layer. I'm not sure we really should have performed parsing of the input at this layer. Either way I want to experiment with streaming approaches in a separate crate on a branch, and this will help. /cc @maxdeviant @bennetbo @rtfeldman Closes #ISSUE Release Notes: - N/A
Nathan Sobo created
f125353
Add tree-sitter example to the eval (#29321)
Interesting things about this example: * It's a useful, non-trivial change I made with the agent in Tree-sitter * It runs fast * It frequently showcases edit file errors * It occasionally completely errors out due to errors parsing tool call input JSON Release Notes: - N/A
Max Brunsfeld created
fef2681
language_models: Count Google AI tokens through LLM service (#29319)
This PR wires the counting of Google AI tokens back up. It now goes through the LLM service instead of collab's RPC. Still only available for Zed staff. Release Notes: - N/A
Marshall Bowers created
8b5835d
agent: Improve initial file search quality (#29317)
This PR significantly improves the quality of the initial file search that occurs when the model doesn't yet know the full path to a file it needs to read/edit. Previously, the assertions in file_search often failed on main as the model attempted to guess full file paths. On this branch, it reliably calls `find_path` (previously `path_search`) before reading files. After getting the model to find paths first, I noticed it would try using `grep` instead of `path_search`. This motivated renaming `path_search` to `find_path` (continuing the analogy to unix commands) and adding system prompt instructions about proper tool selection. Note: I know the command is just called `find`, but that seemed too general. In my eval runs, the `file_search` example improved from 40% ± 10% to 98% ± 2%. The only assertion I'm seeing occasionally fail is "glob starts with `**` or project". We can probably add some instructions in that regard. Release Notes: - N/A
Agus Zubiaga created
2124b7e
agent: Encourage model to include displayed fields first (#29308)
Instructs the model to include the fields that we display first in the input object, so that e.g the user can see the path of a file while the model generates the content. Release Notes: - N/A
Agus Zubiaga created
74442b6
collab: Remove `CountLanguageModelTokens` RPC message (#29314)
This PR removes the `CountLanguageModelTokens` RPC message from collab. We were only using this for Google AI models through the Zed provider (which is only available to Zed staff). For now we're returning `0`, but will bring back soon. Release Notes: - N/A
Marshall Bowers created
ba3d826
ui: Add `inline_code` method to label (#29306)
This makes it easy to have a label that looks like Markdown inline code via the `inline_code(cx)` method. Release Notes: - N/A
Danilo Leal created
ecc600a
collab: Remove code for embeddings (#29310)
This PR removes the embeddings-related code from collab and the protocol, as we weren't using it anywhere. Release Notes: - N/A
Marshall Bowers created
2184967
debugger: Add support for inline value hints (#28656)
This PR uses Tree Sitter to show inline values while a user is in a debug session. We went with Tree Sitter over the LSP Inline Values request because the LSP request isn't widely supported. Tree Sitter is easy for languages/extensions to add support to. Tree Sitter can compute the inline values locally, so there's no need to add extra RPC messages for Collab. Tree Sitter also gives Zed more control over how we want to show variables. There's still more work to be done after this PR, namely differentiating between global/local scoped variables, but it's a great starting point to start iteratively improving it. Release Notes: - N/A --------- Co-authored-by: Piotr Osiewicz <peterosiewicz@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Kirill <kirill@zed.dev>
Remco Smits , Piotr Osiewicz , Anthony Eid , Cole Miller , Anthony , and Kirill created
d095bab
agent: Read the user's plan from the `UserStore` (#29305)
This PR updates the Agent panel to read the user's plan from the `UserStore` instead of hard-coding it. Release Notes: - N/A
Marshall Bowers created
f8c3fe7
editor: Fix broken mouse scrolling on main (#29307)
This PR is a quick follow-up to #29234 , which unfortunately broke scrolling with the mouse in editors on main. The linked PR introduced the possiblilty to completely disable scrolling for editors. Unfortunately, it also disabled scrolling for editors by default. This PR fixes this by re-enabling it by default. This change also needs to be backported to v0.184.x. Otherwise, mouse scrolling in the next preview release will not work! Release Notes: - N/A
Finn Evers created
aa16107
agent: Add "copy to clipboard" button to error message popups (#29299)
This change makes agent errors copy-able to clipboard:  Release Notes: - N/A
Oleksiy Syvokon created
f11c749
VSCode Settings import (#29018)
Things this doesn't currently handle: - [x] ~testing~ - ~we really need an snapshot test that takes a vscode settings file with all options that we support, and verifies the zed settings file you get from importing it, both from an empty starting file or one with lots of conflicts. that way we can open said vscode settings file in vscode to ensure that those options all still exist in the future.~ - Discussed this, we don't think this will meaningfully protect us from future failures, and we will just do this as a manual validation step before merging this PR. Any imports that have meaningfully complex translation steps should still be tested. - [x] confirmation (right now it just clobbers your settings file silently) - it'd be really cool if we could show a diff multibuffer of your current settings with the result of the vscode import and let you pick "hunks" to keep, but that's probably too much effort for this feature, especially given that we expect most of the people using it to have an empty/barebones zed config when they run the import. - [x] ~UI in the "welcome" page~ - we're planning on redoing our welcome/walkthrough experience anyways, but in the meantime it'd be nice to conditionally show a button there if we see a user level vscode config - we'll add it to the UI when we land the new walkthrough experience, for now it'll be accessible through the action - [ ] project-specific settings - handling translation of `.vscode/settings.json` or `.code-workspace` settings to `.zed/settings.json` will come in a future PR, along with UI to prompt the user for those actions when opening a project with local vscode settings for the first time - [ ] extension settings - we probably want to do a best-effort pass of popular extensions like vim and git lens - it's also possible to look for installed/enabled extensions with `code --list-extensions`, but we'd have to maintain some sort of mapping of those to our settings and/or extensions - [ ] LSP settings - these are tricky without access to the json schemas for various language server extensions. we could probably manage to do translations for a couple popular languages and avoid solving it in the general case. - [ ] platform specific settings (`[macos].blah`) - this is blocked on #16392 which I'm hoping to address soon - [ ] language specific settings (`[rust].foo`) - totally doable, just haven't gotten to it yet ~We may want to put this behind some kind of flag and/or not land it until some of the above issues are addressed, given that we expect people to only run this importer once there's an incentive to get it right the first time. Maybe we land it alongside a keymap importer so you don't have to go through separate imports for those?~ We are gonna land this as-is, all these unchecked items at the bottom will be addressed in followup PRs, so maybe don't run the importer for now if you have a large and complex VsCode settings file you'd like to import. Release Notes: - Added a VSCode settings importer, available via a `zed::ImportVsCodeSettings` action --------- Co-authored-by: Mikayla Maki <mikayla@zed.dev> Co-authored-by: Kirill Bulatov <kirill@zed.dev> Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com> Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Julia Ryan , Mikayla Maki , Kirill Bulatov , Mikayla Maki , and Marshall Bowers created
40b5a1b
agent: Improve feedback text and buttons wrapping (#29302)
Just a little UI improvement here. Release Notes: - N/A
Danilo Leal created
2d43818
rust-analyzer: Fix for deserialization error of CargoRunnableArgs (#29291)
Fix for error:
```log
2025-04-23T13:02:14-04:00 INFO [lsp] starting language server process. binary path: "/Users/peter/Library/Application Support/Zed/languages/rust-analyzer/rust-analyzer-2025-04-21", working directory: "/Users/peter/zcode/zed", args: []
2025-04-23T13:02:16-04:00 ERROR [lsp] failed to deserialize response from language server: data did not match any variant of untagged enum RunnableArgs at line 1 column 199. response from language server: "[{\"label\":\"cargo check --workspace\",\"kind\":\"cargo\",\"args\":{\"cwd\":\"/Users/peter/zcode/zed/crates/gpui/src/platform/linux\",\"overrideCargo\":null,\"cargoArgs\":[\"check\",\"--workspace\"],\"executableArgs\":[]}}]"
2025-04-23T13:02:16-04:00 WARN [project::lsp_store] LSP Runnables via rust-analyzer failed: failed to deserialize response
2025-04-23T13:02:16-04:00 ERROR [*unknown*] LSP Runnables via rust-analyzer failed: failed to deserialize response
```
Object is missing `environment`:
```json
[
{
"label": "cargo check --workspace",
"kind": "cargo",
"args": {
"cwd": "/Users/peter/zcode/zed/crates/gpui/src/platform/linux",
"overrideCargo": null,
"cargoArgs": ["check", "--workspace"],
"executableArgs": []
}
}
]
```
Follow-up to: https://github.com/zed-industries/zed/pull/28359
Release Notes:
- N/A
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Peter Tripp and Kirill Bulatov created
636c6e7
editor: Make `SelectNext` and `SelectPrevious` preserve cursor direction (#29293)
Closes #27652 Now, if the last selection is reversed, subsequent `SelectNext` or `SelectPrevious` selection will also be reversed. https://github.com/user-attachments/assets/dff31abf-ac9e-4d35-bd2c-34e7b0f3ca23 Release Notes: - Fixed an issue where `SelectNext` and `SelectPrevious` did not preserve the last selection's cursor direction.
Smit Barmase created
45d3f51
eval: New `add_arg_to_trait_method` example (#29297)
Release Notes: - N/A --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Agus Zubiaga and Richard Feldman created
8366cd0
agent: Render diffs for the edit file tool (#29234)
This PR implements the `ToolCard` for the edit file tool, which allow us to display an editor with a diff in the thread view with the changes performed by the model. - [x] Fix buffer sometimes displaying empty - [x] Stop buffer from scrolling together with the thread - [x] Fix multibuffer header sometimes appearing - [x] Fix buffer height issue - [x] Implement "full height" expand button - [x] Add "Jump To File" functionality - [x] Polish and refine styles Release Notes: - agent: Added diff preview cards in the thread view for edits performed by the agent. --------- Co-authored-by: João Marcos <marcospb19@hotmail.com> Co-authored-by: Richard Feldman <oss@rtfeldman.com> Co-authored-by: Agus Zubiaga <hi@aguz.me> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Danilo Leal , João Marcos , Richard Feldman , Agus Zubiaga , and Conrad Irwin created
f6774ae
More graceful invalid JSON handling (#29295)
Now we're more tolerant of invalid JSON coming back from the model (possibly because it was incomplete and we're streaming), plus if we do end up with invalid JSON once it has all streamed back, we report what the malformed JSON actually was: <img width="444" alt="Screenshot 2025-04-23 at 1 49 14 PM" src="https://github.com/user-attachments/assets/480f5da7-869b-49f3-9ffd-8f08ccddb33d" /> Release Notes: - N/A
Richard Feldman created
92e810b
language_models: Pass up `mode` for completion requests through Zed (#29294)
This PR makes it so we pass up the `mode` for completion requests through the Zed provider. Release Notes: - N/A
Marshall Bowers created
724c935
Highlight merge conflicts and provide for resolving them (#28065)
TODO: - [x] Make it work in the project diff: - [x] Support non-singleton buffers - [x] Adjust excerpt boundaries to show full conflicts - [x] Write tests for conflict-related events and state management - [x] Prevent hunk buttons from appearing inside conflicts - [x] Make sure it works over SSH, collab - [x] Allow separate theming of markers Bonus: - [ ] Count of conflicts in toolbar - [ ] Keyboard-driven navigation and resolution - [ ] ~~Inlay hints to contextualize "ours"/"theirs"~~ Release Notes: - Implemented initial support for resolving merge conflicts. --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Cole Miller and Max Brunsfeld created
ef54b58
Fix relative paths not properly resolved in the terminal during cmd-click (#29289)
Closes https://github.com/zed-industries/zed/pull/28342 Closes https://github.com/zed-industries/zed/issues/28339 Fixes https://github.com/zed-industries/zed/pull/29274#issuecomment-2824794396 Release Notes: - Fixed relative paths not properly resolved in the terminal during cmd-click
Kirill Bulatov created
01bdd17
Bump Zed to v0.185 (#29287)
Release Notes: -N/A
Joseph T. Lyons created
4b9f4fe
debugger: Fix stack frame list flickering (#29282)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Cole Miller and Anthony Eid created
19fb1e1
Fix workspace bottom obscured when bottom dock is full height (#27689)
When dragging the pane separator of the bottom dock to full window height, the contents at the bottom of the dock and workspace window overflowed the screen, becoming obscured. This happened because setting a new size in resize_bottom_dock(...) was not taking in consideration the top bounds of the workspace window, which caused the bottom bounds of both dock and workspace to overflow. The issue was fixed by subtracting the workspace.bounds.top() value to the dock's new size. Closes #12966 Release Notes: - N/A
Bibiana André created
f2cb6d6
collab: Add `head_commit_details` column to `project_repositories` (#29284)
This PR adds the `head_commit_details` column to the `project_repositories` table, since it was missed in https://github.com/zed-industries/zed/pull/29007. Release Notes: - N/A
Marshall Bowers created
822b6f8
agent: Expose web search tool to beta users (#29273)
This gives all beta users access to the web search tool Release Notes: - agent: Added `web_search` tool
Bennet Bo Fenner created
09db312
Fix panic when copying smart quotes in MarkdownElement (#29285)
Release Notes: - Fixed a panic that could sometimes happen when copying text in the agent.
Antonio Scandurra created
a320d32
Fix shift-y on empty line in vim mode (#29253)
Release Notes: - Fixes a regression where `shift-v up` on an empty line would appear to have selected the line after (though in reality it did not)
Conrad Irwin created
266c41e
collab: Add `can_use_web_search_tool` to LLM token claims (#29278)
This PR adds a `can_use_web_search_tool` field to the LLM token claims. Currently anyone in the `assistant2` feature flag will have access to the web search tool. Co-authored-by: Bennet <bennet@zed.dev> Release Notes: - N/A
Marshall Bowers created
4f4bbf2
theme_importer: Handle comma-separated token scopes (#27740)
This PR allows the `theme-importer` utility to handle comma-separated
token scopes.
Normally, a token in a VS Code theme is defined as either a string or a
string array:
```json
{
"scope": "token.debug-token",
"settings": {
"foreground": "#d55fde"
}
},
{
"name": "String interpolation",
"scope": [
"punctuation.definition.template-expression.begin",
"punctuation.definition.template-expression.end",
"punctuation.section.embedded"
],
"settings": {
"foreground": "#d55fde"
}
},
```
However, [some
themes](https://github.com/tal7aouy/theme/blob/ac85540d6494cf3b7dffd6adc8a06af6c1dd4b0d/src/variants/TokenColors.ts#L1771-L1777)
seem to use comma-separated values in a single scope string which VS
Code seems to accept as well:
```json
{
"name": "Comments",
"scope": "comment, punctuation.definition.comment",
"settings": {
"foreground": "#7f848e"
}
},
```
This PR handles these definitions by splitting scopes by commas before
trying to match them with the scopes that match Zed syntax tokens.
Release Notes:
- N/A
Variant9 created
990ca48
docs: Update macOS development instructions (#27611)
Updating macOS development readme with some gotchas that I ran into while getting setup. - Linked to collab readme because that contained the steps to setup the postgres database so integration tests pass - Added section under troubleshooting. Recommending `cargo-nextest` since the CI uses it and it got me past the failures I was seeing. Release Notes: - N/A --------- Co-authored-by: KyleBarton <kjbarton4@gmail.com>
Peter Finn and KyleBarton created
f69aeb6
Do not log unfinished tools use that are in the middle of streaming (#29275)
Release Notes: - N/A
Oleksiy Syvokon created
d5f3fbd
Lookup relative paths in a worktree more robustly (#29274)
Attempt to lookup exact relative paths before full worktree traversal, only do the full traversal if all other methods fail. Closes https://github.com/zed-industries/zed/issues/28407 Release Notes: - Fixed wrong paths opening when cmd-clicking in the terminal
Kirill Bulatov created
76a78b5
eval: Write JSON-serialized thread (#29271)
This adds `last.message.json` file that contains the full request plus response (serialized as a message from assistant for consistency with other messages). Motivation: to capture more info and to make analysis of finished runs easier. Release Notes: - N/A
Oleksiy Syvokon created
e515b2c
Polish agent checkpoints (#29265)
Release Notes: - Improved performance of agent checkpoint creation. - Fixed a bug that sometimes caused accidental deletions when restoring to a previous agent checkpoint. - Fixed a bug that caused checkpoints to be visible in the Git history.
Antonio Scandurra created
55ea481
Restore file to original content when rejecting file recreated by agent (#29264)
Release Notes: - Fixed a bug that could sometimes cause a file to be deleted when rejecting an agent change.
Antonio Scandurra created