0c292b6
zed 0.184.1
Joseph T. Lyons 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
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
5e31d86
Fix panic in vim selection restoration (#29251)
Closes #27986 Closes #ISSUE Release Notes: - vim: Fixed a panic when using `gv` after `p` in visual line mode
Conrad Irwin created
4a8f114
Fix panic when collaborating with new multibuffers (#29245)
Before this change, when syncing a multibuffer (such as find-all-references) to a remote, we would renumber the excerpts from 1. This did not matter in the past because the buffers' list of excerpts could not change. In #27876, I added the ability for excerpts to merge, which meant that the excerpt list could change. This manifested as people seeing "invalid excerpt id" panics when syncing. The initial fix to this (to re-use the excerpt ids from the host) ran into problems because `insert_excerpts_with_ids_after` assumes that you call it in excerpt-id order. This change de-optimizes that code to insert the excerpts 1-by-1 in excerpt-id order, but with the insert_after set to preserve the correct UI order. I hope to soon remove this code path and use something more like set-excerpts-for-path for syncing, but in the meantime we should not panic. Release Notes: - Fix a panic when joining a project with a multibuffer with merged excerpts
Conrad Irwin created
ce1a674
eval: Fine-grained assertions (#29246)
- Support programmatic examples ([example](https://github.com/zed-industries/zed/blob/17feb260a0919e102ae4e220669c467885bf4b57/crates/eval/src/examples/file_search.rs)) - Combine data-driven example declarations into a single `.toml` file ([example](https://github.com/zed-industries/zed/blob/17feb260a0919e102ae4e220669c467885bf4b57/crates/eval/src/examples/find_and_replace_diff_card.toml)) - Run judge on individual assertions (previously called "criteria") - Report judge and programmatic assertions in one combined table Note: We still need to work on concept naming <img width=400 src="https://github.com/user-attachments/assets/fc719c93-467f-412b-8d47-68821bd8a5f5"> Release Notes: - N/A --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Thomas Mickley-Doyle <tmickleydoyle@gmail.com>
Agus Zubiaga , Richard Feldman , Max Brunsfeld , and Thomas Mickley-Doyle created
0d3fe47
editor: Use quantize score for code completions sort + Add code completions tests (#29182)
Closes #27994, #29050, #27352, #27616 This PR implements new logic for code completions, which improve cases where local variables, etc LSP based hints are not shown on top of code completion menu. The new logic is explained in comment of code. This new sort is similar to VSCode's completions sort where order of sort is like: Fuzzy > Snippet > LSP sort_key > LSP sort_text whenever two items have same value, it proceeds to use next one as tie breaker. Changing fuzzy score from float to int based makes it possible for two items two have same fuzzy int score, making them get sorted by next criteria. Release Notes: - Improved code completions to prioritize LSP hints, such as local variables, so they appear at the top of the list.
Smit Barmase created
6a009b4
debugger: Open debugger panel on session startup (#29186)
Now all debug sessions are routed through the debug panel and are started synchronously instead of by a task that returns a session once the initialization process is finished. A session is `Mode::Booting` while it's starting the debug adapter process and then transitions to `Mode::Running` once this is completed. This PR also added new tests for the dap logger, reverse start debugging request, and debugging over SSH. Release Notes: - N/A --------- Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Anthony <anthony@zed.dev> Co-authored-by: Cole Miller <m@cole-miller.net> Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Zed AI <ai@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com>
Conrad Irwin , Anthony Eid , Anthony , Cole Miller , Cole Miller , Zed AI , and Remco Smits created
75ab8ff
zlog: Add default filters (#29244)
Added default filters to `zlog`, a piece that was present in our `simple_log` setup, but was missed when switching to `zlog`, resulting in logspam primarily on linux. also - more explicit precedence & precedence testing Release Notes: - N/A
Ben Kunkle created
3705986
Adjust image cache APIs to enable ElementState based APIs (#29243)
cc: @sunli829 @huacnlee @probably-neb I really liked the earlier PR, but had an idea for how to utilize the element state so that you don't need to construct the cache externally. I've updated the APIs to introduce an `ImageCacheProvider` trait, and added an example implementation of it to the image gallery :) Release Notes: - N/A
Mikayla Maki created
aefb3aa
Fix handling of `--system-specs` argument so it happens before `Application::new` (#29240)
Fixes issue described in [description of #28683](https://github.com/zed-industries/zed/issues/28683#issue-2992849891) Makes sure that the `--system-specs` arg is handled before `Application::new` is called, so that it can be used even when Zed is panicking during app initialization (e.g. Failing to create a Vulkan context in blade) Release Notes: - Fixed an issue where the `--system-specs` arg wouldn't work if Zed panicked during app initialization (e.g. When failing to create a Vulkan context in blade)
Ben Kunkle created
8e7c145
inline_completion_button: Show the usage limits returned from the API (#29239)
This PR updates the usage meter for edit predictions to use the limits returned from the API instead of basing it off the plan. This will allow limits to be updated from the server rather than being embedded in the client. Release Notes: - N/A
Marshall Bowers created
a2a502f
zed_extension_api: Release v0.4.0 (#29237)
This PR releases v0.4.0 of the Zed extension API. Support for this version of the extension API will land in Zed v0.184.x. Release Notes: - N/A
Marshall Bowers created
c231c95
platform/blade: Improve `ZED_DEVICE_ID` parsing (#29235)
Closes #28533 Release Notes: - Linux: Improved parsing of `ZED_DEVICE_ID` environment variable in an attempt to fix some cases where it erroneously failed to parse. The `ZED_DEVICE_ID` is now expected to always be a 4 digit hexadecimal number (as it is in the output of `lcpci`) with an optional `0x` or `0X` prefix.
Ben Kunkle created
fcc6a86
agent: Show the usage limits returned from the API (#29236)
This PR updates the usage banners in the Agent panel to use the limits returned from the API instead of basing it off the plan. This will allow limits to be updated from the server rather than being embedded in the client. Release Notes: - N/A
Marshall Bowers created
338a6a3
ci: Only run scheduled evals, not on main/release branch commits (#29238)
Release Notes: - N/A
Peter Tripp created
a0eaede
collab: Limit customers to one free trial (#29232)
This PR makes it so customers can only subscribe to the trial once. Release Notes: - N/A
Marshall Bowers created
abf2b9d
gpui: Add ImageCache (#27774)
Closes #27414 `ImageCache` is independent of the original image loader and can actively release its cached images to solve the problem of images loaded from the network or files not being released. It has two constructors: - `ImageCache::new`: Manually manage the cache. - `ImageCache::max_items`: Remove the least recently used items when the cache reaches the specified number. When creating an `img` element, you can specify the cache object with `Img::cache`, and the image cache will be managed by `ImageCache`. In the example `crates\gpui\examples\image-gallery.rs`, the `ImageCache::clear` method is actively called when switching a set of images, and the memory will no longer continuously increase. Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Sunli and Ben Kunkle created
a50fbc9
language: Fix `language_scope_at` for markdown code comments (#29230)
Closes #29176 This PR fix an issue where uncommenting a code block in Markdown would add Markdown comments instead of removing the language-specific comments. Why? `language_scope_at` for comments in a code block in Markdown would result in the language being detected as Markdown. This happens because the smallest range, such as `//` or `#` on the Markdown layer, is preferred over `// whole comment line` for any other language. This results in language detection as Markdown for that point. To fix this, we also use a depth factor and try to prefer the layer with greater depth over one with lesser depth. In this case, the code block's language depth would be preferred over Markdown. The smallest range is now used as a tiebreaker. Added test for this case. Release Notes: - Fixed issue where uncommenting a code block in Markdown would add Markdown comments instead of removing the language comments.
Smit Barmase created
9bbc2e0
collab: Set `plan` in LLM token based on subscription (#29231)
This PR updates the `plan` field in the LLM token to be based on the subscription. We weren't using this field anywhere outside of the new billing code, so it is safe to change its meaning. Release Notes: - N/A
Marshall Bowers created
6caf34a
gpui: Align image sprites to whole pixels (#29227)
Similar to #15822, just applies the same fix to images as they are also affected by the same issue. Release Notes: - N/A
Matin Aniss created
8607c7d
docs: Fix mistake in `Initializing the remote server` section (#28641)
Fix `Initializing the remote server` section. Release Notes: - N/A
Konstantin Podsvirov created
e26bb05
docs: Update "checkOnSave" to "check" (#29212)
As-salamu alaykum, [I recently started suffering from the same issue as this user](https://users.rust-lang.org/t/rust-analyzer-checkonsave-command-works-but-shows-invalid-config-warning/128652), which is caused by something the docs of Zed promote, so I decided to help fix it. >[anutrix](https://users.rust-lang.org/u/anutrix) > When I add "rust-analyzer.checkOnSave.command": "clippy" I get: > > invalid config value: /checkOnSave: invalid type: map, expected a boolean; > Extension Info: Version 0.3.2433, Server Version 0.3.2433-standalone (66e3b5819e 2025-04-21) > and in Language Server logs: > > [Error - 3:26:22 AM] Server process exited with code 0. > Clippy works fine but these warnings stays and extensions shows yellow/unstable in VSCode: > > Additionally, if I replace > > "rust-analyzer.checkOnSave.command": "clippy" > with > > "rust-analyzer.checkOnSave": true, > "rust-analyzer.checkOnSave.command": "clippy" > [jplatte](https://users.rust-lang.org/u/jplatte) > From the documentation, it seems like rust-analyzer.checkOnSave.command does not exist. It should be rust-analyzer.check.command.
Doods created
b3b89c8
collab: Don't require payment method to start a trial (#29224)
This PR makes it so a payment method is not required in order to start a Zed Pro trial. Release Notes: - N/A
Marshall Bowers created
962b024
agent: Improve the review changes UX (#29221)
Release Notes: - agent: Improved the AI-generated changes review UX by clearly exposing the generating state in the multibuffer tab. --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Bennet Bo Fenner and Danilo Leal created
833653a
collab: Transfer existing usage from trial to Pro (#28884)
This PR adds support for transferring any existing usage from a trial subscription to a Zed Pro subscription when the user upgrades. Release Notes: - N/A --------- Co-authored-by: Mikayla <mikayla@zed.dev>
Marshall Bowers and Mikayla created
886f0b7
agent: Add small design tweaks (#29218)
Nothing too serious over here, just spacing and other small-ish tweaks. Release Notes: - N/A
Danilo Leal created
207fb04
Implement basic support for VS Code debug configurations (#29160)
- [x] Basic implementation - [x] Match common VSC debug extension names to Zed debug adapters - [ ] ~~`preLaunchTask` support~~ descoped for this PR Release Notes: - N/A
Cole Miller created
36d02de
Rework eval to support interpretable scores and efficient repetitions (#29197)
### Problem We want to start continuously tracking our progress on agent evals over time. As part of this, we'd like the *score* to have a clear, interpretable meaning. Right now, it's a number from 0 to 5, but it's not clear what any particular number works. In addition, scores vary widely from run to run, because the agent's output is deterministic. We try to stabilize the score using a panel of judges, but the behavior of the agent itself varies much more widely than the judges' scores for a given run. ### Solution * **explicit meanings of scores** - In this PR, we're prescribing the diff and thread criteria files so that they *must* be unordered lists of assertions. For both the thread and the diff, rather than providing an abstract score, the judge's task is simply to count how many of these assertions are satisfied. A percentage score can be derived from this number, divided by the total number of assertions. * **repetitions** - Rather than running each example once, and judging it N times, we'll **run** the example N times. Right now, I'm just judging the output once per run, because I believe that with these more clear scoring criteria, the main source of non-determinism will be the *agent's* behavior, not the judge's ### Questions * **accounting for diagnostic errors** - Previously, the judge was asked to incorporate diagnostics into their abstract scores. Now that the "score" is determined directly from the criteria, the diagnostic will not be captured in the score. How should the diagnostics be accounted for in the eval? One thought is - let's simply count and report the number of errors remaining after the agent finishes, as a separate field of the run (along with diff score and thread score). We could consider normalizing it using the total lines of added code (like errors per 100 lines of code added) in order to give it some semblance of stability between examples. * **repetitions** - How many repetitions should we run on CI? Each repetition takes significant time, but I think running more than one repetition will make the scores significantly less volatile. ### Todo * [x] Fix `--concurrency` implementation so that only N tasks are spawned * [x] Support `--repetitions` efficiently (re-using the same worktree) * [x] Restructure judge prompts to count passing criteria, not compute abstract score * [x] Report total number of diagnostics in some way * [x] Format output nicely Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Antonio Scandurra <me@as-cii.com>
Max Brunsfeld and Antonio Scandurra created
36da979
agent: Show project name in the Agent notification (#29211)
Release Notes: - agent: Added the project name in the Agent Panel notification.
Danilo Leal created
19b5475
agent: Refine the web search tool call UI (#29190)
This PR refines a bit the web search tool UI by introducing a component (`ToolCallCardHeader`) that aims to standardize the heading element of tool calls in the thread. In terms of next steps, I plan to evolve this component further soon (e.g., building a full-blown "tool call card" component), and even move it to a place where I can re-use it in the active_thread as well without making the `assistant_tools` a dependency of it. Release Notes: - N/A
Danilo Leal created
109f1d4
agent: Simplify user message design (#29165)
Mainly removing the "You" label, which didn't add a lot of value. Still figuring out an issue with font size Markdown rendering before merging this PR. Release Notes: - N/A
Danilo Leal created
a5852d4
agent: Support inserting selections as context via `@selection` (#29045)
WIP Release Notes: - N/A
Bennet Bo Fenner created
10ded0a
agent: Add support for google gemini 2.5 flash preview (#29205)
Adds support for the new gemini-2.5-flash-preview-04-17 Release Notes: - agent: Added support for gemini-2.5-flash-preview
Stephan Seidt created
b0b620a
gemini: Add support for passing images as part of the prompt (#29203)
Release Notes: - agent: Add support for adding images as context when using Google Gemini
Bennet Bo Fenner created
eca6d5a
agent: Support pasting images as context (#29177)
https://github.com/user-attachments/assets/d6a27b05-3590-4f40-a820-f6f99f6bd581 Release Notes: - agent: Added support for pasting images as context --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Bennet Bo Fenner and Danilo Leal created