Commit Graph
39151 Commits
Author SHA1 Message Date
Danilo Leal bffee3f259 agent_ui: Fix reject all and keep all keybinding conflict (#46725)
This PR changes the keybinding for the `agent::RejectAll` and
`agent::KeepAll` actions. My initial goal was to free up `cmd-shift-n`
to open a new fresh window again, but that was being used for the reject
all action. Given I had to change the reject all, I figured I had to
change the keep all action, too, to keep them consistent.

Release Notes:

- Agent: Removed keybinding conflict (`cmd-shift-n`) between rejecting
all changes in the agent panel vs. opening a new fresh window.
2026-01-13 17:59:02 +00:00
Michael Benfield 2a83c6907c agent_ui: No agent diff view with Agent V2 (#46710)
Release Notes:

- N/A
2026-01-13 09:42:38 -08:00
Danilo Leal f931704610 Improve design for the diff review button (#46723)
Follow up to https://github.com/zed-industries/zed/pull/46326.

Release Notes:

- N/A
2026-01-13 14:39:56 -03:00
Danilo Leal 782ca51c36 debugger_ui: Make view in the new session picker keyboard navigable (#46662)
This makes the new session picker in the Debugger panel consistent with
the new unified Git picker
(https://github.com/zed-industries/zed/pull/46621):


https://github.com/user-attachments/assets/e94662da-31cc-48d8-b633-a6f0a2812569

Release Notes:

- Debugger: Make possible to navigate with the keyboard between the
views in the new session picker.
2026-01-13 17:36:40 +00:00
David Baldwin d7bce54685 remote: Support local terminals in remote projects (#46532)
This PR adds the ability to open local terminals when working in remote
projects. When working in a remote (often actually remoting into a local
container) I always need to run separate terminals outside Zed so I can
run local build tools, scripts, agents, etc. for the related project.
I'd like to be able to run all of these in the same Zed window and this
adds that ability via one-off local terminals.

## Changes

Adds an optional `local` parameter to terminal commands. When set to
`true`, creates a local shell on your machine instead of connecting to
the remote.

### Implementation
- Added `force_local` parameter to terminal creation logic
- Created `create_local_terminal()` method that bypasses remote client
- Updated terminal actions (`NewTerminal`, `NewCenterTerminal`) to
accept optional `local: bool` field (defaults to `false`)

### Usage

**Via keybinding:**
```json
{
  "bindings": {
    "cmd-t": "workspace::NewCenterTerminal",
    "cmd-T": ["workspace::NewCenterTerminal", { "local": true }]
  }
},
{
  "context": "Terminal",
  "bindings": {
    "cmd-n": "workspace::NewTerminal",
    "cmd-N": ["workspace::NewTerminal", { "local": true }],
  },
},
```

**Behavior:**
- Default terminal commands continue to work as before (remote in remote
projects, local in local projects)
- The `local` parameter is optional and defaults to `false`

Release Notes:

- Added support for opening local terminals in remote projects via
`local` parameter on terminal commands.
2026-01-13 16:39:41 +00:00
Yaroslav YenkalaandMatt Miller 72f6d39962 Add option to show pinned tabs in a separate row (#46573)
## Problem:

When working with many `pinned tabs`, they consume significant
horizontal space in the tab bar, leaving less room for unpinned (active
working) tabs, especially on small screens. This creates a poor user
experience as users must constantly scroll to find their working tabs,
or the tabs become too narrow to read file names.


![8_tabs](https://github.com/user-attachments/assets/087a0b4d-8f1c-42f0-851c-b774228f11dd)

##  Solution:

Added a new opt-in setting `tab_bar.show_pinned_tabs_in_separate_row`
that displays pinned and unpinned tabs in two separate rows:
  - Top row: Pinned tabs with navigation buttons and tab bar controls
  - Bottom row: Unpinned (working) tabs with full horizontal space
 
- when pinned and not pinned tabs we show 2 rows:  

<img width="1512" height="159" alt="2_rows"
src="https://github.com/user-attachments/assets/62a85fcc-8073-40d2-a8e4-270efd0d0f21"
/>

This is a well-established UX pattern used in many popular IDEs
including JetBrains products (IntelliJ IDEA, WebStorm, PyCharm,
RubyMine), Visual Studio, and Eclipse.

The two-row layout only appears when both pinned AND unpinned tabs
exist. If only one type is present, a single row is displayed:
  
- when only not pinned tabs we show one row:

<img width="1510" height="111" alt="when only not pinned"
src="https://github.com/user-attachments/assets/048df4fc-4b17-4ea2-9c5b-b4db91cdfc78"
/>

- when only pinned tabs we show one row:

<img width="1510" height="111" alt="when only pinned tabs"
src="https://github.com/user-attachments/assets/7ccf2517-8711-4114-815d-6cbb1e89d7e2"
/>

  **Important** - Default Behavior Preserved:

- The setting defaults to false - existing users will see no change
whatsoever
- Original tab bar logic is preserved in a dedicated
`render_single_row_tab_bar` method, while the new two-row layout lives
in `render_two_row_tab_bar`. Both methods share common components
(`configure_tab_bar_start`, `configure_tab_bar_end`,
`render_unpinned_tabs_container`, `render_tab_bar_drop_target`) ensuring
DRY code and consistent behavior.
- Purely opt-in - users must explicitly enable this feature via Settings
UI or settings.json
- No impact on default UX - Zed's default tab bar appearance and
behavior remains identical

This implementation ensures zero risk to the existing user experience
while providing an optional enhancement for users who prefer separated
tab rows.

  Configuration

  Via Settings UI:
  - Open Settings (Cmd+,) → Editor section → "Pinned Tabs Layout" toggle
  
  

![settings_ui](https://github.com/user-attachments/assets/59b9bb94-1c10-4c32-b942-13aa01943526)


  Via settings.json:
  
  ```json
  {
    "tab_bar": {
      "show_pinned_tabs_in_separate_row": true
    }
  }
  ```
  
<img width="468" height="67" alt="manual_settings"
src="https://github.com/user-attachments/assets/d21f6dde-7683-47b3-8dca-d190049d32fb"
/>

## Video of implemented feature:


https://github.com/user-attachments/assets/b1e52074-a5a1-4c4e-ad59-e55e2213509d

## Tested:

- Verify default behavior unchanged (single row with pinned + unpinned
tabs inline)
- Enable setting → verify two rows appear when both pinned and unpinned
tabs exist
  - Enable setting → verify single row when only pinned tabs exist
  - Enable setting → verify single row when only unpinned tabs exist
  - Verify drag & drop works in both layouts
  - Verify navigation buttons and tab bar buttons render correctly
  - Verify setting toggle works in Settings UI
  - Verify setting works via settings.json

  Tested on: MacBook Pro M4, macOS 26.2
  
   ## Release Notes:

- Added `tab_bar.show_pinned_tabs_in_separate_row` setting to display
pinned and unpinned tabs in separate rows, giving unpinned tabs full
horizontal space

---------

Co-authored-by: Matt Miller <mattrx@gmail.com>
2026-01-13 09:30:27 -06:00
Agus Zubiaga 79c69dc622 ep: Fix raw request shape (#46711)
Release Notes:

- N/A
2026-01-13 15:27:31 +00:00
AidanVanddino d2b31b47b6 vim: Allow trailing whitespace for :norm command (#46403)
Fix a bug with `:norm` that disallowed trailing whitespace.

Commands that accept generic args (defined with `args()`) now preserve
trailing whitespace, while commands that accept filenames (defined with
`filename()`) have whitespace pre-trimmed. This allows, for example, 
`:norm I  ` to correctly insert spaces, matching NeoVim's behavior.

Release Notes:

- vim: Fixed `:norm` command to preserve trailing whitespace in
arguments (e.g., `:norm I ` now correctly inserts two spaces)

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-01-13 14:13:15 +00:00
Lukas Wirth 4e368d485c remote: Add remote timeout debugging commands (#46695)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-13 13:39:07 +00:00
Kirill Bulatov 6865d80a82 Trust settings sync as a collab project client (#46700)
Collab projects are considered trusted and remote clients use the
editor-related settings only. A better fix would be sync "not trusted"
indicator with the project host, and disallow clients' iteraction with
that indicator.

Release Notes:

- Fixed collab settings sync causing "not trusted" pop ups for client
2026-01-13 14:37:09 +02:00
Dino 0ecefe031e editor: Fix crash when pasting after copy and trim in visual line mode (#46640)
When using the `editor::actions::CopyAndTrim` action with a multi-line
selection in vim's Visual Line mode, pasting would crash Zed.

The bug occurred because trimming splits a selection into per-line
ranges, creating multiple `editor::ClipboardSelection` entries. However,
when `is_entire_line` was true (Visual Line mode), no newline separators
were added between these entries in the clipboard text. The paste code
then assumed separators existed and read past the end of the text.

The fix ensures newline separators are always added between trimmed line
ranges, regardless of whether the original selection was in line mode.

Closes #46616 

Release Notes:

- Fixed a crash when pasting after using `editor: copy and trim` in
vim's Visual Line mode
2026-01-13 11:57:06 +00:00
Danilo Leal 70da176353 agent_ui: Make stopping a running terminal cancel thread generation (#46663)
This makes stopping a terminal tool call in the agent panel also cancel
the thread generation:


https://github.com/user-attachments/assets/702ba078-53a8-4816-80f3-b6215e764365

Release Notes:

- Agent: Made the act of stopping a terminal tool call in the agent
panel also cancel the thread generation.
2026-01-13 11:43:45 +00:00
Max Brunsfeld 6b1eb25370 Fix a missing newline in the zeta prompt (#46677)
Release Notes:

- N/A
2026-01-12 23:27:06 -08:00
Max Malkin d76258da9a terminal_view: Fix terminal opening in / when no project is open (#46582)
Closes #46574

The `default_working_directory()` function in
`crates/terminal_view/src/terminal_view.rs:1585` returned `None` when no
project directory was available. The code comment (now removed)
incorrectly claimed "None implies `~` on whichever machine we end up
on". However, when `None` is passed to `alacritty_terminal`, it uses the
process CWD, not the home directory. On macOS when Zed is launched from
a .`app` bundle, the CWD is `/`.
    
Added a fallback at the end of` default_working_directory()` that
explicitly returns the home directory when no project directory is
found: `directory.or_else(dirs::home_dir)`

  This ensures:
  1. `CurrentProjectDirectory` with no project open → home directory
  2. `FirstProjectDirectory `with no project open → home directory
3. `AlwaysHome `→ home directory (explicitly, not relying on shell
behavior)
  4. Always `{ directory }` with invalid directory → home directory



Release Notes:
- Fixed terminal opening in `/` instead of home directory when no
project is open.
2026-01-13 07:07:04 +00:00
Martin Pool 271bcf65ef Fix Failed to load environment variables error message after self-update on Linux (#46367)
Closes #46365

The behavior I'm trying to handle here is documented in
https://man7.org/linux/man-pages/man5/proc_pid_exe.5.html.

[@merlinz01

](https://github.com/zed-industries/zed/issues/46365#issuecomment-3723996684)
points to some other alternatives but they don't seem necessary or
justified here.

# Testing

I've manually replaced the binary of a process running this build, to
simulate an update, and then opened a new tree and I don't see the error
message.

I don't know if there's a reasonable way to unit-test this? Let me know.
It seems like it would require using something like rusty-fork to spawn
a specific binary for the test, which I don't think I see already in the
Zed tree and perhaps it would be overkill to add just for this?


Release Notes:

- Fixed "Failed to load environment variables" after applying an update
2026-01-13 07:56:02 +01:00
Michael Benfield d35fee1cd1 agent_ui: Remove Keep/Reject only with feature flag (#46656)
Release Notes:

- N/A
2026-01-12 20:39:51 -08:00
Conrad Irwin 4c494fe06f Remove -q from .rules (#46670)
I like to be able to see what's happening with rust builds so I can kill
rust analyzer, see the output, etc.

Closes #ISSUE

Release Notes:

- N/A
2026-01-13 03:03:30 +00:00
Max Brunsfeld 024485133d Avoid expensive re-computation of sticky header lines (#46653)
Fixes a performance regression introduced in
https://github.com/zed-industries/zed/pull/45377

Release Notes:

- Fixed a performance regression that caused lag in large documents
2026-01-12 16:38:13 -08:00
Finn Evers 1c1ab657b8 ollama: Save API URL and key upon confirmation (#46665)
Closes #46626

Release Notes:

- Improved the settings configuration page for Ollama to store the
current URL value if changed when clicking on "Connect"
2026-01-13 00:25:42 +00:00
Agus ZubiagaandMax Brunsfeld 90ec58836e ep: Use FIM-like prompt for zeta2 (#46657)
Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2026-01-13 00:16:24 +00:00
Finn Evers 8ab49c325f editor: Fix regression with folds and relative counting (#46658)
Closes #46516

Release Notes:

- Fixed a regression with relative line numbering that would occur with
folds present (preview only)
2026-01-13 00:58:31 +01:00
Conrad Irwin 8b4ab260e6 Revert scheduler update (#46659)
Reverts the new scheduler; it's destroyed our CI

Release Notes:

- N/A
2026-01-12 16:46:15 -07:00
Jakub Konka 6d3ea102ec git: Annotate more functions and blocks with tracing spans (#46642)
Release Notes:

- N/A
2026-01-12 21:56:08 +00:00
Ben BrandtandZed Zippy 291611e3db agent: Move thread history access behind AgentConnection trait (#46631)
This should move almost all access of the threadstore behind the trait,
which unlocks external agents supplying the list

Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-12 21:42:12 +00:00
Finn Evers f651c4c340 gpui: Remove unused flume dependency (#46647)
Only the scheduler crate uses this currently, so we can remove this from
the long list of GPUI dependencies.

Release Notes:

- N/A
2026-01-12 20:19:13 +00:00
Shuhei KadowakiandMatt Miller 1148773d49 project_symbols: Display line numbers in symbol picker (#46507)
Some language servers return local symbols in `workspace/symbol`
responses, and languages like Julia can have multiple overloads for the
same generic function name. In these cases, symbols may appear identical
in the symbol picker, making it hard to distinguish between them. Adding
line numbers helps users identify the correct symbol.

In the future, we may also want to consider using `containerName` from
the LSP response for additional context.

> Before
<img width="671" height="573" alt="Screenshot 2026-01-10 at 19 21 08"
src="https://github.com/user-attachments/assets/838c3eb7-0e1d-46ba-9076-286e971afc2c"
/>

> After
<img width="671" height="573" alt="Screenshot 2026-01-10 at 19 43 19"
src="https://github.com/user-attachments/assets/31979d79-0169-4202-afc2-24fc7492dd47"
/>


Closes #ISSUE

Release Notes:

- Added line numbers to the project symbols picker to help distinguish
between symbols with the same name

---------

Co-authored-by: Matt Miller <mattrx@gmail.com>
2026-01-12 18:33:39 +00:00
Richard Feldman 3b67868675 Add diff review button in git diff views (#46326)
Adds a very simple diff review button behind a feature flag, which
appears in the gutter of people who have the flag (currently just me;
it's not even enabled for staff, since it doesn't do anything yet).

Mostly this PR just adds the feature flag, the button, and tests.

Release Notes:

- N/A
2026-01-12 13:09:47 -05:00
Richard FeldmanandAmp 756637fef5 Subagents PR 2: Thread spawning + execution (#46187)
This PR implements the behind-the-scenes subagent execution logic:

### Core subagent execution
- Add `Thread::new_subagent()` constructor for creating subagent threads
- Implement `SubagentTool::run()` to spawn and manage subagent lifecycle
- Add `SubagentContext` for parent-child thread relationship
- Implement `submit_user_message()`, `interrupt_for_summary()`,
`request_final_summary()`
- Add timeout support and context-low detection (25% threshold)
- Propagate cancellation from parent to child threads

### Thread management
- Add `MAX_SUBAGENT_DEPTH` (4) and `MAX_PARALLEL_SUBAGENTS` (8) limits
- Add `register/unregister_running_subagent()` for tracking
- Add `restrict_tools()` for allowed_tools filtering
- Add `is_subagent()`, `depth()`, `is_turn_complete()` accessors

### Thread changes
- Add `ToolCallContent::SubagentThread` variant
- Add `ToolCallUpdateSubagentThread` for UI updates
- Add `tool_name` field for subagent detection
- Add `is_subagent()` method on `ToolCall`
- Add image support in `ContentBlock`

Release Notes:

- N/A

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-01-12 18:07:41 +00:00
Antonio Scandurra 816e5f5c73 Fix panic when using RealtimeAudio priority (#46635)
The scheduler integration (#44810) removed the special handling for
realtime audio tasks that spawn them on a dedicated thread. This caused
a panic in the Mac dispatcher when RealtimeAudio priority was passed to
the regular dispatch path.

This restores the original behavior: RealtimeAudio tasks are spawned on
a dedicated thread via dispatcher.spawn_realtime(), using a bounded
channel to send runnables to it.

Release Notes:

- N/A
2026-01-12 17:55:51 +00:00
7853589033 ep: Use non-chat completions for /predict/raw (#46633)
Release Notes:

- N/A

---------

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
2026-01-12 17:42:50 +00:00
Michael Benfield c9e6238163 agent_ui: Remove Keep/Reject buttons (#46456)
Release Notes:

- N/A
2026-01-12 09:09:24 -08:00
Richard FeldmanandAmp 2b6e935b09 Add remaining tool permissions (#46164)
Add permission checking to the remaining 7 tools that require granular
permissions:
- `edit_file`: Checks path against permission rules  
- `delete_path`: Checks path against permission rules
- `move_path`: Checks both source and destination paths
- `create_directory`: Checks path against permission rules
- `save_file`: Checks all paths, denies if any are blocked
- `fetch`: Checks URL against permission rules
- `web_search`: Checks query against permission rules

Each tool follows the pattern established in PR #46155 (terminal tool):
- `Allow` = proceed without prompting
- `Deny` = return error immediately
- `Confirm` = prompt user for confirmation

The deny > confirm > allow precedence is enforced by the
`decide_permission_from_settings()` function.

Release Notes:

- N/A

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-01-12 11:08:06 -05:00
Yuantian Ding 8a1cf4d499 Add structured outline for Markdown (#45643)
Just make outline of markdown to be structured:

<img width="282" height="144" alt="image"
src="https://github.com/user-attachments/assets/6c7e5d5f-ae09-47a9-965a-6f9f9b731ce6"
/>

Release Notes:

- Added structured outline for Markdown.
- Also fixed the breadcrumb display in Issue
[#45663](https://github.com/zed-industries/zed/issues/45663).
2026-01-12 11:06:11 -05:00
Danilo Leal b9de700b0c git_ui: Unify branch, worktree, and stash pickers in one (#46621)
This PR creates a unified picker for all the Git-related pickers:
branch, worktree and stash. The main motivation for this is to bring
awareness and ease of access for the worktree and stash pickers that
were previously (and arguably) hidden amidst the sea of commands in the
command palette. As worktrees in particular become more relevant for
AI-related flows, having an easier way to reach for its picker will be
beneficial.

Note that the actions/commands remain the same; you can still look for
`git: worktree` or `git: view stash`. The difference is that these
actions will take you to the unified picker with the correct
corresponding active view.


https://github.com/user-attachments/assets/99d1cd6f-a19d-47d3-9bca-d7257e7ed5b8

Release Notes:

- Git: Unify the branch, worktree, and stash pickers into one, making it
easier to find and access them from one another.
2026-01-12 12:48:57 -03:00
Kirill Bulatov bf3cab6ae6 Fix worktree trust not applied on window reuse (#46623)
New workspace/window creates a different `WeakEntity<WorktreeStore>` for
the same path, which was not considered before.

Closes https://github.com/zed-industries/zed/issues/46318

Release Notes:

- Fixed worktree trust not applied in window reuse
2026-01-12 15:05:48 +00:00
Oleksiy SyvokonandAgus Zubiaga cbb6e2f563 ep: Fix applying patch to text without a trailing newline (#46471)
Release Notes:

- N/A

Co-authored-by: Agus Zubiaga <agus@zed.dev>
2026-01-12 14:59:25 +00:00
Lukas WirthandJohn Tur 37b05605e2 gpui(windows): Force a paint message when running out foreground budget (#46609)
Release Notes:

- Fixed zed no longer rendering on windows in a timely manner if it gets
overloaded with foreground work

Co-authored-by: John Tur <john-tur@outlook.com>
2026-01-12 14:17:21 +00:00
Piotr Osiewicz 0eeb743904 copilot: Fix double lease panic when signing out (#46619)
Extracted out of #46618 as I wanna fast-track it to Preview.

Release Notes:

- Fixed a crash that occured when signing out of Copilot.
2026-01-12 14:09:16 +00:00
Antonio Scandurra 2f093d23ae Delete accidentally committed scheduler plan (#46601)
Release Notes:

- N/A
2026-01-12 13:33:29 +01:00
Kirill Bulatov 38fc4eaf44 Properly notify all language server worktree trust listeners (#46613)
Closes https://github.com/zed-industries/zed/issues/46590


https://github.com/user-attachments/assets/8464a3b6-9258-4d15-9168-56178bf46437

`use smol::channel::{Receiver, Sender};` do not propagate the value
change to all receivers, hence only one language server received the
"worktree trusted" message.
The fix uses `watch` kind of channels instead, and cleans up its state
more eager to rely on the sender drop as another form of notification.

Release Notes:

- Fixed groups of language servers not starting after worktree trust
approval
2026-01-12 12:09:43 +00:00
Finn Evers 5ddfcf09f7 editor: Remove unnecessary cloning of selections (#46598)
Stumbled across this upon a PR review - `unfold_ranges` takes a slice of
Ranges and already clones the ranges itself, so we do not need to clone
the selections prior to passing these.

Release Notes:

- N/A
2026-01-12 13:04:37 +01:00
Lukas Wirth 819d2f7c78 project_symbols: Support rust-analyzer path symbol search (#46511)
cc https://github.com/rust-lang/rust-analyzer/pull/21415

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-12 11:41:13 +00:00
Kirill Bulatov a75d3fc10c Always show worktree trust, even if other title bar items are hidden with settings (#46606)
Closes https://github.com/zed-industries/zed/discussions/46595

Release Notes:

- Fixed "show project items" keeping worktree trust title bar element
hidden
2026-01-12 12:46:39 +02:00
Lena ad1251b9d9 First-contribution autolabeler: work around a bug (#46603)
The job was skipping first-time contributors because GitHub was
returning None as their association.

Release Notes:

- N/A
2026-01-12 10:08:16 +00:00
koh-sh 5c7abadf2d terminal: Fix IME position when cursor is hidden (#46592)
Closes https://github.com/zed-industries/zed/issues/45553

## Summary

When using applications that hide the terminal cursor (e.g., via ANSI
escape sequence `\e[?25l`), the IME candidate window appeared at the
bottom-left of the screen, and the composition text was not displayed at
all. This affects tools like Claude Code that hide the cursor during
operation.

The root cause was that cursor position calculation was skipped when the
cursor shape was `Hidden`. This fix separates cursor visibility from IME
position calculation by always computing cursor bounds for IME
positioning.

## Movies

### Zed 0.218.6


https://github.com/user-attachments/assets/a66d569a-178d-4bca-a577-fcc65e9fd2c4

### With this fix


https://github.com/user-attachments/assets/456323d1-6c18-45ea-88e8-fb5375c00f98

Release Notes:

- Fixed IME candidate window and composition text position in terminal
when cursor is hidden
2026-01-12 09:59:51 +00:00
Finn Evers feccf38e3f terminal_view: Remove intermediate vec allocation (#46600)
`grid_view` takes an iterator of `IndexedCell`s, so we don't have to
collect this into a vec prior to passing this.

Release Notes:

- N/A
2026-01-12 09:40:49 +00:00
ᴀᴍᴛᴏᴀᴇʀ 578911de03 terminal: Avoid overlapping IME marked text with terminal content (#46227)
Closes #33157

|Before|After|
|--|--|
|<img width="922" height="158" alt="CleanShot 2026-01-07 at 12 18 21@2x"
src="https://github.com/user-attachments/assets/2ba6020f-5159-4ed8-aa2e-374ea3ea4cf5"
/>|<img width="908" height="200" alt="CleanShot 2026-01-07 at 12 19
02@2x"
src="https://github.com/user-attachments/assets/ec946c4e-3220-4944-b34a-1d8d5dcc7ae2"
/>|

Many other terminals seem to do it this way as well.

|Ghostty|Windows Terminal| Visual Studio Code|
|--|--|--|
|<img width="930" height="186" alt="CleanShot 2026-01-07 at 12 23 30@2x"
src="https://github.com/user-attachments/assets/837189aa-2f4c-4a48-b060-f3576b8777e0"
/>|<img width="1414" height="128" alt="c89e03d2d92869d5ec1b8a05ade84df0"
src="https://github.com/user-attachments/assets/8b6d69fb-b34d-4ccd-8a3a-9332487cd427"
/>|<img width="978" height="180" alt="CleanShot 2026-01-07 at 12 27
01@2x"
src="https://github.com/user-attachments/assets/dbc0acc7-3c16-499f-ac32-35e3c0cd0d97"
/>|

Release Notes:

- Fixed UI overlap between IME marked text and terminal content.
2026-01-11 23:35:32 -05:00
Eduardo de Melo Xavier d4f6ca44bc Update GPUI dependency: ashpd 0.12 -> 0.12.1 (#46564)
Release Notes:

- N/A

TL;DR: There was a closed issue 7 hours ago that changed ashpd version,
it needed another bump.

A dependency of gpui called ashpd has a fix in v0.12.1, GPUI has the
0.12 version. After forking zed and patching the gpui source to be mine
with 0.12.1 it was able to use GPUI as a dependency and compile the
project. The error I was getting and the recomendation to do this PR can
be seen in this [closed issue from
ashpd](https://github.com/bilelmoussaoui/ashpd/issues/325).

After changing the dependecy I hit cargo check:
```bash
   Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 24s
```

And cargo run:
```bash
  Compiling zed v0.220.0 (/home/user/git/xaviduds/zed/crates/zed)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 9m 44s
     Running `target/debug/zed`
```

Zed compiled and opened:
<img width="1920" height="1042" alt="image"
src="https://github.com/user-attachments/assets/8bc524d1-bc4a-43f8-9da4-b02faecca30c"
/>
2026-01-11 20:01:03 +00:00
Kirill Bulatov a87fed21b1 Skip worktree trust checks on Zed invisible worktrees (#46563)
Follow-up of https://github.com/zed-industries/zed/pull/46256

Release Notes:

- Fixed worktree trust pop-up appearing on a keymap editor invication
2026-01-11 16:06:59 +00:00
Oscar Vargas Torres 0ff0390f27 Improve snippet parse error context (#46277)
Release Notes:

- N/A


Description:
E.g. Instead of saying:
2026-01-07T09:08:42-06:00 ERROR [crates/snippet_provider/src/lib.rs:46]
failed to parse snippet
  Caused by:
      expected an integer

Now the logs give more valuable information like:
2026-01-07T10:47:39-06:00 ERROR [crates/snippet_provider/src/lib.rs:48]
invalid snippet in /Users/oscarvarto/Library/Application
Support/Zed/extensions/installed/django-snippets/./snippets/python.json
(re_path)
2026-01-11 15:08:34 +02:00