Commit graph

34639 commits

Author SHA1 Message Date
Rutger Cappendijk
52182e43cd
agent_ui: Add ability to add terminal output to agent context (#47637)
Summary

This PR adds the ability to quote terminal selections into Agent
threads, similar to how editor selections can be quoted. Users can now
select text in the terminal and add it as context to their agent
conversation.

### Features

- **Context menu**: Added "Add to Agent Thread" option to the terminal's
right-click menu (only shows when text is selected)
- **Keyboard shortcut**: The existing `cmd->` / `ctrl->` shortcut now
works in the terminal
- **Collapsed display**: Terminal output appears as a collapsed
"Terminal" crease in the chat, just like code references
- **Works with both thread types**: Supports both ACP-style threads
(Claude Code) and text threads

### Implementation

- Extended `quote_selection` handler to check for terminal panel focus
after checking for editor selections
- Terminal content is formatted as ` ```terminal` code blocks via new
`insert_terminal_crease` method
- Refactored crease insertion into `insert_crease_impl` helper to
support both code snippets (with `TextSnippet` icon) and terminal output
(with `Terminal` icon)
- Added automatic detection and folding of ` ```terminal` blocks in
`set_message` so terminal content stays collapsed in sent message
history
- Terminal creases use a trailing space instead of newline so cursor
behavior matches user expectations

### Demo

1. Select text in terminal
2. Right-click → "Add to Agent Thread" (or press `cmd->`)
3. Terminal content appears as collapsed "Terminal" block in chat
4. Send message - AI receives full terminal output, but chat history
shows it collapsed

### General note

I'm new to open source and the codebase in general so let me know if
anything should be different!
I tried to stay in line with other patterns I saw.
I didn't see a way to setup an end to end test with a real terminal so I
just added a unit test for the adding of the text to the chat, if it
exists and I missed it then I think the test coverage could be improved
with a test that uses a real terminal + running the command

<img width="431" height="148" alt="image"
src="https://github.com/user-attachments/assets/854732f9-2a7f-4f31-867e-d54af068c97c"
/>


Release Notes:

- agent: Added the ability to send selections from terminals into the
Agent thread

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-01-29 15:15:03 +00:00
Danilo Leal
d18d4b188c
thread view: Improve thinking mode toggle UI (#47945)
Add the icon to the left side of the message editor, add a new icon for
when the thinking mode is toggled on, and add a keybinding for the
action. Currently available under a feature flag-only but should be out
soon.

<img width="400" height="318" alt="Screenshot 2026-01-29 at 11  57@2x"
src="https://github.com/user-attachments/assets/e033ec83-746b-4fed-beb7-ed26e96cb60a"
/>

Release Notes:

- N/A
2026-01-29 12:11:13 -03:00
Danilo Leal
7161bf5940
thread view: Improve load errors UI (#47943)
Just using the existing `Callout` component and standardizing styles
with other errors.

<img width="520" height="478" alt="Screenshot 2026-01-29 at 11  07@2x"
src="https://github.com/user-attachments/assets/1f6f638c-326e-42c4-9972-293804aeae4d"
/>

Release Notes:

- N/A
2026-01-29 11:19:57 -03:00
Xiaobo Liu
2c4a823e70
project: Increase search detect yield threshold to 20KB (#47824)
Release Notes:

- Improved CPU switching frequency for project search

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2026-01-29 13:45:04 +01:00
Danilo Leal
723a58e9bf docs: Update content in the External Agents page (#47935)
Release Notes:

- N/A
2026-01-29 09:14:16 -03:00
Cameron Mcloughlin
4c8b699f03
agent_ui: Refactor in preparation for subagent permission work (#47874)
Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: MrSubidubi <dev@bahn.sh>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-01-29 10:53:53 +00:00
Richard Feldman
b7e11b38f4
Allow always_allow patterns for Nushell, Elvish, and Rc shells (#47908)
## Summary

This PR extends the `always_allow` tool permission patterns to work with
Nushell, Elvish, and Rc shells. Previously, these shells were
incorrectly excluded because they don't use `&&`/`||` operators for
command chaining. However, brush-parser can safely parse their command
syntax since they all use `;` for sequential execution.

## Changes

- Add `ShellKind::Nushell`, `ShellKind::Elvish`, and `ShellKind::Rc` to
`supports_posix_chaining()`
- Split `ShellKind::Unknown` into `ShellKind::UnknownWindows` and
`ShellKind::UnknownUnix` to preserve platform-specific fallback behavior
while still denying `always_allow` patterns for unrecognized shells
- Add comprehensive tests for the new shell support
- Clarify documentation about shell compatibility

## Shell Notes

- **Nushell**: Uses `;` for sequential execution. The `and`/`or`
keywords are boolean operators on values, not command chaining.
- **Elvish**: Uses `;` to separate pipelines. Does not have `&&` or `||`
operators. Its `and`/`or` are special commands operating on values.
- **Rc (Plan 9)**: Uses `;` for sequential execution and `|` for piping.
Does not have `&&`/`||` operators.

## Security

Unknown shells still return `false` from `supports_posix_chaining()`, so
`always_allow` patterns are denied for safety when we can't verify the
shell's syntax.

(No release notes because granular tool permissions are still
feature-flagged.)

Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-29 06:08:05 +00:00
Cole Miller
8bdfbfe591
git: Fix a couple of bugs with buffer headers in the side-by-side diff UI (#47809)
- Fix sticky buffer header being painted on top of the toolbar
- Fix buffer header click handlers and tooltips sometimes not working
(element ID collision issue)
- Deduplicate buffer header rendering code between split and normal
editors

Release Notes:

- N/A
2026-01-28 22:01:27 -05:00
Ben Kunkle
1870425b2b
ep_cli: rated-after: query (#47906)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 16:36:44 -08:00
Xin Zhao
05a021c4a3
docs: Correct action descriptions to reflect actual purpose (#46931)
Thanks @injust for pointing this out. It seems a few other action docs
were also copied from elsewhere and weren't updated to reflect their
actual purpose. This PR fixes those, though I may not have covered all
of them.

Closes #46832

Release Notes:

- N/A

---------

Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
2026-01-28 23:10:25 +00:00
Finn Evers
483e64a287
image_viewer: Compute better initial zoom level (#47886)
Closes Josephs note about that.

Release Notes:

- Preview only: Fixed an issue where images in the image viewer would
not fit the viewer initially.
2026-01-28 23:29:25 +01:00
Neel
9437e84465
Add student plan (#47866)
Release Notes:

- N/A
2026-01-28 21:34:10 +00:00
ozacod
3e7f0ce7b7
languages: Add highlighting for Go directives (#47621)
Closes #4381
Before:
<img width="394" height="176" alt="before"
src="https://github.com/user-attachments/assets/7b34b448-9fbc-4a69-abaf-8b621d22ef1e"
/>

After:
<img width="394" height="176" alt="after"
src="https://github.com/user-attachments/assets/388f997c-ca02-4fb4-b8db-4d6f7e9cd302"
/>

Release Notes:

- Added highlighting for Go directives
2026-01-28 21:16:33 +00:00
Finn Evers
97f0ab77ca
ci: Define default shell for all workflows (#47883)
GitHub allows defining a default shell for all jobs on the workflow
level, which we did not use before, yet practically did when it comes
down to our usage of `named::bash`. Since this makes stuff quite
verbose, I decided on using the defaults instead so the workflows become
somewhat easier to audit when reading the generated files.

Powershell steps continue to use Powershell, only the default for bash
scripts was modified.


Release Notes:

- N/A
2026-01-28 14:07:06 -07:00
Richard Feldman
dbeb0af9ad
Fix shell injection vulnerability in terminal tool permissions (#47807)
<img width="1110" height="280" alt="Screenshot 2026-01-28 at 3 35 52 PM"
src="https://github.com/user-attachments/assets/4d467e2c-2e7b-4ec7-bc87-6f0df8e667f0"
/>

<img width="1094" height="411" alt="Screenshot 2026-01-28 at 3 40 54 PM"
src="https://github.com/user-attachments/assets/f559df93-e72e-4457-ba1b-f7d6239f3285"
/>


Previously, if a user configured `^ls` as an always-allow pattern, an
attacker could craft a command like `ls && rm -rf /` which would be
auto-approved because the regex only matched the beginning of the
command string.

Now the command is parsed into individual sub-commands (`ls`, `rm -rf
/`) and EACH sub-command must match an allow pattern for auto-approval.
This prevents shell injection attacks using operators like:
- `&&` and `||` (boolean operators)
- `;` and `&` (sequential/background execution)
- `|` (pipes)
- Newlines
- Command substitution (`$()` and backticks)
- Process substitution (`<()` and `>()`)

## Matching Logic

- **always_deny**: if ANY sub-command matches, deny the entire command
- **always_confirm**: if ANY sub-command matches, require confirmation
(unless always_deny matched, in which case deny)
- **always_allow**: ALL sub-commands must match for auto-approval
(unless always_confirm or always_deny matched, in which case defer to
those)
- If parsing fails, or if the shell is unsupported, then always_allow is
disabled for this command

As usual, `always_allow_tool_actions` supercedes all of these. If it is
`true`, then we always allow all tool calls, no questions asked.

## Shell Compatibility

The shell parser only supports POSIX-like command chaining syntax (`&&`,
`||`, `;`, `|`).

**Supported shells:** Posix (sh, bash, dash, zsh), Fish 3.0+, PowerShell
7+/Pwsh, Cmd, Xonsh, Csh, Tcsh

**Unsupported shells:** Nushell (uses `and`/`or` keywords), Elvish (uses
`and`/`or` keywords), Rc (Plan 9 shell - no `&&`/`||` operators)

For unsupported shells:
- The "Always allow" UI options are hidden for the terminal tool
- If the user has `always_allow` patterns configured in settings, they
will see a `Deny` with an explanatory error message

(No release notes because granular tool permissions are behind a feature
flag.)

Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-28 20:51:39 +00:00
Ben Kunkle
e18162216e
ep_cli: Further improvements to reversal tracking (#47897)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 15:31:17 -05:00
Danilo Leal
7e065aedec
docs: Update AI docs with new features that went out (#47898)
Release Notes:

- N/A
2026-01-28 17:03:45 -03:00
Max Brunsfeld
2cd8b4241c
Improve EP teacher prompt, add some CLI features (#47814)
Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Oleksiy <oleksiy@zed.dev>
2026-01-28 11:44:22 -08:00
Joseph T. Lyons
081bb237f4
Improve Zed agent thread history to update across all open windows (#47803)
Previously, each Agent panel created its own `ThreadStore` instance, so
thread history updates wouldn't sync between open windows. Users had to
close and reopen windows to see threads created in other windows.

Now `ThreadStore` is initialized once as a global and shared across all
windows. When any window saves a thread, ThreadStore::reload() calls
cx.notify(), which notifies all NativeAgentSessionList observers,
causing all windows' history views to refresh.

Note: This only works for the native Zed agent. It also is only
improving the history view (thread titles)—this PR does not sync edits
between multiple windows when the same thread is open in each.

Release Notes:

- Improved Zed agent thread history to update across all open windows
2026-01-28 14:03:52 -05:00
O. Bennett
1c1a6578c2
client: Fix ACP registry blog post URL (#47881)
Closes #47882

Release Notes:

- Fixed a typo in the link to the ACP registry URL blog post

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2026-01-28 18:28:53 +00:00
Kyle Kelley
446227cf6d
repl: Streamline Markdown output usage (#47713)
Brought the Markdown output up to date with how Markdown is used in the
Agent panel. This fixed an issue with outputs that were too large for
the execution view as well as made sure that markdown would wrap.

<img width="3222" height="2334" alt="image"
src="https://github.com/user-attachments/assets/c65efa53-b792-4529-909a-9117053e30be"
/>

Release Notes:

- N/A
2026-01-28 17:42:07 +00:00
Cole Miller
a21e21c15c
git: Hide toggle split diff button behind feature flag (#47878)
Release Notes:

- N/A

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2026-01-28 17:15:09 +00:00
Finn Evers
308537f4ad
cli: Add GitHub token to generate_message step (#47876)
Release Notes:

- N/A
2026-01-28 16:53:08 +00:00
tidely
c3fddcd593
client: Store ReleaseChannel instead of &'static str (#47868)
Closes #ISSUE

Store `ReleaseChannel` instead of `&'static str`. This allows displaying
other aspects about the channel than just the display name. Makes it
more concrete what is stored within the field, as it has limited
variants, as opposed to something like `session_id`

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 17:52:34 +01:00
Finn Evers
5e0b8cc0f7
extension_ci: Update extension CLI SHA (#47875)
This PR bumps the version of the Zed extension CLI sha used in the
extension repositories to 7cfce60570

Release Notes:

- N/A
2026-01-28 16:39:26 +00:00
Finn Evers
28a9da4b32
time_format: Determine year difference based on months passed (#47687)
The inline git blame always calculated the difference in years for
commits based solely upon the difference between the years and not
actual time passed. This is currently somewhat unfortunate during
January, as for all dates starting from 2024 and lower, we would show `2
years ago`, even if the date was the 31st of December 2024.

This fixes/improves this to use the lower bound always instead, as I
find this much more intuitive - we can probably look into even better
formatting here at some other point.

Release Notes:

- Fixed an issue where relative time deltas would sometimes show as `n +
1 years` instead of the actual `n years`.
2026-01-28 17:05:34 +01:00
Kunall Banerjee
c37a7ba2f6 Update community champions list (#47785)
Release Notes:

- N/A
2026-01-28 11:02:34 -05:00
tidely
c21b019eaa
dap: Make ProtoConversion::to_proto consume self (#47871)
Closes #ISSUE

Make `ProtoConversion::to_proto` consume `self`. We never create more
than one `proto` type out of a single `dap` type, meaning having the
conversation be non-consuming has no benefits, while consuming allows us
to remove a bunch of clones.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 16:00:52 +00:00
Joseph T. Lyons
bd59ead0fe
Bump Zed to v0.223 (#47869)
Release Notes:

- N/A
2026-01-28 15:47:56 +00:00
Cole Miller
bc0e826723
editor: Move scroll position persistence to background and debounce it (#47834)
Release Notes:

- N/A
2026-01-28 10:44:22 -05:00
Danilo Leal
4dac6bd6d7
docs: Add content about the ACP registry (#47870)
Release Notes:

- N/A
2026-01-28 12:44:07 -03:00
Alexis Purslane
03d8e9aee9
editor: Add select to {start,end} of larger syntax node commands (#47571)
I'm used to having the Emacs mark-sexp command, which selects/extends
the selection to the start or end of a sexp/larger syntax node, so when
I found out the `move to {start,end} of larger syntax node` commands
were added, these seemed like a natural addition; especially since most
other commands in Zed seem to have movement and selection pairs, but
those didn't really feel like they did.

I did a really *lot* of tests (brainstormed ideas with GLM 4.7, then
wrote the actual test case strings myself, then had it convert them to
Rust, then made sure the tests made sense and passed), I'm not sure if
it's too much or too little, but I looked at the PR that added the `move
to` versions of these commands and it was also +~550 lines, so this
seemed in the ballpark 😅

I factored out the core syntax node finding logic from those commands
into a common function, so that both sets of commands could use it, just
with different code for modifying the editor state wrapped around — mine
just moves each selection's head, instead of totally resetting it.

Release Notes:

- Added commands for extending selections to syntax node boundaries.
i.e. `editor: select to start of larger syntax node` and `editor: select
to end of larger syntax node`.
2026-01-28 20:51:16 +05:30
tidely
eb14c9d345
Use SharedString::new_static for string literals (#47865)
Basically just replaced `SharedString::new("` with
`SharedShring::new_static("` which removes the allocation to `Arc<str>`.

Unfortunately this can't be enforced at compile time without trait
specialization which is only available on nightly. You could assert that
`TypeId`'s differ, but `TypeId` only exists at runtime.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 15:12:48 +00:00
Anthony Eid
7c6f7118e4
git_graph: Add feature graph (#47861)
We need another work of polish before end users are able to use the git
graph.


Release Notes:

- N/A
2026-01-28 14:41:17 +00:00
Lukas Wirth
ec4a9cbffa
gpui: Remove some unnecessay heap allocations and memcpies (#47858)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 15:20:36 +01:00
Riccardo Strina
bcd78afabf
git_ui: Align repo and branch pickers (#47752)
When working in a workspace with multiple repositories, the git panel
provides a repository picker to switch between them. However, there was
no visual indication of which repositories have uncommitted changes:
users had to either select each repository individually or check the
project panel where modified directories are highlighted.

This change adds git status icons to the repository picker, allowing
users to see at a glance which repositories contain changes (modified,
added, deleted, or conflicted files). The icons use the same visual
language already established for file status throughout the git panel.

Additionally, the repository picker now matches the branch picker's
styling for visual consistency:
- Added "Repositories" header
- Aligned popover width and positioning
- Added scrollbar
- Added check icon next to currently selected repo
- Added selected branch under repo list item
- Sort by display name is now case insensitive

Before:

<img width="1200" height="815" alt="Screenshot 2026-01-27 at 11 43 55"
src="https://github.com/user-attachments/assets/12c1008b-4724-44bf-80c9-e9ad97755090"
/>

After:

<img width="1761" height="1196" alt="Screenshot 2026-01-27 at 14 07 52"
src="https://github.com/user-attachments/assets/cd778f42-ade0-4da0-9732-2d8631c04124"
/>


Branch picker for style reference:

<img width="1200" height="815" alt="Screenshot 2026-01-27 at 11 44 03"
src="https://github.com/user-attachments/assets/369b0d29-8fed-4293-98c2-52c2d780fe9a"
/>

Release Notes:

- Git: Improved the project picker in the panel by also displaying the
GIt status icon on them, to clearly indicate which repos have changes.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-01-28 11:03:25 -03:00
Finn Evers
7cfa0fb876
extension: Ensure that compiled extension provides at least one feature (#47715)
This PR adds a check during extension compilation to ensure that every
compiled extension provides at least one feature, as otherwise, the
extension is useless to have.

With this in, compiling an extension that does not provide anything will
fail.

Release Notes:

- N/A
2026-01-28 14:25:47 +01:00
Danilo Leal
e29522a1b7
acp: Add upsell banner for built-in agents in registry page (#47853)
This PR adds the upsell banner for built-in agents in the ACP registry
page, meaning: if you search for Claude Code, Codex, or Gemini, we'll
display a banner communicating they're already available in Zed. This
may change one day, though, whenever we rely on their registry
implementation. I'm also removing the beta chip from the page here.

Release Notes:

- N/A
2026-01-28 10:01:53 -03:00
Lukas Wirth
9bfb900caa
remote_server: Cleanup old server binaries on wsl (#47839)
Closes https://github.com/zed-industries/zed/issues/44736

Release Notes:

- Fixed remote server binaries accumulating on wsl over time
2026-01-28 13:30:43 +01:00
Lukas Wirth
9622179798
agent_servers: Inherit codex api key environment vars for remote (#47850)
Closes https://github.com/zed-industries/zed/issues/46786

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 12:29:44 +00:00
Smit Barmase
1c7fa87d18
markdown: Improve double-click word selection using CharClassifier (#47844)
Previously, double-click word selection in markdown used simple
space-based boundaries, so `foo.bar()` would be selected as a single
word.

Now we use `CharClassifier` which properly handles word boundaries:

- **Regular markdown text**: Punctuation (`.`, `(`, `)`, etc.) now acts
as word boundaries. Double-clicking on `foo.bar()` selects just `foo` or
`bar`.
- **Code blocks**: Uses the language's word characters. For example, in
JavaScript, `$foo` and `#bar` are selected as whole words since `$` and
`#` are configured as word characters.

Release Notes:

- Improved double-click word selection in Agent Panel to respect
punctuation and language-specific word characters.
2026-01-28 16:30:24 +05:30
ozacod
92495328d1
languages: Add first-line C++ language detection for extensionless libcpp headers (#47443)
Several libcpp headers lack file extensions. Added a first line pattern
for recognition.


https://github.com/llvm/llvm-project/blob/main/libcxx/include/random)](https://github.com/llvm/llvm-project/blob/main/libcxx/include/random

Before:
<img width="1229" height="512" alt="before"
src="https://github.com/user-attachments/assets/fe62f904-73c9-494e-adf5-e5f259fab611"
/>

After:
<img width="1229" height="512" alt="after"
src="https://github.com/user-attachments/assets/a68b4242-61b7-4dba-a12e-9424be4b06dc"
/>

Release Notes:

- Added first-line C++ language detection for extensionless libcpp
headers.
2026-01-28 10:33:28 +00:00
Shuhei Kadowaki
2dd4897925
lsp: Exclude dynamic settings from LanguageServerSeed identity (#47376)
`LanguageServerSeed` is used as a key to identify language servers.
Previously, it included the entire `LspSettings`, which meant that
changing `lsp.<server>.settings` (dynamic configuration) would cause the
server to restart unnecessarily.

Dynamic settings can be updated via LSP's
`workspace/didChangeConfiguration` notification without requiring a
server restart. Only `binary` and `initialization_options` should be
part of the server identity, as changes to these genuinely require
restarting the server.

This is a follow-up fix to #35270 which introduced `LanguageServerSeed`
but inadvertently included dynamic settings in the server identity
(although I remember that this dynamic settings reflection stopped
working pretty recently, so there might be other commits besides #35270
that changed the behavior of `LanguageServerSeed`)

Closes #ISSUE

Release Notes:

- Fixed language servers unnecessarily restarting when changing
`lsp.<server>.settings` configuration. Dynamic settings are now properly
updated via `workspace/didChangeConfiguration` without requiring a
server restart.
2026-01-28 11:26:30 +01:00
ozacod
e2f54a1272
languages: Add highlighting for document comments in C/C++ (#47556)
Before:
<img width="557" height="668" alt="before"
src="https://github.com/user-attachments/assets/5accf661-94cd-4933-8771-98f813199c39"
/>

After:
<img width="581" height="668" alt="after"
src="https://github.com/user-attachments/assets/251101ca-6e12-4dc3-b4dd-41b2438f9bd7"
/>

Release Notes:

- Added highlighting for document comments in C/C++
2026-01-28 11:25:49 +01:00
Alfredo Menezes
3a1f4776d4
docs: Add missing syntax highlighting captures (#47791)
## Summary

Adds three syntax highlighting captures that are used across multiple
language definitions but were missing from the documentation table in
`docs/src/extensions/languages.md`.

## Added Captures

| Capture | Used In |
|---------|---------|
| `@constant.builtin` | C, Go, C++, YAML, TSX |
| `@type.builtin` | C++, Python, Rust, JavaScript, TSX |
| `@variable.parameter` | TypeScript, JavaScript, Python, Rust, TSX,
Diff |

## Context

While working on a [PR to add named argument highlighting to the PHP
extension](https://github.com/zed-extensions/php/pull/95), I initially
used `@label` because the documentation didn't list
`@variable.parameter`. A reviewer pointed out that `@variable.parameter`
is actually supported and preferred - the docs were just outdated.

This PR fixes that documentation gap.

Release Notes:

- N/A
2026-01-28 10:08:52 +00:00
Lena
3339c2d982
Fix the duplicate bot (move timeout, perms) (#47840)
Debugging on `main` is so much fun :/

Release Notes:

- N/A
2026-01-28 09:34:10 +00:00
Danilo Leal
0e1802a596
acp: Add agent server extension deprecation banner (#47817)
This PR adds a banner to communicate the deprecation of agent server
extensions in favor of the ACP registry:

<img width="600" height="1986" alt="Screenshot 2026-01-27 at 8  37@2x"
src="https://github.com/user-attachments/assets/8c1b658f-d170-4009-a93b-336b785f4be9"
/>

Release Notes:

- N/A
2026-01-28 10:28:43 +01:00
Conrad Irwin
ade8749537
Fix typing emoji (#47835)
- **Revert "ui: Dismiss context menus when window loses focus
(#46866)"**
- **Revert "Preserve and restore focus across window activation cycles
(#47044)"**

Closes #ISSUE

Release Notes:

- (preview only) Fixed typing emoji using the macOS system palette
(cmd-ctrl-space)
2026-01-28 07:04:22 +00:00
Andres Suarez
80f1cc032e
project_panel: Add bold_folder_labels setting (#47631)
This setting brings Zed in parity with Sublime's `bold_folder_labels`.

The settings does just that, it makes directory labels bold. This
setting is
particularly useful for those who turn icons off, but do need a visual
queue (besides the chevron) to quickly tell apart files and folders.

Note: This PR depends on
https://github.com/zed-industries/zed/pull/47629.
Otherwise, the setting will appear to have no uneffect (unless you're
using a custom UI font). ZedSans has "bold" today, but that's too thick
for the project panel.

<img width="2282" height="1545" alt="zed-project-panel"
src="https://github.com/user-attachments/assets/63ccacc0-c00a-48b2-8e70-923aa6717956"
/>

Release Notes:

- Added `project_panel.bold_folder_labels` to show folder names with
bold text in the project panel (defaults to `false`).
2026-01-28 09:54:03 +05:30
Danilo Leal
e752ec1a92
Add item for opening Markdown/SVG files in preview tab in right-click menu (#47821)
Following user feedback, this should help making the Markdown Preview
more discoverable.

| Buffer Right-click | Tab Right-click |
|--------|--------|
| <img width="2474" height="1824" alt="Screenshot 2026-01-27 at 10 
16@2x"
src="https://github.com/user-attachments/assets/251149e9-89c6-4d11-aed0-872669939cfb"
/> | <img width="2464" height="1808" alt="Screenshot 2026-01-27 at 10 
16 2@2x"
src="https://github.com/user-attachments/assets/359a221b-2141-45b1-98a9-d9c77b601c0b"
/> |

Release Notes:

- Workspace: Added a menu item in the buffer and tab right-click menu
for opening Markdown and SVG files in the preview tab.
2026-01-28 00:19:13 -03:00