6c46e11
Cleanup remaining references to max mode (#33509)
Click to expand commit body
Release Notes: - N/A
Ben Brandt created
6c46e11
Cleanup remaining references to max mode (#33509)
Release Notes: - N/A
Ben Brandt created
fbb5628
Reset selection goal after helix motion (#33184)
Closes #33060 Motions like `NextWordStart` don't reset the selection goal in vim mode `helix_normal` unlike in `normal` which can lead to the cursor jumping back to the previous horizontal position after going up or down. Release Notes: - N/A
fantacell created
8c9116d
Fix panic in ctrl-g (#33474)
Release Notes: - vim: Fixed a crash with ctrl-g
Conrad Irwin created
20a3e61
vim: Better jump list support (#33495)
Closes #23527 Closes #30183 Closes some Discord chats Release Notes: - vim: Motions now push to the jump list using the same logic as vim (i.e. `G`/`g g`/`g d` always do, but `j`/`k` always don't). Most non-vim actions (including clicking with the mouse) continue to push to the jump list only when they move the cursor by 10 or more lines.
Conrad Irwin created
ba1c05a
keymap: Add ability to update user keymaps (#33487)
Closes #ISSUE The ability to update user keybindings in their keymap is required for #32436. This PR adds the ability to do so, reusing much of the existing infrastructure for updating settings JSON files. However, the existing JSON update functionality was intended to work only with objects, therefore, this PR simply wraps the object updating code with non-general keymap-specific array updating logic, that only works for top-level arrays and can only append or update entries in said top-level arrays. This limited API is reflected in the limited operations that the new `update_keymap` method on `KeymapFile` can take as arguments. Additionally, this PR pulls out the existing JSON updating code into its own module (where array updating code has been added) and adds a significant number of tests (hence the high line count in the diff) Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
2823771
Add design improvements to the LSP popover (#33485)
Not the ideal design just yet as that will probably require a different approach altogether, but am pushing here just some reasonably small UI adjustments that will make this feel slightly nicer! Release Notes: - N/A
Danilo Leal created
343f155
Update docs for Swift debugging (#33483)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Cole Miller created
2dece13
nix: Update to access new rust toolchain version (#33476)
Needed due to #33439 Release Notes: - N/A
Julia Ryan created
985dcf7
chore: Bump Rust version to 1.88 (#33439)
Goodies in this version: - if-let chains 🎉 - Better compiler perf for Zed (https://github.com/rust-lang/rust/pull/138522) For more, see: https://releases.rs/docs/1.88.0/ Release Notes: - N/A --------- Co-authored-by: Junkui Zhang <364772080@qq.com>
Piotr Osiewicz and Junkui Zhang created
b079871
Fix subtraction with overflow (#33471)
Release Notes: - N/A
Conrad Irwin created
4983b01
helix: Change word motions (#33408)
When starting on the newline character at the end of a line the helix word motions select that character, unlike in helix itself. This makes it easy to accidentaly join two lines together. Also, word motions that go backwards should stop at the start of a line. I added that. Release Notes: - helix: Fix edge-cases with word motions and newlines
fantacell created
35863c4
debugger: Fix treatment of node-terminal scenarios (#33432)
- Normalize `node-terminal` to `pwa-node` before sending to DAP - Split `command` into `program` and `args` - Run in external console Release Notes: - debugger: Fixed debugging JavaScript tasks that used `"type": "node-terminal"`.
Cole Miller created
a0bd25f
Feature gate the LSP button (#33463)
Follow-up of https://github.com/zed-industries/zed/pull/32490 The tool still looks like designed by professional developers, and still may change its UX based on the internal feedback. Release Notes: - N/A
Kirill Bulatov created
8a1e795
agent: Move `ActiveThread` and `MessageEditor` into `ActiveView` (#33462)
`ActiveThread` and `MessageEditor` only make sense when `active_view` is `Thread`, so we moved them in there. This will make it easier to work on new agent threads. Release Notes: - N/A --------- Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com> Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Agus Zubiaga , Antonio Scandurra , Conrad Irwin , and Smit Barmase created
f4818b6
linux: Add agent::ToggleBurnMode shortcut (super-ctrl-b) (#33458)
Follow-up to: - https://github.com/zed-industries/zed/pull/33452 - https://github.com/zed-industries/zed/pull/33190 - https://github.com/zed-industries/zed/pull/31630 Release Notes: - N/A
Peter Tripp created
7031ed8
ci: Fix duplicated/failed eval jobs (#33453)
I think this should fix the CI issues with Eval jobs: 1. Duplicated workflows because `synchronize` / `opened` were triggering distinct runs. This caused failed job entries because the duplicated workflows had a shared concurrency group and so one would pre-empt the other. 3. Removes the no-op job, introduced as an attempted workaround in https://github.com/zed-industries/zed/pull/29420. These should correctly show as "Skipped" now: | Before | After | | - | - | | <img width="359" alt="Screenshot 2025-06-26 at 9 57 04" src="https://github.com/user-attachments/assets/6ddd4f46-27c7-4d82-98ba-0f1166fc55e7" /> | <img width="355" alt="Screenshot 2025-06-26 at 10 09 54" src="https://github.com/user-attachments/assets/5faade2c-f17c-447a-9af9-6396f9e53016" /> | Release Notes: - N/A
Peter Tripp created
6073d2c
Automatically retry when API is Overloaded or 500s (#33275)
<img width="484" alt="Screenshot 2025-06-25 at 2 26 16 PM" src="https://github.com/user-attachments/assets/340f15d7-b115-4895-bae8-b12a915bfda1" /> <img width="460" alt="Screenshot 2025-06-25 at 2 26 08 PM" src="https://github.com/user-attachments/assets/6e587a38-d542-405f-809f-402e87520538" /> Now we: * Automatically retry up to 3 times on upstream Overloaded or 500 errors (currently for Anthropic only; will add others in future PRs) * Also automatically retry on rate limit errors (using the provided duration to wait, if we were given one) * Give you a notification if you don't have Zed open and we stopped the thread because of an error Still todo in future PRs: * Update collab to report Overloaded and 500 errors differently if collab itself is passing through an upstream error vs not (currently we report these as "Zed's API is overloaded" when actually it's the upstream one!) * Updating providers other than Anthropic to categorize their errors so that they benefit from this * Expanding graceful error handling/retry to other things besides Overloaded and 500 errors (e.g. connection reset) Release Notes: - Automatically retry in Agent Panel instead of erroring out when an upstream AI API is overloaded or 500s - Show a notification when an Agent thread errors out and Zed is not the active window
Richard Feldman created
00499aa
Add back default keybindings to Burn Mode and branch picker toggles (#33452)
Follow up to https://github.com/zed-industries/zed/pull/33190, as they were removed because of conflict with VS Code's usage of those bindings to toggle the right dock. `cmd-ctrl-b` seems like a safe alternative. Note that this PR is macOS only, though. I couldn't find yet any good options for Linux as they were all mostly conflicting with something else. Release Notes: - N/A
Danilo Leal created
d1eb69c
ci: Improve check_docs skipping (#33455)
Follow-up to: https://github.com/zed-industries/zed/pull/33398 Logic there was incomplete. Caused [this failure](https://github.com/zed-industries/zed/actions/runs/15904169712/job/44854558276). Release Notes: - N/A
Peter Tripp created
40cbfb7
docs: Add note about extension submodules needing to use HTTPS URLS (#33454)
This PR adds a note to the extension publishing docs about extension submodules needing to use HTTPS URLs. Release Notes: - N/A
Marshall Bowers created
5d0f02d
Add cmd-alt-b (workspace::ToggleRightDock) on macOS (#33450)
Release Notes: - N/A
Peter Tripp created
ca8e213
Suggest reST extension for .rst files (#33413)
Suggest the reST extension when opening a .rst file for the first time. Release Notes: - N/A
Renze Post created
90c8937
gpui: Prevent the same action name from being registered multiple times (#33359)
Also removes duplicate `editor::RevertFile` and `vim::HelixDelete` actions Release Notes: - N/A
Michael Sloan created
d09c7eb
language: Add context-aware decrease indent for Python (#33370)
Closes #33238, follow-up to
https://github.com/zed-industries/zed/pull/29625.
Changes:
- Removed `significant_indentation`, which was the way to introduce
indentation scoping in languages like Python. However, it turned out to
be unnecessarily complicated to define and maintain.
- Introduced `decrease_indent_patterns`, which takes a `pattern` keyword
to automatically outdent and `valid_after` keywords to treat as valid
code points to snap to. The outdent happens to the most recent
`valid_after` keyword that also has less or equal indentation than the
currently typed keyword.
Fixes:
1. In Python, typing `except`, `finally`, `else`, and so on now
automatically indents intelligently based on the context in which it
appears. For instance:
```py
try:
if a == 1:
try:
b = 2
^ # <-- typing "except:" here would indent it to inner try block
```
but,
```py
try:
if a == 1:
try:
b = 2
^ # <-- typing "except:" here would indent it to outer try block
```
2. Fixes comments not maintaining indent.
Release Notes:
- Improved auto outdent for Python while typing keywords like `except`,
`else`, `finally`, etc.
- Fixed the issue where comments in Python would not maintain their
indentation.
Smit Barmase created
1753432
Fix tree sitter python try statement to accept missing else/except/finally (#33431)
We have fork now: https://github.com/zed-industries/tree-sitter-python/commit/218fcbf3fda3d029225f3dec005cb497d111b35e Release Notes: - N/A
Smit Barmase created
d9218b1
Bump livekit-rust-sdks for candidate webrtc-sys build fix (#33387)
Incorporates https://github.com/zed-industries/livekit-rust-sdks/pull/5 Don't merge yet, waiting until after new releases are cut in case of unexpected breakage. Release Notes: - N/A
Cole Miller created
dfdeb1b
linux: Don't insert characters if modifiers other than shift are held (#33424)
Closes #32219 #29666 Release Notes: - Linux: Now skips insertion of characters when modifiers are held. Before, characters were inserted if there's no match in the keymap.
Michael Sloan created
b9f81c7
Restore missing initialization of text thread actions (#33422)
Fixes a regression introduced in https://github.com/zed-industries/zed/pull/33289 Release Notes: - Fixed a bug where some text thread actions were accidentally removed.
Max Brunsfeld created
b1450b6
Remove `git_panel::GenerateCommitMessage` in favor of `git::GenerateCommitMessage` (#33421)
`git_panel::GenerateCommitMessage` has no handler, `git::GenerateCommitMessage` should be preferred. Could add a `#[action(deprecated_aliases = ["git_panel::GenerateCommitMessage"])]`, but decided not to because that action didn't work. So instead uses of it will show up as keymap errors. Closes #32667 Release Notes: - N/A
Michael Sloan created
1af9f98
lsp-log: Avoid trimming leading space in language server logs (#33418)
Not sure what the full intention/right fix for this is, but https://github.com/zed-industries/zed/pull/32659 re-introduced trimming of leading spaces. rust-analyzer has [a custom tracing formatter](https://github.com/rust-lang/rust-analyzer/blob/317542c1e4a3ec3467d21d1c25f6a43b80d83e7d/crates/rust-analyzer/src/tracing/hprof.rs) that is _super_ useful for profiling what the heck rust-analyzer is doing. It makes prodigious use of whitespace to delineate to create a tree-shaped structure. This change reintroduces the leading whitespace. I made a previous change similar to this that removed a `stderr:` in https://github.com/zed-industries/zed/pull/27213/. If this is a direction y'all are happy to go with, I'd be happy to add a test for this! <details> <summary>A screenshot of the before</summary> <img width="1624" alt="Screenshot 2025-06-25 at 2 12 45 PM" src="https://github.com/user-attachments/assets/a714d973-9377-41ca-8087-3b0e82b41620" /> </details> <details> <summary>A screenshot of the after</summary> <img width="1136" alt="Screenshot 2025-06-25 at 2 40 07 PM" src="https://github.com/user-attachments/assets/b798ca13-11fc-4f97-9602-55e782068a5a" /> </details> cc: @mgsloan. Release Notes: - Fixed the removal of leading whitespace in a language server's stderr logs.
David Barsky created
1330cb7
docs: Update instructions to use Vercel's v0 model (#33415)
To make sure this reflects the current reality as of today's preview/stable version. Release Notes: - N/A
Danilo Leal created
dae4e84
Explicitly associate files as JSONC (#33410)
Fixes an issue when the zed repo was checked out to folder other than `zed` (e.g. `zed2`) files were incorrectly identified as JSON instead of JSONC. Release Notes: - N/A
Peter Tripp created
6fb5500
collab: Save Customer name and billing address to Customer on checkout (#33385)
We are collecting billing address and name on checkout now (for tax) but we're not saving it back to the Customer level. Updating the Checkout Session code to make`customer_update.address` equal to `auto`, instead of the default `never`, as well as the same for `customer_update.name`. Release Notes: - N/A
morgankrey created
8f98171
pane: Update pinned tab count when it exceeds actual tab count (#33405)
## Summary This PR improves the workaround introduced in #33335 that handles cases where the pinned tab count exceeds the actual tab count during workspace deserialization. ## Problem The original workaround in #33335 successfully prevented the panic but had two issues: 1. **Console spam**: The warning message was logged repeatedly because `self.pinned_tab_count` wasn't updated to match the actual tab count 2. **Auto-pinning behavior**: New tabs up until you exceed the old safe tab count were automatically pinned after the workaround was triggered. ## Solution Updates the defensive code to set `self.pinned_tab_count = tab_count` when the mismatch is detected, ensuring: - The warning is only logged once when encountered. - New tabs behave normally (aren't auto-pinned) - The workspace remains in a consistent state This is an immediate fix for the workaround. I'll attempt to open up a follow-up PR when i get the chance that will address the root cause by implementing serialization for empty untitled tabs, as discussed in #33342. Release Notes: - N/A
vipex created
aae4778
gpui: Add more flushing of x11 requests (#33407)
Flushes should happen after sending messages to X11 when effects should be applied quickly. This is not needed for requests that return replies since it automatically flushes in that case. Release Notes: - N/A
Michael Sloan created
e5c812f
gpui: Dynamic element arena (#32079)
Implements a chunking strategy for the element arena that allows it to grow dynamically based on allocations, it is initialised with a single chunk of a total size of 1 mebibyte. On allocation of data with a size greater than the remaining space of the current chunk a new chunk is created. This reduces the memory allocation from the static 32 mebibytes, this especially helps GPUI applications that don't need such a large element arena and even Zed in most cases. This also prevents the panic when allocations ever exceed the element arena. Release Notes: - N/A --------- Co-authored-by: Michael Sloan <michael@zed.dev>
Matin Aniss and Michael Sloan created
294147f
ci: Skip build_docs more often (#33398)
Don't run `build_docs` when the only change is:
`.github/{workflows,ISSUE_TEMPLATE}/**`.
Example [extra
run](https://github.com/zed-industries/zed/actions/runs/15883155767).
Release Notes:
- N/A
Peter Tripp created
4516b09
Reduce segment cloning when rendering messages (#33340)
While working on retries, I discovered some opportunities to reduce cloning of message segments. These segments have full `String`s (not `SharedString`s), so cloning them means copying cloning all the bytes of all the strings in the message, which would be nice to avoid! Release Notes: - N/A
Richard Feldman created
8e831ce
ci: Remove community_delete_comments (#33396)
This was a temporary mitigation against a spam campaign, I don't think this is required any longer. We can easily revert if it's still active. See: - https://github.com/zed-industries/zed/pull/16886 Release Notes: - N/A
Peter Tripp created
3740eec
Do not show update "View Release Notes" notification in nightly builds (#33394)
These are useless in nightly, as the link within the notification simply directs us to a commit view on GitHub. We update frequently on nightly; dismissing this after every update is annoying. Release Notes: - N/A
Joseph T. Lyons created
2a5a181
text_thread: Improve roles after `assistant::Split` (shift-enter) (#33215)
Default to `You` when triggering `assistant::Split` at the end of a thread Release Notes: - agent_thread: Improved roles when triggering `assistant::Split` (`shift-enter`)
Peter Tripp created
cc62125
agent: Add GEMINI.md as a supported rules file name (#33381)
Gemini cli creates GEMINI.md file. This PR adds support for it. Release Notes: - agent: Add GEMINI.md as a supported rules file name
Umesh Yadav created
224de2e
settings: Remove version fields (#33372)
This cleans up our settings to not include any `version` fields, as we have an actual settings migrator now. This PR removes `language_models > anthropic > version`, `language_models > openai > version` and `agent > version`. We had migration paths in the code for a long time, so in practice almost everyone should be using the latest version of these settings. Release Notes: - Remove `version` fields in settings for `agent`, `language_models > anthropic`, `language_models > openai`. Your settings will automatically be migrated. If you're running into issues with this open an issue [here](https://github.com/zed-industries/zed/issues)
Bennet Bo Fenner created
c0acd8e
Add language server control tool into the status bar (#32490)
Release Notes: - Added the language server control tool into the status bar --------- Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Kirill Bulatov and Nate Butler created
91c9281
Default to cargo-zigbuild for ZED_BUILD_REMOTE_SERVER (#33391)
Follow-up to #31467. `cargo-zigbuild` will be installed if it's not there already, but you have to install Zig yourself. Pass `ZED_BUILD_REMOTE_SERVER=cross` to use the old way. Release Notes: - N/A
Cole Miller created
84494ab
Make ctrl-alt-b / cmd-alt-b toggle right dock (#33190)
Closes: https://github.com/zed-industries/zed/issues/33147 In VSCode ctrl-alt-b / cmd-alt-b toggles the right dock. Zed should follow this behavior. See also: - https://github.com/zed-industries/zed/pull/31630 Release Notes: - N/A
Peter Tripp created
93d670a
Fix empty code actions menu trapping cursor (#33386)
Closes: https://github.com/zed-industries/zed/issues/33382 Follow-up to: https://github.com/zed-industries/zed/pull/32579 CC: @ConradIrwin @Anthony-Eid Release Notes: - Fixed an issue with empty code actions menu locking the cursor (Preview Only)
Peter Tripp created
7d087ea
docs: Improve visual-customization.md docs for Zed prompts (#33254)
Release Notes: - N/A
Peter Tripp created
19c9fb3
Allow multiple Markdown preview tabs (#32859)
Closes #32791 https://github.com/user-attachments/assets/8cb90e3d-ef7b-407f-b78b-7ba4ff6d8df2 Release Notes: - Allowed multiple Markdown preview tabs
ddoemonn created
b0bab0b
agent: Prevent use of disabled tools (#33392)
The agent now checks if a tool is enabled in the current profile before calling it. Previously, the agent could still call disabled tools, which commonly happened after switching profiles in the middle of a thread. Release Notes: - Fixed a bug where the agent could use disabled tools sometimes
Oleksiy Syvokon created