2bfac79
zed 0.184.5
Joseph T. Lyons created
2bfac79
zed 0.184.5
Joseph T. Lyons created
a62a6c4
askpass: Shell escape Zed path in askpass script (cherry-pick #29447) (#29449)
Cherry-picked askpass: Shell escape Zed path in askpass script (#29447) Closes #29439 Add shell escaping as well as additional sanity check for Zed path when used in askpass. This caused issues on preview and nightly as the standard paths for those releases contain spaces which were not escaped appropriately leading to erroneous "Permission denied" errors from SSH when the askpass script failed Release Notes: - Fixed a missing shell-escape in askpass resulting in erroneous "Permission denied" errors when trying to connect to a remote server over ssh (effecting preview release v0.184.1 and nightly only) Co-authored-by: Ben Kunkle <ben@zed.dev>
gcp-cherry-pick-bot[bot] and Ben Kunkle created
d68df74
agent: Simplify elements of the thread design (#29533)
Namely, this PR removes the layout shift when you click on a user message to edit it and displays the feedback disclaimer only upon hovering the thumbs up/down button container. Release Notes: - N/A
Danilo Leal created
17e2746
agent: Bring title editing back to text threads (#29425)
This also fixes a little UI bug where the text thread title would push the buttons away from the UI when there was still space. Release Notes: - agent: Made text thread titles editable again. --------- Co-authored-by: Michael Sloan <mgsloan@gmail.com>
Danilo Leal and Michael Sloan created
45ebaac
agent tools: Make `read_file.end_line` inclusive (#29524)
One motivation is that the outlines returned by `read_file` for large files list line numbers assuming an inclusive `end_line`. As a result, when the agent uses these outlines for `read_line` calls, it would otherwise miss the last line. Release Notes: - N/A
Oleksiy Syvokon created
0f051dd
Fix error when deserializing Gemini streams (#29470)
Sometimes Gemini would report `Content` without a `parts` field. Release Notes: - Fixed a bug that would sometimes cause Gemini models to fail streaming their response.
Antonio Scandurra created
18c2137
zed 0.184.4
Joseph T. Lyons created
d92de5e
editor: Improve fuzzy match bucket logic for code completions (#29442)
Add new test and improve fuzzy match bucket logic which results into far better balance between LSP and fuzzy search. Before: <img width="500" alt="before" src="https://github.com/user-attachments/assets/3e8900a6-c0ff-4f37-b88e-b0e3783b7e9a" /> After: <img width="500" alt="after" src="https://github.com/user-attachments/assets/738c074c-d446-4697-aac6-9814362e88db" /> Release Notes: - N/A
Smit Barmase created
0078f67
editor: Add setting for snippet sorting behavior for code completion (#29429)
Added `snippet_sort_order`, which determines how snippets are sorted relative to other completion items. It can have the values `top`, `bottom`, or `inline`, with `inline` being the default. This mimics VS Code’s setting: https://code.visualstudio.com/docs/editing/intellisense#_snippets-in-suggestions Release Notes: - Added support for `snippet_sort_order` to control snippet sorting behavior in code completion menus.
Smit Barmase created
77f1609
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
93302ab
Fix inclusion of message when counting tokens from message editor (#29443)
Accidentally omitted this in #29233 Release Notes: - N/A
Michael Sloan created
7c93c8e
agent: Render path search results with `ToolCard` (#28894)
Implementing the `ToolCard` for the path_search tool. It also adds the "jump to file" functionality if you expand the results. Release Notes: - N/A --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com> Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal , Richard Feldman , and Agus Zubiaga created
01d2066
agent: Make markdown code blocks uncollapsed by default (#29424)
Seeing the markdown code stream in is actually more helpful than hiding parts of it; parts that you may be interested in. Release Notes: - N/A
Danilo Leal created
dfea962
agent: Allow to explictly disable tools when using `enable_all_context_servers` (#29414)
Previously, all MCP tools would be completed regardless if they were disabled/enabled for the profile. This meant that the "Write" profile was always using all MCP tools, even if you disabled them in the settings. Now, when `enable_all_context_servers` is set to `true`, we will enable all tools from all MCP servers by default but disable the ones that are explicitly disabled for the profile. Also fixes an issue where the tools would not show up as enabled when using `enable_all_context_servers: true` Release Notes: - agent: Fix an issue where MCP tools could not be enabled/disabled
Bennet Bo Fenner created
0f3c56f
Bump to 0.184.3 for @bennetbo
Zed Bot created
1cbdce4
assistant: Fix issue when using inline assistant with Gemini models (cherry-pick #29407) (#29409)
Cherry-picked assistant: Fix issue when using inline assistant with Gemini models (#29407) Closes #29020 Release Notes: - assistant: Fix issue when using inline assistant with Gemini models Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
gcp-cherry-pick-bot[bot] and Bennet Bo Fenner created
745e7d6
language_models: Use `POST /completions` endpoint for Zed provider (#29389)
This PR updates the Zed provider to use the `POST /completions` endpoint. There is no functional difference from `POST /completion`, but the pluralized version reads better. Release Notes: - N/A
Marshall Bowers created
19de45c
Bring back reload of agent context before sending message (#29385)
Realized after merging #29233 that this behavior is desired Release Notes: - N/A
Michael Sloan created
f8c3a01
Remove unnecessary fields from the tool schemas (#29381)
This PR removes two fields from JSON schemas (`$schema` and `title`),
which are not expected by any model provider, but were spuriously
included by our JSON schema library, `schemars`.
These added noise to requests and cost wasted input tokens.
### Old
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "FetchToolInput",
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"description": "The URL to fetch.",
"type": "string"
}
}
}
```
### New:
```json
{
"properties": {
"url": {
"description": "The URL to fetch.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
```
- N/A
Max Brunsfeld created
08cb703
Restructure agent context (#29233)
Simplifies the data structures involved in agent context by removing caching and limiting the use of ContextId: * `AssistantContext` enum is now like an ID / handle to context that does not need to be updated. `ContextId` still exists but is only used for generating unique `ElementId`. * `ContextStore` has a `IndexMap<ContextSetEntry>`. Only need to keep a `HashSet<ThreadId>` consistent with it. `ContextSetEntry` is a newtype wrapper around `AssistantContext` which implements eq / hash on a subset of fields. * Thread `Message` directly stores its context. Fixes the following bugs: * If a context entry is removed from the strip and added again, it was reincluded in the next message. * Clicking file context in the thread that has been removed from the context strip didn't jump to the file. * Refresh of directory context didn't reflect added / removed files. * Deleted directories would remain in the message editor context strip. * Token counting requests didn't include image context. * File, directory, and symbol context deduplication relied on `ProjectPath` for identity, and so didn't handle renames. * Symbol context line numbers didn't update when shifted Known bugs (not fixed): * Deleting a directory causes it to disappear from messages in threads. Fixing this in a nice way is tricky. One easy fix is to store the original path and show that on deletion. It's weird that deletion would cause the name to "revert", though. Another possibility would be to snapshot context metadata on add (ala `AddedContext`), and keep that around despite deletion. Release Notes: - N/A
Michael Sloan created
43a04dc
Treat invalid JSON in tool calls as failed tool calls (#29375)
Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Richard Feldman , Max , and Max Brunsfeld created
00e92e3
Rename "Prompt Library" to "Rules Library" (#29349)
There's probably more to do to fully make the transition, and we'll still debate a bit internally whether this is the name, but just opening this PR up now for visibility. Release Notes: - N/A
Danilo Leal created
9e703ac
gemini: Fix issue when deserializing tool call (#29363)
Fixes a regression introduced in #29322 Release Notes: - N/A Co-authored-by: Agus Zubiaga <hi@aguz.me>
Bennet Bo Fenner and Agus Zubiaga created
44d5976
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
44fc004
agent: Do not reuse assistant message across generations (#29360)
#29354 introduced a bug where we would append tool uses to the last assistant message even if it was from a previous request. Release Notes: - N/A Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Agus Zubiaga and Bennet Bo Fenner created
c60b731
zed 0.184.2
Joseph T. Lyons created
b85bfba
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
f743cdc
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
808d9c9
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
a53e561
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
80bac1c
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
4171bbb
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
2a88867
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
9d420ae
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
b431886
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
43c99ad
agent: Improve feedback text and buttons wrapping (#29302)
Just a little UI improvement here. Release Notes: - N/A
Danilo Leal created
f802b56
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
0c292b6
zed 0.184.1
Joseph T. Lyons created
8446005
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
5b028ac
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
57d0276
v0.184.x preview
Joseph T. Lyons 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