62 Commits
Author SHA1 Message Date
Kunall Banerjee 4155155572 acp: Poll the client connection future on a dedicated thread (#62259)
Some context behind this change: I’ve been meaning to look into this
because I kept running into this crash when working on
[other](https://github.com/zed-industries/zed/issues/61040) fixes.
Everything worked fine in dev builds, right up until you tried to create
a new Agent Thread using an ACP adapter. The crash reports in this
instance were throwing me off: I was seeing different things each time.

So, I had Fable look into this. It did so by binary-searching the
minimum thread stack on which a probe replicating Zed’s exact handler
chain can dispatch one message. Full methodology, probe source, and raw
numbers can be found in [this
gist](https://gist.github.com/yeskunall/2ac2b00f51389d9388d607974f6f8a04).
The results of the probe are as follows:

| SDK | Minimum stack (dev profile) | vs. 512 KiB GCD budget |
|---|---|---|
| 1.3.0 | 409,600–413,696 B | fit, ~100 KiB headroom |
| 2.0.0 | 507,904–512,000 B | entire budget before runtime overhead |

The oversized frames are monomorphized into `agent_servers`, not the SDK
crate -- a `[profile.dev.package]` opt-level override on
`agent-client-protocol` does **not** fix this (see gist), and optimized
builds collapse the frames entirely, which is why only dev builds
crashed. It found that the real signature is `fault_address ==
stack_pointer` on a `com.apple.root.default-qos` thread inside the ACP
dispatch specialization, which I then had it verify across six local
`.ips` reports. It seems in #61570, we pushed the dispatch chain past
the GCD budget, explained further below:

`AcpConnection::stdio` polled the ACP client connection future via
`background_spawn`, which on macOS executes runnables on
[GCD’s](https://developer.apple.com/documentation/DISPATCH) global-queue
workers. Those threads have kernel-fixed, unconfigurable [512 KiB
stacks](https://github.com/apple-oss-distributions/libpthread/blob/42d026df5b07825070f60134b980a1ec2552dfee/kern/kern_internal.h#L154).
In unoptimized builds, the SDK’s chained-handler dispatch needs **~0.5
MiB of stack per inbound message** (again, see linked gist), so the
first message overflows the guard page and takes the process down.

Therefore, this 512 KiB constraint is **macOS-only**. Linux doesn’t use
GCD -- GPUI [spawns its own `std::thread`
workers](https://github.com/zed-industries/zed/blob/2ade98f6a9320b9c7d6e65398fc4c364c367c1bd/crates/gpui_linux/src/linux/dispatcher.rs#L39)
([2 MiB Rust
default](https://github.com/rust-lang/rust/blob/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/thread/unix.rs#L26)).
Windows uses [the OS thread
pool](https://github.com/zed-industries/zed/blob/2ade98f6a9320b9c7d6e65398fc4c364c367c1bd/crates/gpui_windows/src/dispatcher.rs#L68),
which [inherits the executable’s stack
reserve](https://github.com/MicrosoftDocs/sdk-api/blob/4502fff176b3b56beddb6a63c9f980377b11ba9b/sdk-api-src/content/threadpoolapiset/nf-threadpoolapiset-setthreadpoolstackinformation.md?plain=1#L58)
-- [1 MB linker
default](https://github.com/MicrosoftDocs/win32/blob/2eb6588c6703d31599285bbb06563c3d41b57590/desktop-src/ProcThread/thread-stack-size.md?plain=1#L17),
but Zed already bumps it to 8 MiB in
[crates/zed/build.rs:88](https://github.com/zed-industries/zed/blob/2ade98f6a9320b9c7d6e65398fc4c364c367c1bd/crates/zed/build.rs#L88)
(see [TODO
comment](https://github.com/zed-industries/zed/blob/2ade98f6a9320b9c7d6e65398fc4c364c367c1bd/crates/zed/build.rs#L87)).

---

Release Notes:

- N/A
2026-08-15 00:30:00 +00:00
Kunall Banerjee a884bd5438 docs: Enable smart punctuation (#62440)
> “Smart quotes” are the ideal form of quotation marks and apostrophes,
and are commonly curly or sloped. "Dumb quotes," or straight quotes, are
a vestigial constraint from typewriters when using one key for two
different marks helped save space on a keyboard.

Also helps us be consistent. I’m going to make a PR to our marketing
site to fix these issues as well, to bring further consistency to our
copy (docs / marketing / otherwise). Starting with v0.5.0 and up,
[`smart-punctuation`](https://github.com/rust-lang/mdBook/blob/6bf7fadc295a862f1f4b2f2d4a9c4c0b1e998dff/CHANGELOG.md#config-changes)
is enabled by default, so we just need this temporarily.

Good read: https://smartquotesforsmartpeople.com/

---

Release Notes:

- N/A
2026-08-10 16:57:58 +00:00
Kunall Banerjee 296508b04d file_finder: Fix path:line navigation when target file is already open (#55875)
Three pieces of state combined to break `path:line` queries when the
target file was already open:

- The `CreateNew` lookup ran against `query.raw_query.as_str()`, so a
path with a row suffix never matched the existing file and a stray
`Create file: foo.rs:3` row was always pushed.

- `calculate_selected_index` applied `skip_focus_for_active_in_search`
even when the query carried a row/column, jumping past the file the user
was asking to navigate inside.

- The preserved-selection path only invalidated on `path_query()`
changes. Appending `:3` to a typed-out path therefore kept the
previously skipped-to fuzzy neighbor selected, hiding the fix above when
the query was built up character by character.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #55551

Release Notes:

- Fixed File Finder offering to create a file instead of navigating to a
line when the target file is already open
2026-07-30 19:48:30 +00:00
Kunall BanerjeeandMrSubidubi 66c0db4d3c grammars: Support linked editing of custom elements in JSX and TSX (#58578)
JSX and TSX only treated the dot as a tag-name character during
linked-editing, so renaming a tag to a custom element name such as
`custom-el` stopped mirroring the closing tag at the dash.

A follow-up to https://github.com/zed-industries/zed/pull/43179, really.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #58553.

Release Notes:

- Added support for linked-editing of custom elements in JSX/TSX

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-07-29 21:23:53 +00:00
Kunall BanerjeeandMrSubidubi f4faad1aba grammars: Enable Emmet completions in return and arrow function bodies (#53688)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #52205.

Release Notes:

- Enabled Emmet completions in return and arrow function bodies for
JSX/TSX

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-07-29 21:07:33 +00:00
Kunall Banerjee 721c5bf42f docs: Clarify window_decorations currently only works on Linux (#61883)
Also add the setting to our docs at https://zed.dev/docs -- it’s
currently missing. Updated a stale comment as well -- window decorations
were [always supported on
X11](https://github.com/zed-industries/zed/pull/13611)?

Closes #61788.

---

Release Notes:

- N/A
2026-07-29 21:06:03 +00:00
Kunall Banerjee 1be046a007 collab_ui: Open contact finder with empty query (#61363)
I ran into this while conducting some tests. If you search for a channel
name in the Collab Panel and then try to “Add a Contact,” it seeds the
query with your search term from the current contents of that channel
search editor.

Opted to just drop that method altogether as it’s not being used
anywhere else.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

---

Release Notes:

- Fixed the contact finder inheriting the channel search query in the
Collab Panel
2026-07-29 20:58:08 +00:00
Kunall Banerjee 1a38433dee settings_ui: Open ACP docs from Settings UI correctly (#60881)
## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #60822.

---

Release Notes:

- Fixed broken handler for opening ACP documentation from the Settings
UI
2026-07-13 16:38:11 +00:00
Kunall Banerjee a39a18de33 settings_ui: Route Skill tool permissions to its own config page (#59728)
The Skill page now renders the correct “Skill Tool” title, the
skill-specific explanation, and reads/writes the `skill` tool’s own
rules.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

## Showcase

| Before | After |
|--------|--------|
| <img width="956" height="816" alt="image"
src="https://github.com/user-attachments/assets/e88ef051-aa5c-46de-9843-e3400fd63a7f"
/> | <img width="956" height="816" alt="image"
src="https://github.com/user-attachments/assets/77b8223d-bd97-4ac2-901d-15cf368341ec"
/> |

Closes #59720.

---

Release Notes:

- Fixed the Skill tool’s “Configure” button in the Agent’s Tool
Permissions settings opening the Terminal tool’s configuration instead
of the Skill tool’s own permission rules
2026-06-24 05:43:59 +00:00
Kunall BanerjeeandSmit Barmase 5449aa67df languages: Fix Debug Test for Go subtests (#53680)
The `go-subtest` task template wrapped the `-run` arg in single quotes
for shell safety. This works for Run Test (terminal strips quotes), but
Debug Test sends the arg through Delve’s DAP protocol with no shell
involved, so the literal quote characters ended up in the regex and
prevented any match.

All other Go task templates (`go-test`, `go-testify-suite`,
`go-table-test-case`) use the backslash-escaped format which `GoLocator`
already knows how to handle. Align the `go-subtest` template to the same
format.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #53230.

Release Notes:

- Fixed Debug Test for Go subtests

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-06-23 11:10:05 +00:00
Kunall Banerjee 3a3adc19d7 opencode: Model updates (#59236)
Fresh new updates from OpenCode dropped recently.

Closes #59225.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Release Notes:

- Added GLM 5.2 + Kimi K2.7 Code (OpenCode Go) and DeepSeek V4 Pro
(OpenCode Zen); removed/restricted models deprecated upstream (MiniMax
M3 Free removed; GLM 5, Kimi K2.5, MiniMax M2.5 now Zen-only)
2026-06-22 18:12:49 +00:00
Kunall Banerjee cf973e35dd recent_projects: Show keybindings in action button tooltips (#59030)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #59024.

Release Notes:

- Fixed missing keybinding hints in the Recent Projects picker action
button tooltips
2026-06-15 08:53:41 +00:00
Kunall Banerjeeandzed-zippy[bot] c404c02d15 Document auto_update_extensions setting (#58954)
Originally added in https://github.com/zed-industries/zed/pull/46130 but
accidentally dropped in
https://github.com/zed-industries/zed/pull/45276. Bring it back, as
we’ve actually had users ask about this previously and
[recently](https://zed-industries.slack.com/archives/C0AJ37231HS/p1779466189363979),
as well.

Self-Review Checklist:

- [ ] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable


Release Notes:

- N/A

---------

Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-06-10 15:50:24 +00:00
Kunall Banerjee 714a12f478 editor: Register toggle inline values action (#58921)
The `ToggleInlineValues` action was added when inline value hints were
introduced, but the action was never registered, so it was not
dispatchable: it never appeared in the command palette and any
keybinding bound to it had no effect.

Follow-up to #28656.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #58890.

Release Notes:

- Fixed “editor: toggle inline values” not appearing in the command
palette or responding to keybindings
2026-06-09 13:34:42 +00:00
Kunall Banerjee 5b864275f2 grammars: Stop treating fish modelines as Shell Script (#58550)
Bash listed `fish` in `modeline_aliases`, so a `filetype=fish` modeline
resolved to Shell Script before the real [Fish
language](https://zed.dev/extensions/fish) could match by name or
grammar. Fish is intentionally non-POSIX, so the Bash grammar is the
wrong fit here.

| Header | After |
|--------|--------|
| <img width="1912" height="1237" alt="image"
src="https://github.com/user-attachments/assets/ed212a24-92aa-4ede-a432-47c6c6724f08"
/> | <img width="1732" height="1125" alt="image"
src="https://github.com/user-attachments/assets/934140b3-9473-4cca-a3e5-84aa3c4d827a"
/> |

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #58532.

Release Notes:

- Dropped `fish` from `modeline_aliases` which forced the file to be
detected as Shell Script instead of Fish
2026-06-04 21:48:52 +00:00
Kunall Banerjee 8ab36ea921 git_ui: Fix commit modal buttons hidden at small ui_font_size (#56366)
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #55939.

Release Notes:

- Fixed commit modal buttons being hidden for `ui_font_size` values
2026-05-26 13:42:51 +00:00
Kunall Banerjee e76d89e6a2 project_panel: Color worktree-modified files as modified, not warning (#57716)
I use the One Dark theme, so to actually test if my fix worked, I had to
also do:

```jsonc
"experimental.theme_overrides": {
  "warning": "#ff0000",
  "modified": "#00ff00",
},
```

| Before | After |
|--------|--------|
| <img width="676" height="254" alt="image"
src="https://github.com/user-attachments/assets/a2831667-1113-49ac-b6aa-1221c71bf997"
/> | <img width="299" height="137" alt="image"
src="https://github.com/user-attachments/assets/ad6e85aa-ba24-47ad-b69d-6d0c3aa3a407"
/> |

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #57443.

Release Notes:

- Fixed Project Panel git status indicator showing modified files with a
warning color instead of the modified color
2026-05-26 13:41:44 +00:00
Kunall BanerjeeandBennet Bo Fenner e5e67a8c28 agent_ui: Trigger @-mention menu after opening brackets (#55504)
Typing `@` immediately after `(`, `[`, or `{` did not open the Agent
Panel’s @-mention completion menu, so `(@file)`, `[@file]`, and
`{@file}` were unusable. This has been bothering me for quite some time
now. Overall, I believe this is a QoL improvement, albeit a small one.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Release Notes:

- Fixed the Agent Panel’s @-mention menu not appearing when `@`
immediately follows `(`, `[`, or `{`.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-05-19 10:05:49 +00:00
Kunall Banerjee 8214d6489c settings_ui: Match all query words in search (#56835)
Settings search treated multi-word queries as OR, so “tab size” matched
any document whose words contained a prefix of “tab” or “size” --
flooding results with unrelated entries like “Show Tab Bar” and “Maximum
Tabs”.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #56244.

Release Notes:

- Fixed settings UI search returning unrelated results for multi-word
queries
2026-05-15 14:17:57 +00:00
Kunall Banerjee 7beb533da9 auto_update: Fix Windows installer task arguments syntax (#50464)
- The Inno Setup installer requires tasks to be specified with the
`/MERGETASKS` flag instead of bare arguments.
- Removed the `quicklaunchicon` task as it’s no longer relevant for
modern Windows 10 and up.

Ref: https://zed.dev/docs/installation#windows-1
Ref: https://documentation.help/Inno-Setup/topic_setupcmdline.htm

Closes #47570.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed Windows installer task arguments syntax
2026-05-11 05:31:58 +00:00
Kunall BanerjeeandMarshall Bowers 986087a4ef docs: Update broken references (#48608)
I might turn this into a big PR with multiple fixes. So no, this is not
going stale. I’m updating this as and when I find broken refs or stale
content.

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2026-04-27 08:48:27 +00:00
Kunall Banerjee 2b81eb16d2 agent_ui: Allow selection of commands from tool calls (#50545)
Closes #50427.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

The changes respect your current theme + mimic the existing UI when it
comes to font size+weight.

<img width="437" height="131" alt="image"
src="https://github.com/user-attachments/assets/89f6c5d0-d1a3-478a-88e9-7d203240416d"
/>


https://github.com/user-attachments/assets/a5fb6c82-fffd-494f-a374-9296d1690736

Release Notes:

- Allow selection of commands from tool calls
2026-04-24 13:54:28 +00:00
Kunall Banerjee 85b74762c7 lsp: Fix vtsls completeFunctionCalls setting being ignored (#53285)
Some language servers (notably `vtsls` with `completeFunctionCalls`)
update `insertText/textEdit` during `completionItem/resolve` to add
snippet content like function call parentheses. Previously,
`Completion.new_text` was only set from the initial completion response
and never re-derived after resolve, so the snippet text was silently
discarded.

Re-derive `new_text` from the resolved `lsp_completion`. Only the text
content is updated -- replace/insert ranges are left as anchors from the
original response since the LSP ranges in the resolved text_edit are
stale when completions are cached across keystrokes (re: #34094).

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #53275.

Release Notes:

- Fixed the `vtsls` `completeFunctionCalls` setting being ignored
2026-04-23 12:02:11 +00:00
Kunall Banerjee f0b7108056 Fix Agent Panel font size incrementing by 2px instead of 1px (#53685)
Split the shared `AgentFontSize` in-memory global into separate
`AgentBufferFontSize` and `AgentUiFontSize` globals. Previously, both
`adjust_agent_ui_font_size` and `adjust_agent_buffer_font_size` read
from and wrote to the same global, so calling them back-to-back in
`handle_font_size_action` applied the delta twice.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #53368.

Release Notes:

- Fixed Agent Panel font size incrementing by 2px instead of 1px
2026-04-23 10:03:53 +00:00
Kunall Banerjee 177b1d87d3 terminal_view: Prevent local path resolution for remote terminals (#50268)
When opening a terminal in a remote project, skip local-only path
operations (home dir fallback, shell expansion, is_dir checks) so the
remote shell opens in the remote user’s home directory by default.

Closes #49613.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Prevent local path resolution for remote terminals
2026-04-23 08:41:05 +00:00
Kunall BanerjeeandBennet Bo Fenner 9d4e9d609a terminal: Handle menu::SecondaryConfirm properly (#48764)
Closes #48642.

- [ ] Tests or screenshots needed? - Tests written by AI. Not sure if
the test suite is setup correctly. I’ll come back later and see if the
tests are utter BS or not.
- [ ] Code Reviewed
- [x] Manual QA


Release Notes:

- Handle `menu::SecondaryConfirm` properly in the terminal

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
2026-04-22 09:50:01 +00:00
Kunall Banerjee 9ff7546db1 Fix Node.js language servers failing with --user-data-dir on Windows (#50767)
Closes #50677.


Release Notes:

- Fixed Node.js language servers failing with `--user-data-dir` on
Windows
2026-04-21 07:57:35 +02:00
Kunall Banerjee 3663fdb5cc dev_container: Make all PortAttributes fields optional (#53799)
The Dev Container [metadata
reference](https://containers.dev/implementors/json_reference/#port-attributes)
defines all five `PortAttributes` fields (`elevateIfNeeded`, `label`,
`onAutoForward`, `protocol`, `requireLocalPort`) as optional with
defined defaults. The struct required all of them, causing
deserialization failures for any `portsAttributes` entry that omitted a
field.

Add `#[serde(default)]` to each field, wrap `label` and `protocol` in
`Option<T>` (spec default: not set), and derive `Default` on
`OnAutoForward` with `Notify` as the default variant (spec default:
`notify`). The bool fields already default to false via
`serde(default)`, matching the spec.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [ ] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [ ] Performance impact has been considered and is acceptable

Closes #53686.

Release Notes:

- Made all `PortAttributes` fields optional according to the Dev
Container spec
2026-04-20 10:05:12 -07:00
4ee44c648b settings: Remove settings field from HTTP context_servers (#48003)
HTTP context servers don’t support the settings field, so remove it
during migration to avoid confusion. Other context server types are
unaffected.

Closes #44786.


https://github.com/user-attachments/assets/4cabf405-c9e7-4d6e-a43d-f642fc4771e0



Release Notes:

- Removed deprecated key from HTTP `context_servers`

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>
2026-04-15 15:12:32 +02:00
Kunall Banerjee c39c8e6f00 settings_content: Fix hover descriptions for newtype wrapper settings (#51705)
Happened to notice it when debugging some stuff. I initially only caught
`git_hosting_providers`, but AI found another instance.

| `disable_ai` | `git_hosting_providers` |
|--------|--------|
| <img width="596" height="125" alt="image"
src="https://github.com/user-attachments/assets/1f829a9f-9e6e-45c0-8fb1-585d3bb3cfc3"
/> | <img width="634" height="207" alt="image"
src="https://github.com/user-attachments/assets/be2504f4-0b52-45a5-a859-b7609a366d0e"
/> |

Release Notes:

- Fixed an issue where some settings used the wrong documentation in LSP hover documentation
2026-03-26 07:44:05 -04:00
Kunall Banerjee 59f02334e6 docs: Add Vue language server configuration (#51356)
Follow-up to https://github.com/zed-extensions/vue/pull/87.

Release Notes:

- N/A
2026-03-12 16:30:21 +00:00
Kunall Banerjee 7ee35a2ccc markdown_preview: Enable parser options individually (#50440)
Closes #50170.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Enable parser options individually to avoid rendering issues
2026-03-05 14:00:08 +00:00
Kunall Banerjee 0b39e529e4 Change miniprofiler file extension to .miniprof.json (#50429)
The main intention behind this change is to support uploading these
files
to GitHub. `.miniprof` is not a supported extension by GitHub, but
`.json` is.

The only “downside” to this change is that the cleanup process will have
to look
for `.miniprof` files AND `.miniprof.json` files. Maybe we can remove
that change
at a later date?

Ref:
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Changed miniprofiler file extension to `.miniprof.json`
2026-03-04 07:18:52 +00:00
Kunall Banerjee bba3e6d4bd Add libva-devel as required deps for dnf section (#50476)
If I follow the steps outlined in https://zed.dev/docs/development/linux
then `cargo run` on my Fedora workstation fails because the install
script is missing `libva-devel` as a required dependency under `dnf` /
`yum` sections.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-02 09:37:06 -07:00
Kunall Banerjee 0dd8d1af22 search: Fix popover spacing for split diff buttons (#49655)
Closes #49571.

| Before | After |
|--------|--------|
| <img width="455" height="141" alt="image"
src="https://github.com/user-attachments/assets/538b011d-40e7-4ca5-b3dd-b1b8b993fd8f"
/> | <img width="475" height="187" alt="image"
src="https://github.com/user-attachments/assets/b091320e-726a-4cc7-b9d9-85c27f04c75a"
/> |

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed popover spacing for split diff buttons
2026-03-01 10:11:15 +00:00
Kunall Banerjee ac8283974b docs: Point to the right Bash extension repository (#50271)
Closes #50261.

Before you mark this PR as ready for review, make sure that you have:
- ~[ ] Added a solid test coverage and/or screenshots from doing manual
testing~ N/A
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-02-27 06:24:34 +00:00
Kunall Banerjee 890f97ad17 languages: Reorder type identifier highlights in JavaScript (#49325)
Move general type identifier rules before class-specific ones to ensure
proper precedence in the syntax highlighting query.

Closes #49226.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed an issue where class names were not highlighted correctly in
JavaScript files
2026-02-27 03:14:40 +00:00
Kunall Banerjee 9198e822d1 settings: Remove unused file_finder.git_status setting (#49889)
From the looks of it, this setting was never used by the File Finder. It
also doesn’t make much sense to show git info in the File Finder. The
Project Panel already exposes this information to the user.

Closes #49709.

| Before | After |
|--------|--------|
| <img width="1012" height="769" alt="image"
src="https://github.com/user-attachments/assets/9666ace7-38cb-4789-8681-80c15b8ac3fd"
/> | <img width="1012" height="769" alt="image"
src="https://github.com/user-attachments/assets/5e0505d7-3ede-46fa-bb33-a44865a9f64b"
/> |

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Removed unused `file_finder.git_status` setting
2026-02-26 18:53:17 +00:00
Kunall Banerjee c6fea6e037 languages: Add .prettierrc to JSON path_suffixes (#50156)
`.prettierrc` can be [written](https://prettier.io/docs/configuration)
in either JSON or YAML. Whether you write JSON or YAML, VS Code will
default to recognizing it as JSON. See screenshot.

Without this change, the user is forced to do:

```jsonc
"file_types": {
  "JSON": [".prettierrc"],
},
```

Small QoL improvement.

| VS Code | Zed (after the changes) |
|--------|--------|
| <img width="1732" height="1125" alt="image"
src="https://github.com/user-attachments/assets/1f9533fc-a77a-40f3-b8a5-6c36faeccffd"
/> | <img width="1732" height="1125" alt="image"
src="https://github.com/user-attachments/assets/bef8ca94-006c-44bd-ac1c-59f915b67123"
/> |

Closes #50072.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Added `.prettierrc` to JSON `path_suffixes`
2026-02-26 17:07:25 +00:00
Kunall Banerjee 9ca078c36e thread_view: Add fallback error handling for connect failures (#50063)
Following up from https://github.com/zed-industries/zed/pull/50061: when
connecting to an ACP adapter fails before any thread is active, errors
would not display in the Agent Panel. Falling back to
`handle_load_error` to show the error UI properly as it already handles
this.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Added fallback error handling for connect failures in the Agent Panel
2026-02-25 09:25:14 +01:00
Kunall Banerjee de7316a7c8 agent_server_store: Broaden Windows asset detection to all architectures (#50061)
Previously only `x86_64` Windows used ZIP archives, but ARM64 Windows
builds also use ZIP format.

Closes #50039.

> [!NOTE]
> The P1 is two-fold: the user cannot download the ZIP file on Windows
ARM. BUT -- the Agent Panel is stalled because of that. This ONLY makes
it so that the ZIP download doesn’t fail, but if for some reason the
download fails, the panel is genuinely stuck with no recovery path.
Every restart attempts the same download, hits the same GZIP error, and
silently drops it again.

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Broaden Windows asset detection to all architectures
2026-02-24 23:27:52 -07:00
Kunall Banerjeeanddino 90227602bb editor: Fix clipboard selection range for multi-line copy-and-trim (#48977)
When copying multiple selections with copy-and-trim, create a single
clipboard selection spanning the original buffer range rather than one
selection per trimmed line. This preserves correct paste behavior in Vim
mode when pasting trimmed content.

Closes #48869.

Release Notes:

- Fixed clipboard selection range for multi-line copy-and-trim

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-02-24 17:14:47 +00:00
Kunall Banerjee 8ce8e4c601 context_menu: Fix certain menu items not reacting to click events (#49557)
Use `Workspace::for_window` instead of `window.root().flatten()`.



https://github.com/user-attachments/assets/3ea6dae3-166d-49e4-9fff-8256e13cc2bf



https://github.com/user-attachments/assets/eb8d9394-5f71-4df6-b0db-c1c8078f1b9a



Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed certain context menu items not reacting to click events
2026-02-23 18:58:34 +00:00
Kunall Banerjee 00250b90c6 Respect ZDOTDIR environment variable iff set (#49913)
When `ZDOTDIR` is set, `zsh` reads its configuration from that directory
instead of the user’s `$HOME` directory.

| Setup | `ZDOTDIR` set? | Script writes to | Zsh reads from | Match? |
|---|---|---|---|---|
| XDG + `ZDOTDIR` | ✅ | `$ZDOTDIR/.zshrc` | `$ZDOTDIR/.zshrc` | ✅ |
| XDG without `ZDOTDIR` | ❌ | `$HOME/.zshrc` | `$HOME/.zshrc` | ✅ |
| No XDG at all | ❌ | `$HOME/.zshrc` | `$HOME/.zshrc` | ✅ |


Ref: https://zsh.sourceforge.io/Intro/intro_3.html

Release Notes:

- N/A
2026-02-23 18:04:16 +00:00
0eaf706f82 docs: Update docs for external agents (Claude Agent) (#49739)
- Documentation URLs have been updated to point to `code.claude.com`
instead. This’ll prevent an unnecessary redirect for everyone.
- Added note about Agent teams feature not yet supported.

Closes #49663.

Before you mark this PR as ready for review, make sure that you have:
- ~[ ] Added a solid test coverage and/or screenshots from doing manual
testing~ N/A
- ~[ ] Done a self-review taking into account security and performance
aspects~ N/A
- ~[ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)~
N/A

Release Notes:

- N/A

---------

Co-authored-by: Katie Geer <katie@zed.dev>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 13:15:30 -08:00
Kunall Banerjeeanddino 8839d27a65 buffer_search: Don’t hide UI icons if search query is too large (#49493)
Remove tracking of editor width in buffer search, removing the behavior
where the UI icons used in the search bar would be hidden if the search
query need to fill the whole element's width.

Closes #49446.

Release Notes:

- Don’t hide UI icons in buffer search if search query is too large

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-02-19 15:57:50 +00:00
Kunall Banerjee 59af47a68c Fix feature request guidelines link in discussion template (#49129)
Seems like a small oversight, or rather, we didn’t have this discussion
at that point? Either way @JosephTLyons feel free to merge once you
confirm this is the intended URL.

Closes #49119.

Release Notes:

- N/A
2026-02-13 20:27:01 +00:00
Kunall Banerjee 5bfeff2478 agent_ui: Insert images at cursor position (#48779)
With #47768, all image pills automatically got snapped to the end of the
prompt message. This behavior is unexpected as other pills (`@symbol`,
`@thread` et al) respect the cursor position.

Closes #48731.

- [ ] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Insert images at cursor position in the Agent Panel
2026-02-09 09:10:24 -05:00
Kunall Banerjee 36111c6cbf keymap_editor: Add alt-l keybinding for cycling favorite models (#48390)
The `alt-tab` keybinding doesn’t work properly under the `AgentPanel`
context on Windows and certain Linux distros, so `alt-l` is provided as
an alternative for the same action.

In my testing, I could not trigger the `AcpThread > Editor` context, but
I added the keybinding there too just in case.

Closes #48347.

Release Notes:

- Added an alternate keybinding for `agent::CycleFavoriteModels` on
Linux and Windows to prevent conflict with global app switcher
2026-02-06 21:54:04 -05:00
Kunall Banerjee 9e7419c70c agent_settings: Fix Bedrock model catalog URL (#48382)
The previous URL pointed to the model access page which no longer exists
(not a 404, tho). The model catalog page is the current location for
selecting and requesting access to Bedrock models.

| Before | After |
|--------|--------|
| <img width="1732" height="1125" alt="Screenshot 2026-02-04 at 12 50
13"
src="https://github.com/user-attachments/assets/f513e7c9-aa70-439a-afd0-ef8177ada463"
/> | <img width="1732" height="1125" alt="Screenshot 2026-02-04 at 12 52
11"
src="https://github.com/user-attachments/assets/6609215e-1bbb-4ed1-b57d-422ed7893498"
/> |

Release Notes:

- Fixed Bedrock model catalog URL in Agent Panel settings
2026-02-05 07:20:16 -05:00
Kunall Banerjee cd3b7685f2 languages: Remove duplicate keywords in TSX syntax highlighting (#48196)
Closes #48178

Release Notes:

- Fixed issue where certain keywords were incorrectly highlighted in TSX
files
2026-02-03 14:55:26 -05:00
Kunall Banerjee 09c6be0404 agent_thread: Improve wording of confirmation label text in agent thread (#48202)
Waiting is usually followed by “for,” which would make the label too
wordy. Awaiting is transitive and requires a direct object, in this case
your confirmation.

Really not a crazy change, but something that has been bothering me for
quite some time now. 😅

Release Notes:

- Improved wording of confirmation label text in agent thread
2026-02-03 14:47:04 -05:00
Kunall Banerjee 9a95d4fb18 docs: document right options for lsp_document_colors (#48170)
This probably should have been updated when
https://github.com/zed-industries/zed/pull/32816 landed.

Release Notes:

- N/A
2026-02-02 06:53:31 +00:00
Kunall BanerjeeandJohn D. Swanson cde7c1e0da Add security warnings to issue templates (#47957)
Warn users to review and remove secrets from logs and settings before
posting them in bug reports and crash reports.

Release Notes:

- N/A

---------

Co-authored-by: John D. Swanson <swannysec@users.noreply.github.com>
2026-01-29 14:17:53 -05:00
Kunall Banerjee d9a4e30625 Update community champions list (#47785)
Release Notes:

- N/A
2026-01-28 11:02:34 -05:00
Kunall Banerjee d6fe13454c agent_ui: Use .w_full() instead of .size_full() when rendering markdown tables in lists (#46783)
This way, the table:
- Determines its height by the grid’s content
- Still keeps `width: 100%` so it fills its container horizontally

| Before | After |
|--------|--------|
| <img width="1732" height="1125" alt="image"
src="https://github.com/user-attachments/assets/5d739664-5793-4c16-a765-dc373c7cb10f"
/> | <img width="1732" height="1125" alt="image"
src="https://github.com/user-attachments/assets/c857d28b-67c2-4ba1-b4a6-869a154b050b"
/> |

Closes #46768

Release Notes:

- Fixed issue where markdown tables rendered within lists would overlap
items above/below it
2026-01-19 12:05:13 -05:00
Kunall Banerjee f829170a53 docs: Add documentation for text_rendering_mode (#46358)
We added support for it in
https://github.com/zed-industries/zed/pull/45423. It’s already in
preview, but not yet in stable. So I’m going to keep this in my drafts
till then.

Release Notes:

- N/A
2026-01-16 20:16:47 -05:00
Kunall Banerjee 34cc7ea64b docs: Add note about conflicting global macOS shortcut (#45186)
This is already noted in our `default-macos.json`, but was never
surfaced in our docs for some reason. A user noted their LSP completions
were not working because they were not aware of the conflicting global
shortcut.

Ref:
https://github.com/zed-industries/zed/issues/44970#issuecomment-3664118523

Release Notes:

- N/A
2025-12-18 02:13:59 +00:00
Kunall Banerjee 5746057be9 docs: Drop deprecated key from settings for Agent Panel (#44923)
The `version` key was deprecated a while ago.

Release Notes:

- N/A
2025-12-15 17:04:03 -05:00
Kunall Banerjee 449a2e5250 docs: Point to the right URL for Regal LSP (#44318)
Release Notes:

- N/A
2025-12-07 05:29:58 +00:00
Kunall Banerjee ebca44eec9 docs: Point to the right URL for Astro LSP (#44314)
The original URL points to a deprecated repo.

Release Notes:

- N/A
2025-12-06 19:14:13 -05:00
Kunall Banerjee 49793082be Rename issue templates (#43893)
Closes #43892.

Release Notes:

- N/A
2025-12-01 09:03:22 -05:00