5d985fa
Improve MCP server responses (#34927)
Click to expand commit body
Release Notes: - N/A
Agus Zubiaga created
5d985fa
Improve MCP server responses (#34927)
Release Notes: - N/A
Agus Zubiaga created
7f70325
language_models: Rename `handler` to `handle` in Bedrock provider (#34923)
This PR renames the `handler` field to `handle` on the `BedrockLanguageModelProvider` and `BedrockModel` structs. Release Notes: - N/A
Marshall Bowers created
f3c332d
Fix new crate license symlink (#34922)
The license file is not properly linked to actual license. This was casued due to new-crate script linking the license to wrong file. Fixed both of them. Reference logs: ``` 2025-07-22T17:16:19+05:30 ERROR [worktree] error reading target of symlink "/Users/umesh/code/zed/crates/onboarding/LICENSE-GPL": canonicalizing ``` Release Notes: - N/A
Umesh Yadav created
446d333
debugger: Fix debug console persist to history when reusing a previous item (#34893)
Closes #34887 Release Notes: - Debugger: Fix debug console persist to history when reusing a previous item
Remco Smits created
c0f75e1
debugger: Fix built-in JavaScript debug tasks were not working due missing `type` field value (#34894)
Release Notes: - Debugger: Fix built-in JavaScript debug tasks were not working due missing `type` field value
Remco Smits created
708c264
collab: Tweak screen selector appearance (#34919)
Co-authored-by: Danilo Leal <daniloleal09@gmail.com> Release Notes: - N/A Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Piotr Osiewicz and Danilo Leal created
4272c15
ai onboarding: Copyedit the whole flow (#34916)
Release Notes: - N/A Co-authored-by: Katie Geer <katie@zed.dev>
Danilo Leal and Katie Geer created
99466f4
Make zooming from menus not persist (#34910)
Closes: https://github.com/zed-industries/zed/issues/34479 Follow-up to: https://github.com/zed-industries/zed/issues/23505 View->Zoom In / Zoom Out / Reset Zoom were not reverted to match when the default keybindings were reverted. Release Notes: - N/A
Peter Tripp created
9e280d0
collab: Remove unneeded caching of Stripe price IDs by meter ID (#34915)
This PR removes the caching of Stripe price IDs by meter ID on the `StripeBilling` object, as we weren't actually reading them anywhere. Release Notes: - N/A
Marshall Bowers created
d81a817
Bind "j k" to `NormalBefore` in initial keymap examples (#34912)
It looks like typically vim configurations bind "j k" to be the same as escape, which has the "NormalBefore" behavior positioning the block cursor on the character before the insertion cursor. The [vim mode docs](https://zed.dev/docs/vim#useful-contexts-for-vim-mode-key-bindings) also use NormalBefore here. Thanks to @omniwrench for mentioning this in https://github.com/zed-industries/zed/discussions/6661#discussioncomment-13848043 . This was a mistake in #31163. Release Notes: - N/A
Michael Sloan created
14cea06
keymap_ui: Fix panic in clear keystrokes (#34909)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
caa520c
workspace: Clean up empty panes left over from file opening failures (#34908)
Closes #34583 Release Notes: - Fixed empty pane being left after a binary file is dropped into a new pane.s
Piotr Osiewicz created
64d0fec
sum_tree: Store context on cursor (#34904)
This gets rid of the need to pass context to all cursor functions. In practice context is always immutable when interacting with cursors. A nicety of this is in the follow-up PR we will be able to implement Iterator for all Cursors/filter cursors (hell, we may be able to get rid of filter cursor altogether, as it is just a custom `filter` impl on iterator trait). Release Notes: - N/A
Piotr Osiewicz created
fa3e1cc
chore: Bump taffy to 0.8.3 (#34876)
That's the latest release. Note that we have an opportunity to simplify our size types per https://github.com/DioxusLabs/taffy/blob/main/CHANGELOG.md#highlights-1 (though that's left out of this PR) <img width="1156" height="603" alt="image" src="https://github.com/user-attachments/assets/cb9501b9-541a-4080-998a-b6347a0c6887" /> Release Notes: - N/A
Piotr Osiewicz created
56b99f4
bedrock: Fix remaining streaming delays (#33931)
Closes #26030 *Note: This is my first contribution to Zed* This addresses a second streaming bottleneck in Bedrock that remained after the initial fix in #28281 (released in preview 194). The issue is in the mechanism used to convert Zed's internal `AsyncBody` into the `SdkBody` expected by the Bedrock language provider. We are using a non-streaming converter that buffers responses. **How the fix works:** The AWS SDK provides streaming-compatible converters to create `SdkBody` instances, but these require the input body to implement the `Body` trait from the `http-body` crate. This PR enables streaming by implementing the required trait and switching to the streaming-compatible converter. **Changes (2 commits):** * 1st Commit - **Implement http-body Body trait for AsyncBody:** - Add `http-body = 1.0` dependency (already an indirect dependency) - Implement the `Body` trait for our existing `AsyncBody` type - Uses `poll_frame` to read data chunks asynchronously, preserving streaming behavior * 2nd Commit - **Use streaming-compatible AWS SDK converter:** - Create `SdkBody` using `SdkBody::from_body_1_x()` with the new `Body` trait implementation **Details/FAQ:** **Q: Why add another dependency?** A: We tried to avoid adding a dependency, but the AWS SDK requires the `Body` trait and `http-body` is where it's defined. The crate is already an indirect dependency, making this a reasonable solution. **Q: Why modify the shared `http_client` crate instead of just `aws_bedrock_client`?** A: We considered implementing the `Body` trait on a wrapper in `aws_bedrock_client`, but since `AsyncBody` already uses `http` crate types, extending support to the companion `http-body` crate seems reasonable and may benefit other integrations. **Q: How was this bottleneck discovered?** A: After @5herlocked's initial streaming fix in #28281, I tested preview 194 and noticed streaming still had issues. I found a way to reproduce the problem and chatted with @5herlocked about it. He immediately pinpointed the exact location where the issue was occurring, his diagnosis made this fix possible. **Q: How does this relate to the previous fix?** A: #28281 fixed buffering issues higher in the stack, but unfortunately there was another bottleneck lower-down in the aws-http-client. This PR addresses that separate buffering issue. **Q: Does this use zero-copy or one-copy?** A: The `Body` implementation includes one copy. Someone more knowledgeable might be able to achieve a zero-copy approach, but we opted for a conservative approach. The performance impact should not be perceptible in typical usage. **Testing:** Confirmed that Bedrock streaming now works without buffering delays in a local build. Release Notes: - Improved Bedrock streaming by eliminating response buffering delays --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
tiagoq and Marshall Bowers created
2b888e1
Fix redo after noop format (#34898)
Closes #31917
Previously, as of #28457 we used a hack, creating an empty transaction
in the history that we then merged formatting changes into in order to
correctly identify concurrent edits to the buffer while formatting was
happening. This caused issues with noop formatting however, as using the
normal API of the buffer history (in an albeit weird way) resulted in
the redo stack being cleared, regardless of whether the formatting
transaction included edits or not, which is the correct behavior in all
other contexts.
This PR fixes the redo issue by codifying the behavior formatting wants,
that being the ability to push an empty transaction to the history with
no other side-effects (i.e. clearing the redo stack) to detect
concurrent edits, with the tradeoff being that it must then manually
remove the transaction later if no changes occurred from the formatting.
The redo stack is still cleared when there are formatting edits, as the
individual format steps use the normal `{start,end}_transaction` methods
which clear the redo stack if the finished transaction isn't empty.
Release Notes:
- Fixed an issue where redo would not work after buffer formatting
(including formatting on save) when the formatting did not result in any
changes
Ben Kunkle created
96f9942
Add setting to disable all AI features (#34896)
https://github.com/user-attachments/assets/674bba41-40ac-4a98-99e4-0b47f9097b6a Release Notes: - Added setting to disable all AI features
Richard Feldman created
939f9ff
collab: Remove unneeded caching of Stripe meters (#34900)
This PR removes the caching of Stripe meters on the `StripeBilling` object, as we weren't actually reading them anywhere. Release Notes: - N/A
Marshall Bowers created
230061a
Support multiple OpenAI compatible providers (#34212)
TODO - [x] OpenAI Compatible API Icon - [x] Docs - [x] Link to docs in OpenAI provider section about configuring OpenAI API compatible providers Closes #33992 Related to #30010 Release Notes: - agent: Add support for adding multiple OpenAI API compatible providers --------- Co-authored-by: MrSubidubi <dev@bahn.sh> Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Bennet Bo Fenner , MrSubidubi , and Danilo Leal created
1a76a6b
gpui: Simplify `bindings_for_action` API (#34857)
Closes #ISSUE Simplifies the API to no longer have a variant that returns indices. The downside is that a few places that used to call `bindings_for_action_with_indices` now compare `Box<dyn Action>` instead of indices, however the result is the removal of wrapper code and index handling that is largely unnecessary Release Notes: - N/A *or* Added/Fixed/Improved ... Co-authored-by: Conrad <conrad@zed.dev>
Ben Kunkle and Conrad created
2eeab5b
textmate: Correct context for 'Editor && mode == full' keybinds (#34895)
Closes https://github.com/zed-industries/zed/issues/34891 Release Notes: - Fixed textmate keymap misbehaving in certain contexts
Peter Tripp created
30177b8
Fix detection of pending bindings when binding in parent context matches (#34856)
Broke in #34664 Release Notes: - N/A *or* Added/Fixed/Improved ... Co-authored-by: Conrad <conrad@zed.dev>
Ben Kunkle and Conrad created
31aab89
ai_onboarding: Fix API key onboarding callout not showing properly (#34880)
The current onboarding callout for ApiKeysWithProviders is broken. | Before | After | |--------|--------| | <img width="822" height="1914" alt="CleanShot 2025-07-22 at 16 21 53@2x" src="https://github.com/user-attachments/assets/5a611a8c-1ca2-4a13-965e-6fbd7cfe757a" /> | <img width="814" height="1956" alt="CleanShot 2025-07-22 at 16 22 38@2x" src="https://github.com/user-attachments/assets/3263b804-671a-4637-b5dc-ee7c87befa48" /> | cc @danilo-leal Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Umesh Yadav and Danilo Leal created
a3850b3
agent: Add `use_modifier_to_send` section in the settings view (#34866)
This PR also converts all of these switch-based settings to use the new `SwitchField` component, introduced in https://github.com/zed-industries/zed/pull/34713. Release Notes: - agent: Added the ability to change the `use_modifier_to_send` setting from the agent panel settings UI.
Danilo Leal created
c7158f0
Improve distinguishing user from agent edits (#34716)
We no longer rely on the `author` field to tell if a change was made by the user or the agent. The `author` can be set to `User` in many situations that are not really user-made edits, such as saving a file, accepting a change, auto-formatting, and more. I started tracking and fixing some of these cases, but found that inspecting changes in `diff_base` is a more reliable method. Also, we no longer show empty diffs. For example, if the user adds a line and then removes the same line, the final diff is empty, even though the buffer is marked as user-changed. Now we won't show such edit. There are still some issues to address: - When a user edits within an unaccepted agent-written block, this change becomes a part of the agent's edit. Rejecting this block will lose user edits. It won't be displayed in project notifications, either. - Accepting an agent block counts as a user-made edit. - Agent start to call `project_notifications` tool after seeing enough auto-calls. Release Notes: - N/A
Oleksiy Syvokon created
3a651c5
context_server: Change command string field to PathBuf (#34873)
Release Notes: - N/A
Ben Brandt created
87014ce
theme: Add `panel.overlay_background` and `panel.overlay_hover` (#34655)
In https://github.com/zed-industries/zed/pull/33994 sticky scroll was added to project_panel. I love this feature! This introduces a new element layering not seen before. On themes that use transparency, the overlapping elements can make it difficult to read project panel entries. This PR introduces a new selector: ~~panel.sticky_entry.background~~ `panel.overlay_background` This selector lets you set the background of entries when they become sticky. Closes https://github.com/zed-industries/zed/issues/34654 Before: <img width="373" height="104" alt="Screenshot 2025-07-17 at 10 19 11 AM" src="https://github.com/user-attachments/assets/d5bab065-53ca-4b27-b5d8-3b3f8d1f7a81" /> After: <img width="292" height="445" alt="Screenshot 2025-07-17 at 11 46 57 AM" src="https://github.com/user-attachments/assets/4cd2b87b-2989-4489-972f-872d2dc13a33" /> <img width="348" height="390" alt="Screenshot 2025-07-17 at 11 39 57 AM" src="https://github.com/user-attachments/assets/49c0757f-2c50-4e01-92c6-2ae7e4132a53" /> <img width="668" height="187" alt="Screenshot 2025-07-17 at 11 39 29 AM" src="https://github.com/user-attachments/assets/167536c2-5872-4306-90c6-c6b68276b618" /> Release Notes: - Add `panel.sticky_entry.background` theme selector for modifying project panel entries when they become sticky when scrolling and overlap with entries below them. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Bret Comnes and Smit Barmase created
2b671a4
ai onboarding: Don't show API keys section if user is already in Pro (#34867)
Release Notes: - N/A
Danilo Leal created
eaccd54
Add fast-follows to the AI onboarding flow (#34737)
Follow-up to https://github.com/zed-industries/zed/pull/33738. Release Notes: - N/A --------- Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Danilo Leal and Bennet Bo Fenner created
5a530ec
zed: Add support for `zed://agent` links (#34862)
This PR adds support for `zed://agent` links for opening the Agent Panel. Release Notes: - N/A
Marshall Bowers created
233e66d
Add `editor::BlameHover` action for triggering the blame popover via keyboard (#32096)
Make the git blame popover available via the keymap by making it an action. The blame popover stays open after being shown via the action, similar to the `editor::Hover` action. I added a default vim-mode key binding for `g b`, which goes in hand with `g h` for hover. I'm not sure what the keybind would be for regular layouts, if any would be set by default. I'm opening this as a draft because I coludn't figure out a way to position the popover correctly above/under the cursor head. I saw some uses of `content_origin` in other places for calculating absolute pixel positions, but I'm not sure how to make use of it here without doing a big refactor of the blame popover code 🤔. I would appreciate some help/tips with positioning, because it seems like the last thing to implement here. Opening as a draft for now because I think without the correct positioning this feature is not complete. Closes https://github.com/zed-industries/zed/discussions/26447 Release Notes: - Added `editor::BlameHover` action for showing the git blame popover under the cursor. By default bound to `ctrl-k ctrl-b` and to `g h` in vim mode.
Daste created
1535363
zed: Add `OpenRequestKind` (#34860)
This PR refactors the `OpenRequest` to introduce an `OpenRequestKind` enum. It seems most of the fields on `OpenRequest` are mutually-exclusive, so it is better to model it as an enum rather than using a bunch of `Option`s. There are likely more of the existing fields that can be converted into `OpenRequestKind` variants, but I'm being conservative for this first pass. Release Notes: - N/A
Marshall Bowers created
5289b81
ai_onboarding: Send users directly into the trial checkout flow when starting the trial (#34859)
This PR makes it so users will be sent immediately into the trial checkout flow (by hitting zed.dev/account/start-trial) when they click the "Start Pro Trial" button. Release Notes: - N/A
Marshall Bowers created
8515487
agent: Add new thread start buttons to the empty state (#34829)
Release Notes: - N/A
Danilo Leal created
19ab1eb
Fix an issue where xkb defined hotkeys for arrows would not work (#34823)
Addresses
https://github.com/zed-industries/zed/pull/34053#issuecomment-3096447601
where custom-defined arrows would stop working in Zed.
How to reproduce:
1. Define custom keyboard layout
```bash
cd /usr/share/X11/xkb/symbols/
sudo nano mykbd
```
```
default partial alphanumeric_keys
xkb_symbols "custom" {
name[Group1]= "Custom Layout";
key <AD01> { [ q, Q, Escape, Escape ] };
key <AD02> { [ w, W, Home, Home ] };
key <AD03> { [ e, E, Up, Up ] };
key <AD04> { [ r, R, End, End ] };
key <AD05> { [ t, T, Tab, Tab ] };
key <AC01> { [ a, A, Return, Return ] };
key <AC02> { [ s, S, Left, Left ] };
key <AC03> { [ d, D, Down, Down ] };
key <AC04> { [ f, F, Right, Right ] };
key <AC05> { [ g, G, BackSpace, BackSpace ] };
// include a base layout to inherit the rest
include "us(basic)"
};
```
2. Activate custom layout with win-key as AltGr
```bash
setxkbmap mykbd -variant custom -option lv3:win_switch
```
3. Now Win-S should produce left arrow, Win-F right arrow
4. Test whether it works in Zed
Release Notes:
- linux: xkb-defined hotkeys for arrow keys should behave as expected.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Sergei Surovtsev and Conrad Irwin created
722a05b
Wire up stop button in claude threads (#34839)
Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Agus Zubiaga and Ben Brandt created
5b3e371
gpui: Round `scroll_max` to two decimal places (#34832)
Follow up to #31836 After enabling rounding in the Taffy layout engine, we frequently run into cases where the bounds produced by Taffy and ours slightly differ after 5 or more decimal places. This leads to cases where containers become scrollable for less than 0.0000x Pixels. In case this happens for e.g. hover popovers, we render a scrollbar due to the container being technically scrollable, even though the scroll amount here will in practice never be visible. This change fixes this by rounding the `scroll_max` by which we clamp the current scroll position to two decimal places. We don't benefit from the additional floating point precision here at all and it stops such containers from becoming scrollable altogether. Furthermore, we now store the `scroll_max` instead of the `padded_content_size` as the former gives a much better idea on whether the corresponding container is scrollable or not. | `main` | After these changes | | -- | -- | | <img width="610" height="316" alt="main" src="https://github.com/user-attachments/assets/ffcc0322-6d6e-4f79-a916-bd3c57fe4211" /> | <img width="610" height="316" alt="scroll_max_rounded" src="https://github.com/user-attachments/assets/5fe530f5-2e21-4aaa-81f4-e5c53ab73e4f" /> | Release Notes: - Fixed an issue where scrollbars would appear in containers where no scrolling was possible.
Finn Evers created
8eca7f3
Fix for vim bindings in Pickers on Linux (#34840)
Closes: https://github.com/zed-industries/zed/issues/34780 Also relocated undo/redo selection in the keymap (no-op) as they are from Sublime, not VSCode. Release Notes: - vim: Fixed an issue so `ctrl-w` / `ctrl-h` and `ctrl-u` work in pickers on Linux when Vim mode is enabled.
Peter Tripp created
1a17157
Fix enter to select model in agent panel (#34846)
Broken by #34664 Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
241acbe
Stop onboarding page from showing up instead of welcome page (#34845)
This is from PR #34723 where I was working on developing the onboarding page, but I forgot to switch the first page back to our current version. Release Notes: - N/A
Anthony Eid created
6ea09be
terminal: Handle spaces in cwds of remote terminals (#34844)
Closes #34807 Release Notes: - Fixed "Open in terminal" action not working with paths that contain spaces in SSH projects.
Piotr Osiewicz created
3e50d99
agent: Fix double-lease panic when clicking on thread to jump (#34843)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Piotr Osiewicz created
da8bf9a
Auto-retry agent errors by default (#34842)
Now we explicitly carve out exceptions for which HTTP responses we do *not* retry for, and retry at least once on all others. Release Notes: - The Agent panel now automatically retries failed requests under more circumstances.
Richard Feldman created
589af59
collab: Refresh the LLM token once the terms of service have been accepted (#34833)
Release Notes: - N/A
Bennet Bo Fenner created
254c7a3
Regroup LSP context menu items by the worktree name (#34838)
Also * remove the feature gate * open buffers with an error when no logs are present * adjust the hover text to indicate that difference <img width="480" height="380" alt="image" src="https://github.com/user-attachments/assets/6b2350fc-5121-4b1e-bc22-503d964531a2" /> Release Notes: - N/A
Kirill Bulatov created
b6cf398
docs: Fix PHP docs typo (#34836)
This fixes a minor typo in the PHP docs. Release Notes: - N/A
Balboa Codes created
bc5c5cf
onboarding: Create basic onboarding page (#34723)
Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Anthony Eid and Ben Kunkle created
bf8aba5
collab: Remove unused billing preferences queries (#34830)
This PR removes some billing preferences queries that are no longer in use. Release Notes: - N/A
Marshall Bowers created
e14c947
chore: Pin taffy version (#34827)
Follow-up to 34817 Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Piotr Osiewicz created
97af7e1
collab: Remove `PUT /billing/preferences` endpoint (#34825)
This PR removes the `PUT /billing/preferences` endpoint, as it has been moved to `cloud.zed.dev`. Release Notes: - N/A
Marshall Bowers created