6e1d86f
fs: Handle io::ErrorKind::NotADirectory in fs::metadata (#42370)
Click to expand commit body
New error variants were stabilized in 1.83, and this might've led to us
mis-handling not-a-directory errors.
Co-authored-by: Dino <dino@zed.dev>
Release Notes:
- N/A
Co-authored-by: Dino <dino@zed.dev>
Piotr Osiewicz
and
Dino
created
a3f04e8
agent_ui: Fix thread history item showing GMT time instead of local time on Windows (#42198)
Click to expand commit body
Closes #42178
Now it's consistent with the DateAndTime path which already does
timezone conversion.
- **Future Work**
Happy to tackle the TODO in `time_format.rs` about implementing native
Windows APIs for proper localized formatting (similar to macOS's
`CFDateFormatter`) as a follow-up.
Release Notes:
- agent: Fixed the thread history item timestamp, which was being shown
in GMT instead of in the user's local timezone on Windows.
Abul Hossain Khan
created
3c81ee6
agent_ui: Allow to configure a default model for profiles through modal (#42359)
Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/39220
This PR allows to configure a default model for a given profile through
the profile management modal.
| Option In Picker | Model Selector |
|--------|--------|
| <img width="1172" height="538" alt="Screenshot 2025-11-10 at 12 24
2@2x"
src="https://github.com/user-attachments/assets/33dfb6f1-f8fd-42f9-b824-3dab807094da"
/> | <img width="1172" height="1120" alt="Screenshot 2025-11-10 at 12
24@2x"
src="https://github.com/user-attachments/assets/50360b0a-fbb1-455e-9cf7-9fa987345038"
/> |
Release Notes:
- N/A
I ran [proselint](https://github.com/amperser/proselint) (recommended by
cURL author [Daniel
Stenberg](https://daniel.haxx.se/blog/2022/09/22/taking-curl-documentation-quality-up-one-more-notch/))
against all the `.md` files in the codebase to see if I could fix some
easy typos.
The tool is noisier than I would like and picking up the overrides to
the default config in a `.proselintrc.json` was much harder than I
expected.
There's many other small nits [1] that I believe are best left to your
docs czar whenever they want to consider incorporating a tool like this
into big releases or CI, but these seemed like small wins for now to
open a conversation about a tool like proselint.
---
[1]: Such nits include
- incosistent 1 or 2 spaces
- "color" vs "colour"
- ab/use of `very`
- awkward or superfluous phrasing.
Release Notes:
- N/A
Signed-off-by: mrg <miguelraz@ciencias.unam.mx>
Extract some of the improvements from to the unified diff prompt from
https://github.com/zed-industries/zed/pull/42171 and adds some other
about how context work to improve the reliability of predictions.
We also now strip the `<|user_cursor|>` marker if it appears in the
output rather than failing.
Release Notes:
- N/A
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Agus Zubiaga
and
Max Brunsfeld
created
42ed032
Fix circular reference issue between EditPredictionButton and PopoverMenuHandle (#42351)
Click to expand commit body
Closes #ISSUE
While working on issue #40906, I discovered that RemoteClient was not
being released after the remote project closed.
Analysis revealed a circular reference between EditPredictionButton and
PopoverMenuHandle.
Dependency Chain: RemoteClient → Project → ZetaEditPredictionProvider →
EditPredictionButton ↔ PopoverMenuHandle
<img width="400" height="300" alt="image"
src="https://github.com/user-attachments/assets/6b716c9b-6938-471a-b044-397314b729d4"
/>
a) EditPredictionButton hold the reference of PopoverMenuHandle
https://github.com/zed-industries/zed/blob/5f8226457ee6e1346a224ae6b0329f014ea883f7/crates/zed/src/zed.rs#L386-L394
b) PopoverMenuHandle hold the reference of Fn which capture
`Entity<EditPredictionButton>`
https://github.com/zed-industries/zed/blob/5fc54986c72f2863645302c5e6a99277f8c38cab/crates/edit_prediction_button/src/edit_prediction_button.rs#L382-L389
https://github.com/zed-industries/zed/blob/a9bc890497f1edaf4f177385cf96785de60e910c/crates/ui/src/components/popover_menu.rs#L376-L384
Release Notes:
- N/A
feeiyu
created
2d84af9
agent: Add ability to set a default_model per profile (#39220)
Click to expand commit body
Split off from https://github.com/zed-industries/zed/pull/39175
Requires https://github.com/zed-industries/zed/pull/39219 to be merged
first
Adds support for `default_model` for profiles:
```
"my-profile": {
"name": "Coding Agent",
"tools": {},
"enable_all_context_servers": false,
"context_servers": {},
"default_model": {
"provider": "copilot_chat",
"model": "grok-code-fast-1"
}
}
```
Which will then switch to the default model whenever the profile is
activated

Release Notes:
- Added `default_model` configuration to agent profile
---------
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
David
and
Danilo Leal
created
7aacc75
Add support for closing window tabs with middle mouse click (#41628)
Click to expand commit body
This change adds support for closing a system window tabs by pressing
the middle mouse button.
It improves tab management UX by matching common tab behavior.
Release Notes:
- Added support for closing system window tabs with middle mouse click.
8d63295
Add better labels for completions for ty lsp (#42233)
Click to expand commit body
Verified that this works locally. I modeled it after how basedpyright
and pyright work. Here is a screenshot of what it looks like (issue has
screenshots of the old state):
<img width="593" height="258" alt="Screenshot 2025-11-07 at 2 40 50 PM"
src="https://github.com/user-attachments/assets/5d2371fc-360b-422f-ba59-0a95f2083c87"
/>
Closes #42232
Release Notes:
- python/ty: Code completion menu now shows packages that will be
imported when a given entry is accepted.
327ee05
Add support for skipping brackets in rainbow colorization
MrSubidubi
created
0149de4
git: Fix panic in `git2` due to empty repo paths (#42304)
Click to expand commit body
Fixes ZED-1VR
Release Notes:
- Fixed sporadic panic in git features
Lukas Wirth
created
359160c
git: Add askpass delegate to git-commit handlers (#42239)
Click to expand commit body
In my local setup, I always enforce git-commit signing with GPG/SSH
which automatically enforces `git commit -S` when committing. This
changeset will now show a modal to the user for them to specify the
passphrase (if any) so that they can unlock their private key for
signing when committing in Zed.
<img width="1086" height="948" alt="Screenshot 2025-11-07 at 11 09
09 PM"
src="https://github.com/user-attachments/assets/ac34b427-c833-41c7-b634-8781493f8a5e"
/>
Release Notes:
- Handle automatic git-commit signing by presenting the user with an
askpass modal
Jakub Konka
created
b8081ad
Make it easy to point zeta2 at ollama (#42329)
Click to expand commit body
I wanted to be able to work offline, so I made it a little bit more
convenient to point zeta2 at ollama.
* For zeta2, don't require that request ids be UUIDs
* Add an env var `ZED_ZETA2_OLLAMA` that sets the edit prediction URL
and model id to work w/ ollama.
Release Notes:
- N/A
Max Brunsfeld
created
35c5815
git: Fix support for self-hosted Bitbucket (#42002)
Click to expand commit body
Closes #41995
Release Notes:
- Fixed support for self-hosted Bitbucket
ᴀᴍᴛᴏᴀᴇʀ
created
e025ee6
git: Add base branch support to create_branch (#42151)
Click to expand commit body
Closes [#41674](https://github.com/zed-industries/zed/issues/41674)
Description:
Creating a branch from a base requires switching to the base branch
first, then creating the new branch and checking out to it, which
requires multiple operations.
Add base_branch parameter to create_branch to allow a new branch from a
base branch in one operation which is synonymous to the command `git
switch -c <new-branch> <base-branch>`.
Below is the video after solving the issue:
(`master` branch is the default branch here, and I create a branch
`new-branch-2` based off the `master` branch. I also show the error
which used to appear before the fix.)
[Screencast from 2025-11-07
05-14-32.webm](https://github.com/user-attachments/assets/d37d1b58-af5f-44e8-b867-2aa5d4ef3d90)
Release Notes:
- Fixed the branch-picking error by replacing multiple sequential switch
operations with just one switch operation.
Signed-off-by: ayu-ch <ayu.chandekar@gmail.com>
Ayush Chandekar
created
c60d31a
git: Track worktree references to resolve stale repository state (#41592)
Click to expand commit body
Closes #35997
Closes #38018
Closes #41516
Release Notes:
- Fixes stale git repositories persisting after removal
Mayank Verma
created
e12178c
Merge remote-tracking branch 'origin/main' into kb/rainbow-brackets
0bcf607
agent_ui: Always allow to include symbols (#42261)
Click to expand commit body
We can always include symbols, since we either include a ResourceLink to
the symbol (when `PromptCapabilities::embedded_context = false`) or a
Resource (when `PromptCapabilities::embedded_context = true`)
Release Notes:
- Fixed an issue where symbols could not be included when using specific
ACP agents
Bennet Bo Fenner
created
431a195
acp: Fix issue with mentions when `embedded_context` is set to `false` (#42260)
Click to expand commit body
Release Notes:
- acp: Fixed an issue where Zed would not respect
`PromptCapabilities::embedded_context`
Bennet Bo Fenner
created
6db6251
agent_ui: Fix external agent icons in configuration view (#42313)
Click to expand commit body
This PR makes the icons for external agents in the configuration view
use `from_external_svg` instead of `from_path`.
Release Notes:
- N/A
Danilo Leal
created
2fb3d59
agent_ui: Add component to standardize the configured LLM card (#42314)
Click to expand commit body
This PR adds a new component to the `language_models` crate called
`ConfiguredApiCard`:
<img width="500" height="420" alt="Screenshot 2025-11-09 at 2 07@2x"
src="https://github.com/user-attachments/assets/655ea941-2df8-4489-a4da-bba34acf33a9"
/>
We were previously recreating this component from scratch with regular
divs in all LLM providers render function, which was redundant as they
all essentially looked the same and didn't have any major variations
aside from labels. We can clean up a bunch of similar code with this
change, which is cool!
Release Notes:
- N/A
Danilo Leal
created
cc1d66b
agent_ui: Improve API key configuration UI display (#42306)
Click to expand commit body
Improve the layout and text display of API key configuration in multiple
language model providers to ensure proper text wrapping and ellipsis
handling when API URLs are long.
Before:
<img width="320" alt="image"
src="https://github.com/user-attachments/assets/2f89182c-34a0-4f95-a43a-c2be98d34873"
/>
After:
<img width="320" alt="image"
src="https://github.com/user-attachments/assets/09bf5cc3-07f0-47bc-b21a-d84b8b1caa67"
/>
Changes include:
- Add proper flex layout with overflow handling
- Replace truncate_and_trailoff with CSS text ellipsis
- Ensure consistent UI behavior across all providers
Release Notes:
- Improved API key configuration display in language model settings
chenmi
created
5d08c1b
Surpress more rust-analyzer error logs (#42299)
Fixes ZED-2CQ
We were doing the binary search by buffer points, but due to await
points within this function we could end up mixing points of differing
buffer versions.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Lukas Wirth
created
81d38d9
Additional Windows keyboard input fixes (#42294)
Click to expand commit body
- Enable Alt+Numpad input
- For this to be effective, the default keybindings for Alt+{Number}
will need to be unbound. This won't be needed once we gain the ability
to differentiate numpad digit keys from alphanumeric digit keys.
- Fixes https://github.com/zed-industries/zed/issues/40699
- Fix a number of edge cases with dead keys
Release Notes:
- N/A
Closes https://github.com/zed-industries/zed/issues/42276
This fixes the fact that the `AddSelectionToThread` action was visible
when `disable_ai` was true, as well as it improves its display by making
it either disabled or hidden when there are no selections in the editor.
I also ended up removing it from the app menu simply because making it
observe the `disable_ai` setting would be a bit more complex than I'd
like at the moment, so figured that, given I'm also now adding it to the
toolbar selection menu, we could do without it over there.
Release Notes:
- Fixed the `AddSelectionToThread` action showing up when `disable_ai`
is true
- Improved the `AddSelectionToThread` action display by only making it
available when there are selections in the editor
28a8515
shell_env: Wrap error context in format! where missing (#42267)
Click to expand commit body
Release Notes:
- N/A
Jakub Konka
created
a2c2c61
Add helix keymap to delete without yanking (#41988)
Click to expand commit body
Added previously missing keymap for helix deleting without yank. Action
"editor::Delete" is mapped to "Ald-d" as in
https://docs.helix-editor.com/master/keymap.html#changes
Release Notes:
- N/A
boris.zalman
created
77667f4
Remove Markdown CodeBlock metadata and Custom rendering (#42211)
Click to expand commit body
Follow up #40736
Clean up `CodeBlockRenderer::Custom` related rendering per the previous
PR
[comment](https://github.com/zed-industries/zed/pull/40736#issuecomment-3503074893).
Additional note here:
1. The `Custom` variant in the enum `CodeBlockRenderer` will become not
useful since cleaning all code related to the custom rendering logic.
2. Need to further review the usage of code block `metadata` field in
`MarkdownTag::CodeBlock` enum.
I would like to have the team further review my note above so that we
can make sure it will be safe to clean it up and will not affect any
potential future features will be built on top of it. Thank you!
Release Notes:
- N/A
Xipeng Jin
created
b01a6fb
Fix missing highlight for macro_invocation bang (#41572)
Click to expand commit body
(Not sure if this was left out on purpose, but this makes things feel a
bit more consistent since [VS Code parses bang mark as part of the macro
name](https://github.com/microsoft/vscode/blob/main/extensions/rust/syntaxes/rust.tmLanguage.json#L889-L905))
Release Notes:
- Added the missing highlight for the bang mark in macro invocations.
| **Before** | **After** |
| :---: | :---: |
| <img width="684" height="222" alt="before"
src="https://github.com/user-attachments/assets/ae71eda3-76b5-4547-b2df-4e437a07abf5"
/> | <img width="646" height="236" alt="fixed"
src="https://github.com/user-attachments/assets/500deda5-d6d8-439c-8824-65c2fb0a5daa"
/> |
Hyeondong Lee
created
44d91c1
docs: Explain what scrollbar marks represent (#42130)
Click to expand commit body
## Summary
Adds explanations for what each type of scrollbar indicator visually
represents in the editor.
## Description
This PR addresses the issue where users didn't understand what the
colored marks on the scrollbar mean. The existing documentation
explained how to toggle each type of mark on/off, but didn't explain
what they actually represent.
This adds a brief, clear explanation after each scrollbar indicator
setting describing what that indicator shows (e.g., "Git diff indicators
appear as colored marks showing lines that have been added, modified, or
deleted compared to the git HEAD").
## Fixes
Closes #31794
## Test Plan
- Documentation follows the existing style and format of
`docs/src/configuring-zed.md`
- Each explanation is concise and immediately follows the setting
description
- Language is clear and user-friendly
Release Notes:
- N/A
Roland Rodriguez
created
d187cbb
Add comment injection support to remaining languages (#41710)
Click to expand commit body
Release Notes:
- Added support for comment language injections for remaining built-in
languages and multi-line support for Rust
Since we removed the filtering step during context gathering, we want
the model to perform more targeted searches. This PR tweaks search tool
schema allowing the model to search within syntax nodes such as `impl`
blocks or methods.
This is what the query schema looks like now:
```rust
/// Search for relevant code by path, syntax hierarchy, and content.
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
pub struct SearchToolQuery {
/// 1. A glob pattern to match file paths in the codebase to search in.
pub glob: String,
/// 2. Regular expressions to match syntax nodes **by their first line** and hierarchy.
///
/// Subsequent regexes match nodes within the full content of the nodes matched by the previous regexes.
///
/// Example: Searching for a `User` class
/// ["class\s+User"]
///
/// Example: Searching for a `get_full_name` method under a `User` class
/// ["class\s+User", "def\sget_full_name"]
///
/// Skip this field to match on content alone.
#[schemars(length(max = 3))]
#[serde(default)]
pub syntax_node: Vec<String>,
/// 3. An optional regular expression to match the final content that should appear in the results.
///
/// - Content will be matched within all lines of the matched syntax nodes.
/// - If syntax node regexes are provided, this field can be skipped to include as much of the node itself as possible.
/// - If no syntax node regexes are provided, the content will be matched within the entire file.
pub content: Option<String>,
}
```
We'll need to keep refining this, but the core implementation is ready.
Release Notes:
- N/A
---------
Co-authored-by: Ben <ben@zed.dev>
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Agus Zubiaga
,
Ben
,
Max
, and
Max Brunsfeld
created
96445b9
Keep old bracket highlights for the same version
309947a
editor: Allow clicking on excerpts with alt key to open file path (#42235)
Click to expand commit body
#42021 Made clicking on an excerpt title toggle it. This PR brings back
the old behavior if a user is pressing the Alt key when clicking on an
excerpt title.
Release Notes:
- N/A
---------
Co-authored-by: Remco Smits <djsmits12@gmail.com>
Anthony Eid
and
Remco Smits
created
0881e54
terminal: Spawn terminal process on main thread on unix (#42234)
Click to expand commit body
Otherwise the terminal will not process the signals correctly
Release Notes:
- Fixed ctrl+c and friends not working in the terminal on macOS and
linux