Commit log

da7b8f2 Fix font weight in multiple elements (#49539)

Click to expand commit body
* Update the font weight used in the Agent Panel's editor to respect the
`buffer_font_weight` setting.
* Update the font weight used in the Command Palette to use the
`ui_font_weight` setting value, seeing as the command palette is using
the `ui_font` settings for the font family and features
* Update the font weight used in the popovers to match the
`buffer_font_weight`, as it's also using the buffer font family and
features
* Update the `LabelLike.buffer_font` method in order to correctly set
the font weight, which fixes the font weight used in the file header
when displaying a multibuffer editor

Release Notes:

- Fixed incorrect font weight in the Command Pallete input
- Fixed missing font weight the Agent Panel's buffer
- Fixed missing font weight the Hover Popover
- Fixed missing font weight in Markdown's code block and inline code

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Dino and Zed Zippy created

037add0 editor: Fix bracket colorization discoloring pure deletion diff hunks (#49618)

Click to expand commit body
Release Notes:

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

Co-authored by: Cole Miller <cole@zed.dev>

Lukas Wirth created

3bd1b0f Temporarily disabling codeowners to resolve noisy routing (#49623)

Click to expand commit body
Just a procedural change to codeowners, no other items affected.

Release Notes:

- N/A

John D. Swanson created

e8d4537 Revert "Enable type on search by default for the project search (#49374)" (#49619)

Click to expand commit body
This reverts commit 1d66bbe06f6e02008560064302c44a57ed4cff41.

Needs 2 more fixes:

* enter does not move to the first excerpt anymore
* there could be situations when a narrowed search does not decrease the
excerpt enough to see the result onscreen

Release Notes:

- N/A

Kirill Bulatov created

8815573 buffer_search: Don’t hide UI icons if search query is too large (#49493)

Click to expand commit body
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>

Kunall Banerjee and dino created

712914a go: split definition and call highlights for functions, methods, and types (#49120)

Click to expand commit body
This allows definitions to use a different highlight than function
calls.

Release Notes:

- go: Add definition highlights for functions, methods, and types

Tomas Virgl created

3a1c375 ep: Fix pull examples query (#49610)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

d8b3f47 Fix the panic when trying to interact with editor-like not-editors (#49608)

Click to expand commit body
For example, LSP log view is not a real editor but can pretend to be
one.

Release Notes:

- Fixed dev highlights view panicking when interacting with editor-like
not-editors

Kirill Bulatov created

4efd07b zlog: Broaden filter for usvg parser warnings (#49607)

Click to expand commit body
Noticed this while looking into #49595

Release Notes:

- N/A

Finn Evers created

2a0a304 Seperate throttles for jump and edit based predictions (#49499)

Click to expand commit body
Closes #ISSUE

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 *or* Added/Fixed/Improved ...

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Ben Kunkle and Zed Zippy created

aaa87a2 auto_update_ui: Add announcement toast component (#49543)

Click to expand commit body
This PR adds the `AnnouncementToast` component that we can use whenever
a new version introduces a new and special feature that's worthy of a
flashier announcement. We can pick the specific version we want to
target, and instead of showing the regular "View Release Notes" toast,
we'd show this new one instead.

For now, everything is turned off as we're not sure yet which version we
will be targeting for an upcoming release.

<img width="550" height="1964" alt="Screenshot 2026-02-18 at 9  06@2x"
src="https://github.com/user-attachments/assets/19930b15-261b-416f-992e-6e28447beb27"
/>

Release Notes:

- N/A

Danilo Leal created

24a81d4 git_ui: Remove dependency on agent crates (#49599)

Click to expand commit body
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

Bennet Bo Fenner created

3129d7e ep: Parse "user accepted prediction" markers in evals (#49598)

Click to expand commit body
Also:
- Add two evals
- Remove duplicated Example 6 from the teacher prompt 

Release Notes:

- N/A

Oleksiy Syvokon created

b6cd147 Add retry logic to docs_suggestions workflow for transient Factory API failures (#49594)

Click to expand commit body
Add exponential backoff retry logic (3 attempts with 5s/10s/15s delays)
to the Droid CLI installation and
docs-suggest script execution steps in both the batch-suggestions and
cherry-pick-suggestions jobs.

This handles intermittent Factory API authentication issues that can
cause workflow failures when the API is temporarily unavailable or
rate-limited.

Release Notes:

- N/A

morgankrey created

bad3df6 vim: Apply linked edits for delete/change/substitute (#48458)

Click to expand commit body
Ensure that editing one tag in a linked pair correctly mirrors the change 
to the other tag for Vim delete/change/substitute commands, visual 
mode operations, and the standard editor delete action.

Extract a `LinkedEdits` struct to deduplicate linked edit collection and
application across `handle_input`, `replace_selections`, `do_completion`,
`backspace`, and `delete`. Introduce `linked_edits_for_selections` as a
shared helper for building linked edits from the current selections.

Closes #35941

Release Notes:
- Fixed linked edits for delete/change/substitute commands so tag pairs
stay in sync.

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>

Patrik Levák and dino created

9d77987 editor: Remove duplicate method (#49592)

Click to expand commit body
`highlight_background` and `highlight_background_key` currently have the
same implementation

Release Notes:

- N/A

Marco Mihai Condrache created

6652c5f agent: Remove `MAX_PARALLEL_SUBAGENTS` (#49593)

Click to expand commit body
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)

Requests will be rate-limited by our internal logic, but it will "just"
work.

Release Notes:

- N/A

Bennet Bo Fenner created

d6c0d3c project: Block less in `Respository::paths_changed` (#49584)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

9a26eab buffer_diff: Reduce number of entity clones in base_text_buffer (#49573)

Click to expand commit body
Release Notes:

- Improved split performance by reducing number of entity clones for
very large pre-loaded multibuffers.

Jakub Konka created

1ad5ec6 Support profiling remote server in the miniprofiler (#49582)

Click to expand commit body
Release Notes:

- The `zed: open performance profiler` action can now display profiling
data from the remote server.

John Tur created

fc79a6f gpui: Remove some unnecessay heap allocations in entity handling (#49579)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

2786d36 editor: Yield less frequently in `WrapSnapshot::update` (#49497)

Click to expand commit body
Every yield will cause the background task to get rescheduled causing
additional thread/context switching, so doing so for every wrapped row
is a bit excessive

Release Notes:

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

Lukas Wirth created

dace3ab project: Log errors when notifying JSON language server (#49480)

Click to expand commit body
Release Notes:

- N/A

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Xiaobo Liu and Kirill Bulatov created

37d54d8 multi_buffer: Bring `update_path_excerpts` ordering workaround back (#49563)

Click to expand commit body
cc https://github.com/zed-industries/zed/pull/49290

Release Notes:

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

Lukas Wirth created

0341609 bedrock: Add Claude Sonnet 4.6 (#49439)

Click to expand commit body
Release Notes:

- Added support for Anthropic Claude Sonnet 4.6

Co-authored-by: Ona <no-reply@ona.com>

Shardul Vaidya and Ona created

2132c54 Fix gh auth conflict when GH_TOKEN is already set (#49556)

Click to expand commit body
Fixes the workflow failure where `gh auth login --with-token` fails
because `GH_TOKEN` is already set in the environment.

The error was:
```
The value of the GH_TOKEN environment variable is being used for authentication.
To have GitHub CLI store credentials instead, first clear the value from the environment.
```

The fix uses a subshell to unset `GH_TOKEN` before calling `gh auth
login`:
```bash
echo "$GH_TOKEN" | (unset GH_TOKEN && gh auth login --with-token)
```

Release Notes:

- N/A

morgankrey created

09cd340 Update CODEOWNERS (includes suggested entries) (#49552)

Click to expand commit body
This PR updates the CODEOWNERS file based on the current
team-membership-rules.yml in the codeowner-coordinator repo.

**Coverage:** 100% - all paths have an owner.

## ⚠️ Suggested Entries - Review Required

The following paths were assigned based on git blame analysis of team
members.
**Please verify these assignments are correct before merging.**

| Path | Suggested Team | Based On | Commits |
|------|---------------|----------|---------|
| `crates/git_graph` | developer-tools-team | Anthony Eid | 4 |
| `crates/open_path_prompt` | zed-dev-team | Joseph T. Lyons | 1 |
| `crates/platform_title_bar` | platform-team | Finn Evers | 1 |
| `crates/remote_connection` | ecosystem-team | Piotr Osiewicz | 1 |
| `crates/shell_command_parser` | ai-team | Richard Feldman | 2 |
| `crates/sidebar` | platform-team | Finn Evers | 2 |

These entries are marked with `# SUGGESTED` comments in the CODEOWNERS
file.
If incorrect, update `team-membership-rules.yml` in the
codeowner-coordinator repo.

Release Notes:

- N/A

---
_This PR was auto-generated by the
[codeowner-coordinator](https://github.com/zed-industries/codeowner-coordinator)
workflow._

Co-authored-by: swannysec <11968319+swannysec@users.noreply.github.com>

Zed Bot and swannysec created

157a02e Fix `OpenFiles` action not respecting `use_system_path_prompts` setting (#47027)

Click to expand commit body
The OpenFiles action was always using the system file picker dialog,
ignoring the use_system_path_prompts setting. This adds a
workspace-level handler that calls prompt_for_open_path, which respects
the setting, instead of falling through to the global handler.

Closes #46386

Release Notes:

- Fixed "workspace: open files" not respecting "use_system_path_prompts"
setting

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>

Austin Cummings and Kirill Bulatov created

d5d6936 git: Mitigate panic in split diff (#49546)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

9b07658 Fix crash: vim paste panics on editor-copied entire-line selections (#49134)

Click to expand commit body
When clipboard data was produced by the editor's copy/cut with multiple
entire-line selections, vim's paste would panic with `byte index N is
out of bounds`.

The editor's `do_copy` and `cut_common` skip the `\n` separator between
clipboard selections when the previous selection was an entire-line
selection (because the text already ends with `\n`). However, vim's
paste code unconditionally did `start_offset = end_offset + 1`, always
assuming a `\n` separator exists between every pair of selections. This
caused the accumulated offset to exceed the text length, resulting in a
string slicing panic.

The fix checks `clipboard_selection.is_entire_line` to decide whether to
skip the separator, matching the behavior of the editor's own `do_paste`
method. The same fix is applied to both the vim and helix paste
implementations.

Release Notes:

- Fixed a crash when using vim paste on clipboard data copied with the
editor's copy command containing multiple entire-line selections.

Eric Holk created

4491c2c collab: Remove unused `AccessToken` model (#49542)

Click to expand commit body
This PR removes the `AccessToken` database model and its related
queries, as they are no longer used.

Closes CLO-306.

Release Notes:

- N/A

Marshall Bowers created

f07cec5 collab: Validate access tokens through Cloud (#49535)

Click to expand commit body
This PR updates Collab to make it validate access tokens through Cloud
instead of doing it in-house.

We're reusing the `GET /client/users/me` endpoint—which is what we also
call on the client—to validate the user's access token.

We only need to do this when establishing a WebSocket connection, so the
increased latency of a network hop shouldn't be a problem.

Closes CLO-308.

Release Notes:

- N/A

Marshall Bowers created

af050fc Fix git auth conflict in background_agent_mvp workflow (#49537)

Click to expand commit body
Fix git auth conflict in background_agent_mvp workflow

The workflow was manually configuring git authentication with:
```bash
git config --local http.https://github.com/.extraheader "AUTHORIZATION: bearer ..."
```

This conflicted with the authentication already set up by
`actions/checkout@v4`, which uses `AUTHORIZATION: basic ...`.

The conflict caused all crash pipeline runs to fail with:
```
fatal: could not read Username for 'https://github.com'
```

This morning's run (22147984206) failed for all 15 crash candidates
(ZED-4VS, ZED-202, etc.) with this error.

Remove the redundant git config since actions/checkout already handles
authentication properly.

Release Notes:

- N/A

morgankrey created

d3fe7d9 Revert the gutter width limitation for multi buffers (#49536)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/49374

This looks really bad when Zed zooms in and then out.

- N/A

Kirill Bulatov created

045b740 Fix shell quoting and gh auth in docs suggestions workflow (#49518)

Click to expand commit body
Fixes two issues in the documentation suggestions workflow:

1. **Shell quoting bug**: PR titles containing quotes (e.g., `agent_ui:
Add the ability to undo "reject all"`) were breaking the shell script
because the title was substituted directly into the script. Moved
`PR_TITLE`, `PR_NUM`, and `OUTPUT_FILE` to environment variables where
special characters are handled safely.

2. **GH CLI auth issue**: The `gh` CLI sometimes fails to auto-detect
`GH_TOKEN` in the environment, causing `gh pr view` and `gh pr diff` to
fail with "Bad credentials". Added explicit `gh auth login --with-token`
in both the batch-suggestions and cherry-pick-suggestions jobs.

Release Notes:

- N/A

morgankrey created

5b0a3de Add agent worktree directory setting + worktree info persistence (#49139)

Click to expand commit body
Add `agent_worktree_directory` to `GitSettings` for configuring where
agent worktrees are stored (default: Zed data dir). Remove `Copy` derive
from `GitSettings`/`GitContentSettings` (incompatible with String field)
and fix downstream `.as_ref().unwrap()` call sites.

Define `AgentGitWorktreeInfo` (branch, worktree_path, base_ref) and add
it to `DbThread` + `DbThreadMetadata` for persistence and session list
display.

Closes AI-33

Release Notes:

- N/A

Richard Feldman created

423a8c4 git_ui: Add "Review Branch" with agent feature (#49513)

Click to expand commit body
This PR adds a button in the `git: branch diff` view that allows to
quickly and easily send the entire diff to your last used agent for a
review. What this does is automatically submits a (pre-written and
generic) prompt to the last agents you were using in the agent panel
with the whole content of your diff.

<img width="750" height="1964" alt="Screenshot 2026-02-18 at 3  35@2x"
src="https://github.com/user-attachments/assets/493d8cf4-4815-4b01-91a0-6a39ad6219fe"
/>

Release Notes:

- Added a "Review Branch" button in the `git: branch diff` view so that
the whole diff can be quickly sent for review to an agent.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Danilo Leal and Bennet Bo Fenner created

f03691e Revert "Added support for dismissing the toolchain path selector via … (#49504)

Click to expand commit body
…`esc` (#48201)"

This reverts commit 174fc5115243fda191da6a526fa1f12b627c1fcd.

Select toolchain path dialog immediately dismisses upon selecting a
path, preventing the addition of new toolchains

- OpenPathDelegate emits DismissEvents in the `confirm` function too
- when the selection is confirmed, DismissEvent is emitted
- ToolchainSelector calls cancel because it receives the DismissEvent,
and it goes to the Search State
- This prevents the selected toolchain from being resolved and the
ScopePicker being presented

cc: @JosephTLyons 

Release Notes:

- Fixed a regression where the toolchain path selector would immediately
dismiss upon selecting a path, preventing the addition of new
toolchains.

Kurian Jojo created

592219c sidebar: Improve toggle button placement when fullscreen on macOS (#49524)

Click to expand commit body
| Before | After |
| --- | --- |
| <img width="173" height="66" alt="grafik"
src="https://github.com/user-attachments/assets/9e406cf7-67bc-45d9-97dc-6e18515d0206"
/> | <img width="189" height="70" alt="grafik"
src="https://github.com/user-attachments/assets/b37a0c64-4130-4521-be7e-084a69c5a9c8"
/> |



Release Notes:

- N/A

Finn Evers created

1d66bbe Enable type on search by default for the project search (#49374)

Click to expand commit body
Deals with https://github.com/zed-industries/zed/issues/9318
Re-lands https://github.com/zed-industries/zed/pull/42889 with more
fixes to reduce overall flickering

Release Notes:

- Enabled type on search by default for the project search

---------

Co-authored-by: Cole Miller <cole@zed.dev>

Kirill Bulatov and Cole Miller created

0fdf175 anthropic: Remove deprecated models (#49522)

Click to expand commit body
Release Notes:

- anthropic: Removed models that have been deprecated from their API.

Ben Brandt created

1702a05 cloud_llm_client: Delete unused variants of CompletionRequestStatus (#49516)

Click to expand commit body
Small clean up commit.

Co-authored-by: Marshall <marshall@zed.dev>

Release Notes:

- N/A

Tom Houlé created

ff0477b agent_ui: Route agent thread feedback comments through cloud (#49481)

Click to expand commit body
The agent thread feedback comments event was still going through the
standard telemetry pipeline. This routes it through cloud instead, as
was just done for agent thread rated and edit prediction rated, so we
can enforce organization data and privacy settings.

Part of CLO-297

Tom Houlé created

52fc14f agent_ui: Add the ability to undo "reject all" (#48462)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/39294

This PR implements the ability to undo the "reject all" action from the
agent panel (and the other places where this button is surfaced).
Effectively, this allows to recuperate the edits an agent has introduced
in case you either accidentally clicked the button or regretted the
decision to reject all.


https://github.com/user-attachments/assets/6f048b95-dd0a-4a45-8b4f-cd8f99d45cb3

Release Notes:

- Agent: Introduced the ability to undo the "reject all" action from
agent-made changes.

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>

Danilo Leal and Bennet Bo Fenner created

b085d84 language_models: Activate StreamEnded support in completion streams for Cloud provider (#49337)

Click to expand commit body
Now that the cloud-side StreamEnded support has landed, enable it on the
Zed client:

- Send the
`x-zed-client-supports-stream-ended-request-completion-status` header so
cloud knows to send `StreamEnded` status events.
- Track whether `StreamEnded` was received during the stream.
- Emit `StreamEndedUnexpectedly` error when the stream closes without a
`StreamEnded` status, indicating the response was truncated.

Concretely, this means that the agent panel will now display an
abnormally terminated response stream for model calls through a Zed
subscription as an error instead of just stopping.

Release Notes:

- The agent panel now displays an abnormally terminated response stream
for model calls through a Zed subscription as an error instead of just
stopping.

Tom Houlé created

71a6d00 Add sidebar status icons for agent thread states (#49505)

Click to expand commit body
<img width="800" height="1200" alt="image"
src="https://github.com/user-attachments/assets/2b765edc-4be4-476e-891a-9dd81fac2626"
/>

Add icon decorations on the agent icon in the sidebar to show thread
status:

- **Generation done**: blue dot (existing behavior, unchanged)
- **Blocked on tool permission/confirmation**: yellow warning triangle
- **Thread stopped due to an error**: red X

Priority order for decorations: confirmation > error > done > running
spinner.

Confirmation and error decorations persist as long as the thread is
actually in that state and always show regardless of whether the
workspace is active (unlike the blue dot which is notification-based).

(No release notes because this is all feature-flagged.)

Release Notes:

- N/A

Richard Feldman created

4e21e75 Fix multi-workspace restoration and serialization bugs (#49380)

Click to expand commit body
Fix several issues with multi-workspace serialization and restoration
that caused sidebar workspaces to not fully restore after Zed restart.

## Changes

### 1. Resilient restoration — don't let one failing workspace kill the
rest

In `restore_multiworkspace`, the loop restoring each workspace in a
group used `?` on every `.await`. If any single workspace failed (e.g. a
DB read error, item deserialization failure), all remaining workspaces
were silently abandoned. Changed to log-and-continue so each workspace
is attempted independently. `restore_multiworkspace` now returns a
`MultiWorkspaceRestoreResult` containing both the window handle and a
list of errors, which the caller logs individually.

### 2. Proper serialization at lifecycle events

- **`create_workspace`** now assigns a database ID (via `next_id()`) and
writes a `session_id`/`window_id` binding so newly-created workspaces
can be persisted and restored.
- **`remove_workspace`** now deletes the removed workspace from the DB
(preventing zombie restoration) and serializes the updated
multi-workspace state.
- **`activate`** now only serializes when the active workspace actually
changes, and uses the new `set_active_workspace` helper to keep the
ordering correct (set index *then* serialize, not the other way around).
- The `serialize` method now stores its task in `_serialize_task`
instead of fire-and-forget detaching, enabling `flush_serialization` to
await it.

### 3. Flush serialization on quit

The quit handler now calls `flush_serialization` on every workspace and
multi-workspace before `cx.quit()`, bypassing the 200ms throttle to
ensure all `session_id`/`window_id` values are written to the database
before the process exits.

### 4. Await pending tasks on app quit

`MultiWorkspace` now registers an `on_app_quit` handler that awaits all
in-flight serialization, creation, and removal tasks within GPUI's
shutdown timeout. The existing `on_release` handler continues to detach
tasks as a safety net for non-quit window closes, matching the pattern
used by `Room`.

### 5. Track workspace serialization task

`Workspace::serialize_workspace` now stores the actual serialization
task in `_serialize_workspace_task` instead of detaching it, so
`flush_serialization` can cancel any pending throttle *and* await the
in-flight write.

### 6. New persistence helper

Added `set_session_binding` query to update a workspace's `session_id`
and `window_id` in one shot, used by `create_workspace` to bind
newly-created workspaces to the current session.

### 7. Tests

Added tests covering:
- `flush_serialization` completing before quit
- `create_workspace` assigning a DB ID and serializing the active
workspace ID
- Removal of a workspace deleting it from the DB and updating
multi-workspace state
- Restoration resilience when individual workspaces fail

Closes AI-37

(No release notes because this is still feature-flagged.)

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>

Richard Feldman and Anthony Eid created

f63e4fb Revert "editor: Add `FlexClipped` block style and use it for spacer blocks" (#49508)

Click to expand commit body
Reverts zed-industries/zed#49478

Cole Miller created

bf1bb52 Skip /dev/null redirects from terminal auto-allow command extraction (#49503)

Click to expand commit body
Redirects to `/dev/null` (e.g. `2>/dev/null`, `&>/dev/null`) are
known-safe I/O routing, not commands. Previously, `extract_commands`
emitted normalized redirect strings like `"2> /dev/null"` as separate
entries in the command list checked against auto-allow regexes. Since
`check_commands` requires **all** extracted entries to match an allow
pattern, the unmatched redirect caused false-negatives — e.g. `git log
--oneline -20 2>/dev/null || echo ...` would not be auto-allowed despite
matching `^git` and `^echo` patterns.

Rather than removing all redirects from extraction (which would hide
dangerous redirects like `> /etc/passwd` from deny/confirm pattern
checking), this fix surgically skips only `/dev/null` targets during
redirect normalization. Redirects to real files are still emitted and
still require a matching pattern for auto-allow, preserving the
defense-in-depth property.

Closes AI-41

Release Notes:

- Fixed terminal auto-allow patterns incorrectly prompting for
confirmation on commands containing `/dev/null` redirects (e.g.
`2>/dev/null`).

Richard Feldman created

27dffc1 Fix cancellation issues with subagents (#49350)

Click to expand commit body
This PR fixes issues with subagent cancellation, prior to this we would
still show a wait indicator for subagents that were cancelled from the
parent thread. We also removed the `stop_by_user` workaround, that code
path now uses `thread.cancel` directly

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:

- N/A

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>

Bennet Bo Fenner and Ben Brandt created