85b811a
Add Agent Panel bug report template (#28226)
Click to expand commit body
Release Notes: - N/A
Joseph T. Lyons created
85b811a
Add Agent Panel bug report template (#28226)
Release Notes: - N/A
Joseph T. Lyons created
d60dbbc
windows: Add `update-workspace-hack.ps1` script (#28219)
Release Notes: - N/A
张小白 created
656302e
Stop centering when selecting larger syntax nodes (#28172)
With #27295, the cursor would center upon running `SelectLargerSyntaxNode`. This was done to provide more context when making large selections, but when making small selections (such as a single parameter in an argument list) it was confusing that the scroll position jumped. This change makes that behavior slightly more conservative: now when the selection is small enough to fit on the screen scrolling will only occur to keep the cursor position on the screen (including respecting `vertical_scroll_margin`). Release Notes: - N/A Co-authored-by: João Marcos <marcospb19@hotmail.com>
Julia Ryan and João Marcos created
956f359
project_panel: Add warning error for leading or trailing whitespace when creating file or directory (#28215)
- Show yellow warning (instead or error) for leading/trailing whitespace. - Do not block user from creating it. - If you rename existing file/dir which contains leading/trailing whitespace, it will show error right away. <img width="250" alt="image" src="https://github.com/user-attachments/assets/562895ee-3a86-4ecd-bb38-703d1d8b8599" /> Release Notes: - Added warning for leading or trailing whitespace while renaming or creating new file or directory in Project Panel.
Smit Barmase created
3b46fca
project_panel: Fix validation error style alignment (#28214)
Use px over rem for positioning as rem is dependent on font size. Release Notes: - N/A
Smit Barmase created
d6d9c38
project_panel: Show error when file or directory already exists while renaming or creating new one (#28177)
Closes #14425 <img width="289" alt="image" src="https://github.com/user-attachments/assets/2994c401-23e3-419a-90fc-1a83959fdf21" /> Release Notes: - Improved the project panel to show an error when a file or directory already exists while renaming or creating a new one.
Smit Barmase created
8cfb9be
Reapply support for X11 screenshare (#28160)
Reapplies #27807 after [revert due to not building on ARM](https://github.com/zed-industries/zed/pull/28141) by updating scap to include [a fix to its build on ARM](https://github.com/zed-industries/scap/commit/08f0a01417505cc0990b9931a37e5120db92e0d0) Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Michael Sloan and Marshall Bowers created
0708d47
Improve Bash heredoc highlighting (#28185)
Release Notes: - Improved Bash heredoc highlighting | Zed 0.180.2 | With this PR | | --- | --- | |  |  | ```bash cat << EOT >> hello.txt hello world EOT ``` - `<<`: `operator` - `EOT`: `string`
chbk created
57669b4
agent: Refresh UI when context or thread history changes (#28188)
I found a few more cases where the UI wasn't updated immediately after an interaction. Release Notes: - agent: Fixed delay after removing threads from "Past Interactions" - agent: Fixed delay after adding/remove context via keyboard
Agus Zubiaga created
b1f7133
agent: Refresh UI when sending first message (#28180)
Release Notes: - Agent Beta: Fixed a delay when sending the first message in a new thread
Agus Zubiaga created
ac9e2f3
Try to improve behavior when agent is stuck (#28169)
Currently, it's pretty common that when the agent gets stuck, it deletes whatever it's stuck on and replaces it with a TODO comment, then cheerfully reports that it has "simpified" the implementation. This is worse than leaving the broken code, because at least a human could take over and try to get it across the finish line. This system prompt adjustment attempts to make the agent do something more useful when in this situation: report that it's stuck, explain why it's stuck, and ask the user what to do. Release Notes: - N/A
Richard Feldman created
a2fbe82
If file is too big, provide the outline and suggest a follow-up tool (#28158)
<img width="622" alt="Screenshot 2025-04-05 at 5 48 14 PM" src="https://github.com/user-attachments/assets/24b9c7d4-d3e2-4929-bca8-79db5b4e5748" /> Release Notes: - The `read_files` tool now reads only the symbol outline files above a certain size, to conserve context window space. Then it suggests that the agent call `read_files` again with the relevant line ranges it saw in the outline.
Richard Feldman created
57d8c99
copilot: Create Copilot directory if it does not exist (#28157)
Closes https://github.com/zed-industries/zed/issues/27966 Issue: - Copilot is failing to launch because the copilot directory is missing <img width="497" alt="image" src="https://github.com/user-attachments/assets/af35eb66-7e91-4dc6-a862-d1575da33b5b" /> <img width="943" alt="image" src="https://github.com/user-attachments/assets/0b195c8c-52eb-42b9-bf36-40086398cc3f" /> Release Notes: - copilot: Fixed an issue where GitHub Copilot would not install properly if the directory was not present. --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Richard Hao and Marshall Bowers created
4182737
Revert "Add a next_mode to vim::Paste instead of hard-coding Normal mode (#27897) (#28162)
This PR reverts #27897, as it is causing a number of Helix-related tests
to fail:
```
Summary [ 84.324s] 1796 tests run: 1793 passed, 3 failed, 0 skipped
FAIL [ 0.434s] vim helix::test::test_delete
FAIL [ 0.562s] vim helix::test::test_delete_character_end_of_buffer
FAIL [ 0.537s] vim helix::test::test_delete_character_end_of_line
```
This reverts commit 9949512b64ab2f472fc3426d853bc9bd0f6d94e2.
Release Notes:
- Community: Reverted https://github.com/zed-industries/zed/pull/27897.
Marshall Bowers created
9949512
Add a next_mode to vim::Paste instead of hard-coding Normal mode (#27897)
This adds a `next_mode` parameter to the `vim::Paste` action. My main use-case for this is for helix users, who will want to switch into `HelixNormal` mode instead of `Normal` mode. I'm not sure if this is the best approach -- another possibility would be to have a global vim-vs-helix configuration, and then have every invocation of "normal" mode choose vim or helix based on that global configuration. But the approach in this PR is much less invasive. Release Notes: - vim: switch to the configured default mode after paste instead of hard-coding Normal mode
jneem created
b9051e6
extension: Bump `wasi-sdk` to version 25 (#27906)
This bumps `wasi-sdk` to version 25 and adds target architecture conditionals. Closes #18492 Release Notes: - Fixed compiling dev extensions with Tree-sitter grammars on Linux aarch64.
Kamil Jakubus created
adbebb2
assistant: Fix `assistant: open prompt library` not opening the prompt library (#28156)
This PR fixes the `assistant: open prompt library` action in the command palette not opening the prompt library when the Assistant Panel did not have focus. Fixes https://github.com/zed-industries/zed/issues/28058. Release Notes: - assistant: Fixed `assistant: open prompt library` not opening the prompt library when the Assistant Panel was not focused.
Marshall Bowers created
caf0d6c
agent: Fix opening configuration view from the model selector (#28154)
This PR fixes an issue where opening the configuration view from the model selector in the Agent (or inline assist) was not working properly. Fixes https://github.com/zed-industries/zed/issues/28078. Release Notes: - Agent Beta: Fixed an issue where selecting "Configure" in the model selector would not bring up the configuration view.
Marshall Bowers created
525755c
bedrock: Add support for tool use, cross-region inference, and Claude 3.7 Thinking (#28137)
Closes #27223 Merges: #27996, #26734, #27949 Release Notes: - AWS Bedrock: Added advanced authentication strategies with: - Short lived credentials with Session Tokens - AWS Named Profile - EC2 Identity, Pod Identity, Web Identity - AWS Bedrock: Added Claude 3.7 Thinking support. - AWS Bedrock: Adding Cross Region Inference for all combinations of regions and model availability. - Agent Beta: Added support for AWS Bedrock. --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Shardul Vaidya and Marshall Bowers created
ea0f514
title_bar: Ensure git onboarding banner dismissal is properly respected (#28147)
A user reported this issue [on Discord](https://discord.com/channels/869392257814519848/873292398204170290/1357879959422636185). The issue here only arises for users which recently installed Zed or had previously not dismissed the Git Onboarding component. It was introduced by https://github.com/zed-industries/zed/pull/27412, which made the banner component reusable. For every banner, there is a value stored in the KVP store when it was first dismissed. For the git onboarding banner, this was `zed_git_banner_dismissed_at` initially, but this key would have been changed by the linked PR. A change would have resulted in the banner being shown again for users who already dismissed the panel, so for the special case of `Git Onboarding`, a check was added which ensured this would not happen. However, this check was only added for reading from the key from the DB but not on writing the git onboarding dismissal it to the DB. Thus, if a user who had not previously dismissed the panel opened Zed, we would check for the old key to be present in the DB. Since that would not be the case, the banner would be shown. If the user dismissed the panel, it would be stored in the database with the new key. Thus, on a reopen of Zed, the banner would again be shown since for the old key there would still be no value present and users are unable to dismiss the panel. This PR fixes this behavior by moving the check into the method that generates the key. With this, users which were unaffected by the bug will still not see the panel again. Users who would install Zed with this change present will be able to properly dismiss the panel aswell. Users which were affected by the bug need to dismiss the banner one more time. That happens because I did not want to modify the dismissal check to check for two keys (the original one and the new one), as it would clutter the logic even more for this special case. If this would be preferred, feel free to let me know. Release Notes: - Fixed an issue where dismissing the git onboarding banner would not be persisted across sessions.
Finn Evers created
b78ac54
agent: Fix tool use output rendering (#28146)
Tool use output wouldn't get rendered in some states. Release Notes: - N/A
Agus Zubiaga created
2462b94
agent: Add missing notify in `ThreadHistory::delete_thread` (#28144)
This would cause the history view not to get refreshed immediately when a thread was deleted Release Notes: - agent: Fixed a bug where the history view wouldn't refresh after deleting a thread
Agus Zubiaga created
ec7d286
agent: Fix thread summary generation (#28143)
#28102 introduced a bug where thread summaries wouldn't get generated because they would get set to the default title instead of `None`. Not adding a release note because the bug didn't make it to Preview. Release Notes: - N/A
Agus Zubiaga created
c1259c1
Revert "Use scap library to implement screensharing on X11 (#27807)" (#28141)
This reverts commit c2afc2271b1dd420f482217cb0fa9dafcd17aab6.
Build on ARM if failing, likely because `c_char` is `u8` on arm and `i8`
on x86:
```
error[E0308]: mismatched types
--> /home/runner/.cargo/git/checkouts/scap-40ad33e1dd47aaea/5715067/src/targets/linux/mod.rs:75:74
|
75 | let result = unsafe { XmbTextPropertyToTextList(display, &mut xname, &mut list, &mut count) };
| ------------------------- ^^^^^^^^^ expected `*mut *mut *mut u8`, found `&mut *mut *mut i8`
| |
| arguments to this function are incorrect
|
= note: expected raw pointer `*mut *mut *mut u8`
found mutable reference `&mut *mut *mut i8`
note: function defined here
--> /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/x11-2.21.0/src/xlib.rs:552:10
|
552 | pub fn XmbTextPropertyToTextList (_4: *mut Display, _3: *const XTextProperty, _2: *mut *mut *mut c_char, _1: *mut c_int) -> c_int,
| ^^^^^^^^^^^^^^^^^^^^^^^^^
```
Release Notes:
- N/A
Michael Sloan created
6ddad64
Add actions for calls (#28048)
Add the following actions for use while calling: `Mute`, `Deafen`, `ShareProject`, `ScreenShare`, `LeaveCall` We were also interested in adding push-to-talk functionality for mute, but that will go in a followup PR Release Notes: - Call actions (mute/screenshare/etc.) can now be bound to keys and run from the command palette. --------- Co-authored-by: Ben Kunkle <ben.kunkle@gmail.com> Co-authored-by: Ben Kunkle <ben@zed.dev>
Julia Ryan , Ben Kunkle , and Ben Kunkle created
69d7ea7
buffer: Fix broken auto indent when pasting code starting with new line (#28134)
Closes #26907 Currently, in case of new line to find delta, it is comparing old first line indent with new second line indent. This results into incorrect indentation. This PR fixes this delta calculation by passing correct second line indent in that particular case. - [X] Add Test Before: https://github.com/user-attachments/assets/065deba0-be19-4643-a784-d248a8e7c891 After: https://github.com/user-attachments/assets/a0037043-4bd8-460f-b8ba-b7da7bdbe1ea Release Notes: - Fixed issue where pasting code starting with new line resulted incorrect auto indent.
Smit Barmase created
d0e82b0
Introduce "Near" block type (#28032)
A "Near" block acts similarly to a "Below" block, but can (if it's
height is <= one line height) be shown on the end of the preceding line
instead of adding an entire blank line to the editor.
You can test it out by pasting this into `go_to_diagnostic_impl` and
then press `F8`
```
let buffer = self.buffer.read(cx).snapshot(cx);
let selection = self.selections.newest_anchor();
self.display_map.update(cx, |display_map, cx| {
display_map.insert_blocks(
[BlockProperties {
placement: BlockPlacement::Near(selection.start),
height: Some(1),
style: BlockStyle::Flex,
render: Arc::new(|_| {
div()
.w(px(100.))
.h(px(16.))
.bg(gpui::hsla(0., 0., 1., 0.5))
.into_any_element()
}),
priority: 0,
}],
cx,
)
});
return;
```
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Conrad Irwin and Antonio Scandurra created
10821aa
file_finder: Fix filename matching to require contiguous characters (#28093)
Improves https://github.com/zed-industries/zed/pull/27937 to only prioritize file name if it's contiguous character match. Release Notes: - N/A Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Smit Barmase and Conrad Irwin created
03aadb4
telemetry_events: Rename `AssistantEvent` to `AssistantEventData` (#28133)
This PR renames the `AssistantEvent` type to `AssistantEventData`, as it no longer represents the event itself, just the data needed to construct it. Pulling out of https://github.com/zed-industries/zed/pull/25179. Release Notes: - N/A
Marshall Bowers created
8ab252c
Split protobufs into separate files (#28130)
The one big protobuf file was getting a bit difficult to navigate. I split it into separate topic-specific files that import each other. Release Notes: - N/A
Max Brunsfeld created
e74af03
Restore direct use of the input text for Markdown `Text` (#27620)
PR #24388 changed the markdown parsing to copy parsed text in order to handle markdown escaping, removing the optimization to instead reuse text from the input. Another issue with that change was that handling of finding links within `Text` intermixed use of `text` and `parsed`, relying on the offsets matching up (which I believe was true in practice). The solution is to distinguish pulldown_cmark `Text` nodes that share bytes with the input and those that do not. Release Notes: - N/A
Michael Sloan created
4bcd37a
agent: Fix panic when opening Agent diff from the workspace (#28132)
This PR fixes a panic that could occur when opening the Agent diff from the workspace (with the agent panel closed). Release Notes: - agent: Fixed a panic when running the `agent: open agent diff` command with the Agent Panel closed.
Marshall Bowers created
e3d212a
debugger_ui: Don't `.unwrap` debug panel access (#28131)
This PR removes replaces the `.unwrap`s when accessing the debug panel with `if let Some`s. These `.unwrap`s are not locally verifiable, and thus are not safe. Release Notes: - N/A
Marshall Bowers created
8b077f0
gpui: Avoid dereferencing null pointer in `MacWindow::update_ime_position` (#28110)
Seems to be very similar to https://github.com/zed-industries/zed/pull/28059 Edit: Updated the reproduction-steps as I missed something. The method without a check currently causes my debug-builds to crash on the regular if I: - Run a debug build and open it fullscreen in a dedicated space on my Mac. - Work on any of the built-in languages (e.g. remove some content from any `highlights.scm`) - Reopen the workspace with the debug-build. - Crash. ~~We might actually be able to revert the changes made in https://github.com/zed-industries/zed/pull/21510 and just add the null-check. Then again, I am not at all sure whether that would work.~~ See comment below. Release Notes: - N/A
Finn Evers created
288da0f
agent: Use Markdown to render tool input and output content (#28127)
Release Notes: - agent: Tool call's input and output content are now rendered with Markdown, which allows them to be selected and copied. --------- Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal and Agus Zubiaga created
b8d05bb
agent: Hide the scrollbar if there's no mouse movement (#28129)
Release Notes: - agent: The scrollbar now automatically hides if there's no mouse movement on the thread list. --------- Co-authored-by: Agus Zubiaga <agus@zed.dev> Co-authored-by: Agus Zubiaga <hi@aguz.me>
Danilo Leal , Agus Zubiaga , and Agus Zubiaga created
02e4267
Add tool calling support for GitHub Copilot Chat (#28035)
This PR adds tool calling support for GitHub Copilot Chat models. Currently only supports the Claude family of models. Release Notes: - agent: Added tool calling support for Claude models in GitHub Copilot Chat. --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Bennet Bo Fenner and Marshall Bowers created
c2afc22
Use scap library to implement screensharing on X11 (#27807)
While `scap` does have support for Wayland and Windows, but haven't seen screensharing work properly there yet. So for now just adding support for X11 screensharing. WIP branches for enabling wayland and windows support: * https://github.com/zed-industries/zed/tree/wayland-screenshare * https://github.com/zed-industries/zed/tree/windows-screenshare Release Notes: - Added support for screensharing on X11 (Linux) --------- Co-authored-by: Conrad <conrad@zed.dev> Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Junkui Zhang <364772080@qq.com>
Michael Sloan , Conrad , Mikayla , and Junkui Zhang created
7bc62de
Use consistent ordering for popup menus (#27765)
Before this change, the editor completion menu and gutter menus reversed their order so that the initial selection is near the user's focus. This change instead displays these menus in a consistent top-to-bottom order because the following benefits outweigh that benefit: * Matches behavior of some other editors (Neovim and VSCode). * Looks better for lexicographic lists. * Keeps the meaning of keyboard interaction consistent, if the user is anticipating the order of the menu's contents. Could consider making this configurable in the future if desired. Closes #25066. Release Notes: - N/A
Aaron Feickert created
f3adf41
agent: Fix deleting threads in history via keyboard (#28113)
Using `shift-backspace` now because we need `backspace` for search Release Notes: - agent: Fix deleting threads in history via keyboard
Agus Zubiaga created
6162d99
Properly query remote ssh server for language servers by name (#28124)
Follow-up of https://github.com/zed-industries/zed/pull/27775 Release Notes: - N/A
Kirill Bulatov created
156dd32
Fix panic or bad hunks when expanding hunks w/ multiple ranges in 1 hunk (#28117)
Release Notes: - Fixed a crash that could happen when expanding diff hunks with multiple cursors in one hunk.
Max Brunsfeld created
2747915
jsx-tag-auto-close: Remove potential source of bugs and panics (#28119)
Switch to using anchors for storing edited ranges rather than offsets as they have to be used with multiple buffer snapshots Release Notes: - N/A
Ben Kunkle created
75b9a3b
agent: Disable redundant tools (might delete later) (#28114)
Release Notes: - agent: Disable tools that are redundant in the presence of the bash tool
Agus Zubiaga created
9bd3dbc
collab: Include more information on some LLM usage log lines (#28116)
This PR updates the `user rate limit` and `user usage` log lines to include some more information that will be useful for graphing in Axiom. Release Notes: - N/A
Marshall Bowers created
435fff9
Flesh out helix bindings (#28103)
This brings in a bunch of helix bindings (many of them from infogulch/zed-helix-keymap) and implements helix-style delete. Release Notes: - vim: Expanded default helix-style keybindings in HelixNormal mode
jneem created
558d61b
collab: Adjust rate-limiting measures for Claude 3.7 Sonnet (#28111)
This PR updates the usage measures used for rate limiting when using Claude 3.7 Sonnet. Instead of using the combined `tokens_per_minute` measure we now rate limit individually on `input_tokens_per_minute` (which exclude cache reads) and `output_tokens_per_minute`. Release Notes: - N/A
Marshall Bowers created
02a8ece
agent: Fix invalid tool names in batch tool description (#28109)
The description of the Batch Tool was still referring using `-` as a seperator for tool names Release Notes: - N/A
Bennet Bo Fenner created
1a899fd
collab: Capture upstream input/output rate limits from Anthropic (#28106)
This PR makes it so we capture the upstream rate limit information from Anthropic for input and output tokens. Release Notes: - N/A
Marshall Bowers created
183f57f
collab: Include max input/output tokens per minute on "Language Model Rate Limited" event (#28108)
This PR adds the max input/output tokens per minute on the "Language Model Rate Limited" event. Missed this in https://github.com/zed-industries/zed/pull/28097. Release Notes: - N/A
Marshall Bowers created