c4dbaa9
gpui: Fix race condition when upgrading a weak reference (#30952)
Click to expand commit body
Release Notes: - N/A
laizy created
c4dbaa9
gpui: Fix race condition when upgrading a weak reference (#30952)
Release Notes: - N/A
laizy created
97c01c6
Fix model deduplication to use provider ID and model ID (#31750)
Previously only used model ID for deduplication, which incorrectly filtered models with the same name from different providers. Release Notes: - Fix to make sure all provider models are shown in the model picker
Ben Brandt created
310ea43
danger: Check for changes in prompt files (#31744)
This PR adds a Danger check to remind engineers that any changes to our various prompts need to be verified against the LLM Worker. When changes to the prompt files are detected, we will fail the PR with a message: <img width="929" alt="Screenshot 2025-05-30 at 8 40 58 AM" src="https://github.com/user-attachments/assets/79afab4e-e799-45f1-a90e-0fd7c9a73706" /> Once the corresponding changes have been made (or no changes to the LLM Worker have been determined to be necessary), including the indicated attestation message will convert the errors into informational messages: <img width="926" alt="Screenshot 2025-05-30 at 8 41 52 AM" src="https://github.com/user-attachments/assets/ff51c17a-7a76-46a7-b468-a7d864d480c3" /> Release Notes: - N/A
Marshall Bowers created
6bb4b5f
Revert "debugger beta: Fix bug where debug Rust main running action f… (#31743)
…ailed (#31291)" This reverts commit aab76208b53334b85429486c7abd6f0bfcf58dc9. Closes #31737 I cannot repro the original issue that this commit was trying to solve anymore. Release Notes: - N/A
Piotr Osiewicz created
e0fa303
docs: Properly nest the docs for the inline git blame settings (#31739)
From a report on [discord](https://discord.com/channels/869392257814519848/873292398204170290/1377943171320774656): reorders the docs for the inline git blame feature so they are properly nested. <img width="1719" alt="Screenshot_2025-05-30_at_11 32 17" src="https://github.com/user-attachments/assets/3c20bda3-de81-4ac3-b8e2-e1d4eac0ce88" /> Release Notes: - N/A
Alejandro Fernández Gómez created
9cf6be2
agent: Add Burn Mode setting migrator (#31718)
Follow-up https://github.com/zed-industries/zed/pull/31470. Release Notes: - N/A
Danilo Leal created
5462e19
debugger: Fix wrong path to the downloaded delve-shim-dap (#31738)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
3a60420
debugger: Fix delve-dap-shim path on Windows (#31735)
Closes #ISSUE Release Notes: - debugger: Fixed wrong path being picked up for delve on Windows - debugger: Fixed delve not respecting the user-provided binary path from settings.
Piotr Osiewicz created
89c184a
markdown_preview: Fix release notes title being overridden (#31703)
Closes: #31701 Screenshot: <img width="383" alt="image" src="https://github.com/user-attachments/assets/7fd8ce70-2208-4aca-bc70-860d6c649765" /> Release Notes: - Fixed in-app release notes having an incorrect title --------- Co-authored-by: Gilles Peiffer <gilles.peiffer.yt@gmail.com>
Simon Pham and Gilles Peiffer created
d7f0241
editor: Defer the effects of `change_selections` to end of `transact` (#31731)
In quite a few places the selection is changed multiple times in a transaction. For example, `backspace` might do it 3 times: * `select_autoclose_pair` * selection of the ranges to delete * `insert` of empty string also updates selection Before this change, each of these selection changes appended to selection history and did a bunch of work that's only relevant to selections the user actually sees. So for each backspace, `editor::UndoSelection` would need to be invoked 3-4 times before the cursor actually moves. It still needs to be run twice after this change, but that is a separate issue. Signature help even had a `backspace_pressed: bool` as an incomplete workaround, to avoid it flickering due to the selection switching between being a range and being cursor-like. The original motivation for this change is work I'm doing on not re-querying completions when the language server provides a response that has `is_incomplete: false`. Whether the menu is still visible is determined by the cursor position, and this was complicated by it seeing `backspace` temporarily moving the head of the selection 1 character to the left. This change also removes some redundant uses of `push_to_selection_history`. Not super stoked with the name `DeferredSelectionEffectsState`. Naming is hard. Release Notes: - N/A
Michael Sloan created
1445af5
Unify the tasks modal and the new session modal (#31646)
Release Notes: - Debugger Beta: added a button to the quick action bar to start a debug session or spawn a task, depending on which of these actions was taken most recently. - Debugger Beta: incorporated the tasks modal into the new session modal as an additional tab. --------- Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com> Co-authored-by: Julia Ryan <p1n3appl3@users.noreply.github.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Co-authored-by: Mikayla <mikayla@zed.dev>
Cole Miller , Julia Ryan , Julia Ryan , Anthony Eid , and Mikayla created
804de33
debugger: Update docs with more examples (#31597)
This PR also shows more completion items when defining a debug config in a `debug.json` file. Mainly when using a pre build task argument. ### Follow ups - Add docs for Go, JS, PHP - Add attach docs Release Notes: - debugger beta: Show build task completions when editing a debug.json configuration with a pre build task - debugger beta: Add Python and Native Code debug config [examples](https://zed.dev/docs/debugger)
Anthony Eid created
a387bf5
zed: Fix migration banner not hiding after migration has been carried out (#31723)
- https://github.com/zed-industries/zed/pull/30444 This PR broke migration notification to only emit event when content is migrated. This resulted in the migration banner not going away after clicking "Backup and Migrate". It should also emit event when it's not migrated which removes the banner. Future: I think we should have better tests in place for banner visibility. Release Notes: - Fixed an issue where migration banner wouldn't go away after clicking "Backup and Migrate".
Smit Barmase created
c7047d5
collab: Fully move `StripeBilling` over to using `StripeClient` (#31722)
This PR moves over the last method on `StripeBilling` to use the `StripeClient` trait, allowing us to fully mock out Stripe behaviors for `StripeBilling` in tests. Release Notes: - N/A
Marshall Bowers created
406d975
Cleanup corresponding task history on task file update (#31720)
Closes https://github.com/zed-industries/zed/issues/31715 Release Notes: - Fixed old task history not erased after task file update
Kirill Bulatov created
cbed580
workspace: Ensure pane handle hitbox blocks mouse events (#31719)
Follow-up to #31712 Pane handle hitboxes were opaque prior to the linked PR. This was the case because pane handles have an intentionally larger hitbox than the pane dividers size to allow for easier dragging. The cursor style is also updated for that hitbox to indicate that resizing is possible: https://github.com/zed-industries/zed/blob/908678403871e0ef18bbe20f78a84654dfdd431d/crates/workspace/src/pane_group.rs#L1297-L1301 Not blocking the mouse events here causes mouse events to bleed through this hitbox whilst actually any clicks will only cause a pane resize to happen. Hence, this hitbox should continue to block mouse events to avoid any confusion when resizing panes. I considered using `HitboxBehavior::BlockMouseExceptScroll` here, however, due to the reasons mentioned above, I decided against it. The cursor will not indicate that scrolling should be possible. Since all other mouse events on underlying elements (like hovers) are blocked, it felt more reasonable to just go with `HitboxBehavior::BlockMouse`. Release Notes: - N/A
Finn Evers created
8aef64b
Remove `block_mouse_down` in favor of `stop_mouse_events_except_scroll` (#30401)
This method was added in #20649 to be an alternative of `occlude` which allows scroll events. It seems a bit arbitrary to only stop left mouse downs, so this seems like it's probably an improvement. Release Notes: - N/A
Michael Sloan created
9086784
gpui: Support hitbox blocking mouse interaction except scrolling (#31712)
tl;dr: This adds `.block_mouse_except_scroll()` which should typically
be used instead of `.occlude()` for cases when the mouse shouldn't
interact with elements drawn below an element. The rationale for
treating scroll events differently:
* Mouse move / click / styles / tooltips are for elements the user is
interacting with directly.
* Mouse scroll events are about finding the current outer scroll
container.
Most use of `occlude` should probably be switched to this, but I figured
I'd derisk this change by minimizing behavior changes to just the 3 uses
of `block_mouse_except_scroll`.
GPUI changes:
* Added `InteractiveElement::block_mouse_except_scroll()`, and removes
`stop_mouse_events_except_scroll()`
* Added `Hitbox::should_handle_scroll()` to be used when handling scroll
wheel events.
* `Window::insert_hitbox` now takes `HitboxBehavior` instead of
`occlude: bool`.
- `false` for that bool is now `HitboxBehavior::Normal`.
- `true` for that bool is now `HitboxBehavior::BlockMouse`.
- The new mode is `HitboxBehavior::BlockMouseExceptScroll`.
* Removes `Default` impl for `HitboxId` since applications should not
manually create `HitboxId(0)`.
Release Notes:
- N/A
Michael Sloan created
2abc589
Improve TypeScript task detection (#31711)
Parses project's package.json to better detect Jasmine, Jest, Vitest and Mocha and `test`, `build` scripts presence. Also tries to detect `pnpm` and `npx` as test runners, falls back to `npm`. https://github.com/user-attachments/assets/112d3d8b-8daa-4ba5-8cb5-2f483036bd98 Release Notes: - Improved TypeScript task detection
Kirill Bulatov created
a23ee61
Pass up intent with completion requests (#31710)
This PR adds a new `intent` field to completion requests to assist in categorizing them correctly. Release Notes: - N/A --------- Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Marshall Bowers and Ben Brandt created
38e45e8
Add View Release Notes to Help menu (#31704)
<img width="891" alt="image" src="https://github.com/user-attachments/assets/59e98fdb-c1b5-4948-8d69-661561d838f1" /> Release Notes: - Added `View Release Notes` to `Help` menu
Simon Pham created
181bf78
agent: Change the navigation menu keybinding (#31709)
As much as I enjoyed the previous keybinding, it was causing a conflict with the editor where it wouldn't open on text threads. To not get into a rabbit hole and complicate the fix too much, I figured simply changing it to something non-conflictual would be a good move. Release Notes: - agent: Fixed a bug where the panel navigation menu wouldn't open with the keybinding on text threads.
Danilo Leal created
c42d060
Update debug.json in Zed repo to run the build on session startup (#31707)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
6ea9abd
Cursor keymap (#31702)
To use this, spawn `weclome: toggle base keymap selector` from the command palette. <img width="589" alt="Screenshot 2025-05-29 at 14 07 35" src="https://github.com/user-attachments/assets/0d4c4eff-6a3b-40f4-9032-5d8ca7664d20" /> MacOS is well tested to match Cursor. The [curors keymap documentation](https://docs.cursor.com/kbd) is does not explicitly state windows/linux keymap entries only "All Cmd keys can be replaced with Ctrl on Windows." so that is what we've done. We welcome feedback / refinements. Note, because this provides a mapping for `cmd-k` (macos) and `ctrl-k` (linux/windows) using this keymap will disable all of the default chorded keymap entries which have `cmd-k` / `ctrl-k` as a prefix. For example `cmd-k cmd-s` for open keymap will no longer function. Release Notes: - Added Cursor compatibility keymap --------- Co-authored-by: Joseph Lyons <joseph@zed.dev>
Peter Tripp and Joseph Lyons created
070eac2
go: Use delve-dap-shim for spawning delve (#31700)
This allows us to support terminal with go sessions Closes #ISSUE Release Notes: - debugger: Add support for terminal when debugging Go programs
Piotr Osiewicz created
05692e2
agent: Fix panel "go back" button (#31706)
Closes https://github.com/zed-industries/zed/issues/31652. Release Notes: - agent: Fixed a bug where the "go back" button wouldn't go back to the Text Thread after visiting another view from it.
Danilo Leal created
ccb049b
Format streamed edits on save (#31623)
Re-enables format on save for agent changes (when the user has that enabled in settings), except differently from before: - Now we do the format-on-save in the separate buffer the edit tool uses, *before* the diff - This means it never triggers separate staleness - It has the downside that edits are now blocked on the formatter completing, but that's true of saving in general. Release Notes: - N/A --------- Co-authored-by: Agus Zubiaga <hi@aguz.me>
Richard Feldman and Agus Zubiaga created
fe57eed
agent: Rename `PromptEditor` to `TextThread` in the panel's `ActiveView` (#31705)
Was touching this part of the Agent Panel and thought it could be a quick name consistency win here, so it is aligned with the terminology we're currently actively using in the product/docs. Release Notes: - N/A
Danilo Leal created
c57e6bc
tab_switcher: Add placeholder text (#31697)
| Before | After | |---|---| |<img width="478" alt="image" src="https://github.com/user-attachments/assets/5baba783-ee31-42cd-9760-7ee19edb1123" />|<img width="478" alt="image" src="https://github.com/user-attachments/assets/1b149500-4a97-4085-80e5-fd628c92471a" />| Release Notes: - N/A
5brian created
83135e9
Introduce $ZED_CUSTOM_PYTHON_ACTIVE_ZED_TOOLCHAIN_RAW to work around (#31685)
Follow up to #31674 Release Notes: - N/A Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Piotr Osiewicz and Kirill Bulatov created
703ee29
Rename Max Mode to Burn Mode throughout code and docs (#31668)
Follow up to https://github.com/zed-industries/zed/pull/31470. I started looking at config and changed preferred_completion_mode to burn to only find its max so made changes to align it better with rebrand. As this is in preview build now. This doesn't touch zed_llm_client. Only the Zed changes the code and doc to match the new UI of burn mode. There are still more things to be renamed, though. Release Notes: - N/A --------- Signed-off-by: Umesh Yadav <git@umesh.dev> Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Umesh Yadav and Danilo Leal created
f792827
Allow to reuse PickerPopoverMenu outside of the model selector (#31684)
LSP button preparation step: move out the component that will be used to build the button's context menu. Release Notes: - N/A
Kirill Bulatov created
45f9edc
docs: Add small refinements to CSS adjacent pages (#31683)
Follow up to https://github.com/zed-industries/zed/pull/31681. Was visiting some of these pages and noticed these somewhat small formatting and copywriting improvement opportunities. The docs for Svelte in particular felt somewhat unorganized. Release Notes: - N/A
Danilo Leal created
e335454
docs: Improve the Tailwind CSS page (#31681)
Namely, ensuring we mention the support for their Prettier plugins. Release Notes: - N/A
Danilo Leal created
cb187b0
evals: Configurable number of max dialog turns (#31680)
Release Notes: - N/A
Oleksiy Syvokon created
d989b22
Do not react on settings change for disabled minimaps (#31677)
Turning minimap on during debug sessions would cause the console editor to gain the minimap, despite it being explicitly disabled in the code. Release Notes: - N/A
Kirill Bulatov created
ae076fa
task: Add ZED_RELATIVE_DIR task variable (#31657)
This is my first contribution to zed, let me know if I missed anything.
There is no corresponding issue/discussion.
`$ZED_RELATIVE_DIR` can be used in cases where a task's command's
filesystem namespace (e.g. inside a container) is different than the
host, where absolute paths cannot work.
I modified `relative_path` to `relative_file` after the addition of
`relative_dir`.
For top-level files, where `relative_file.parent() == Some("")`, I use
`"."` for `$ZED_RELATIVE_DIR`, which is a valid relative path in both
*nix and windows.
Thank you for building zed, and open-sourcing it. I hope to contribute
more as I use it as my primary editor.
Release Notes:
- Added ZED_RELATIVE_DIR (path to current file's directory relative to
worktree root) task variable.
Dhruvin Gandhi created
b4af61e
Revert "task: Wrap programs in ""s (#31537)" (#31674)
That commit broke a lot, as our one-off tasks (alt-enter in the tasks modal), npm, jest tasks are all not real commands, but a composition of commands and arguments. This reverts commit 5db14d315b0822c6d261c0853a3ea039877fd8a8. Closes https://github.com/zed-industries/zed/issues/31554 Release Notes: - N/A Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Kirill Bulatov and Piotr Osiewicz created
ea8a3be
recent_projects: Move SSH server entry to initialize once instead of every render (#31650)
Currently, `RemoteEntry::SshConfig` for `ssh_config_servers` initializes on every render. This leads to side effects like a new focus handle being created on every render, which leads to breaking navigating up/down for `ssh_config_servers` items. This PR fixes it by moving the logic of remote entry for`ssh_config_servers` into `default_mode`, and only rebuilding it when `ssh_config_servers` actually changes. Before: https://github.com/user-attachments/assets/8c7187d3-16b5-4f96-aa73-fe4f8227b7d0 After: https://github.com/user-attachments/assets/21588628-8b1c-43fb-bcb8-0b93c70a1e2b Release Notes: - Fixed issue navigating SSH config servers in Remote Projects with keyboard.
Smit Barmase created
5173a1a
recent_projects: Fix remote projects not regaining focus after SSH server connect (#31651)
Closes #28071 Release Notes: - Fixed issue preventing remote projects modal from regaining focus after a successful SSH server connection.
Smit Barmase created
87f097a
terminal_view: Fix terminal stealing focus on editor selection (#31639)
Closes #28234 Release Notes: - Fixed the issue where the terminal focused when the mouse hovered over it after selecting text in the editor.
Smit Barmase created
f9407db
debugger: Add spinners while session is starting up (#31548)
Release Notes: - Debugger Beta: Added a spinner to the debug panel when a session is starting up. --------- Co-authored-by: Remco Smits <djsmits12@gmail.com> Co-authored-by: Julia <julia@zed.dev>
Cole Miller , Remco Smits , and Julia created
384b113
debugger: Disambiguate child session labels (#31526)
Add `(child)` instead of using the same label. Release Notes: - Debugger Beta: Made child sessions appear distinct from their parents in the session selector.
Cole Miller created
f20596c
debugger: Don't open non-absolute paths from stack frame list (#31534)
Follow-up to #31524 with a more general fix Release Notes: - N/A --------- Co-authored-by: Piotr <piotr@zed.dev>
Cole Miller and Piotr created
eb863f8
collab: Use `StripeClient` when creating Stripe Checkout sessions (#31644)
This PR updates the `StripeBilling::checkout_with_zed_pro` and `StripeBilling::checkout_with_zed_pro_trial` methods to use the `StripeClient` trait instead of using `stripe::Client` directly. Release Notes: - N/A
Marshall Bowers created
9757966
Fix editor rendering slowness with large folds (#31569)
Closes https://github.com/zed-industries/zed/issues/31565 * Looking up settings on every row was very slow in the case of large folds, especially if there was an `.editorconfig` file with numerous glob patterns * Checking whether each indent guide was within a fold was very slow, when a fold spanned many indent guides. Release Notes: - Fixed slowness that could happen when editing in the presence of large folds.
Max Brunsfeld created
53849cf
collab: Remove Zed Free as an option when initiating a checkout session (#31638)
This PR removes Zed Free as an option when initiating a checkout session, as we manage this plan automatically now. Release Notes: - N/A
Marshall Bowers created
1e25249
docs: Adjust the channels page a bit (#31636)
All the docs related to collaboration could use some deep revamp, but this PR is just formatting tweaks so it doesn't look broken. The images weren't showing at all! Release Notes: - N/A
Danilo Leal created
469824c
collab: Use `StripeClient` for creating model usage meter events (#31633)
This PR updates the `StripeBilling::bill_model_request_usage` method to use the `StripeClient` trait. Release Notes: - N/A
Marshall Bowers created
a1c645e
docs: Improve footer button design (#31634)
Just touching up these a little bit. I think including the page destination as a label here is a good move! Release Notes: - N/A
Danilo Leal created