Commit Graph
34112 Commits
Author SHA1 Message Date
Richard Feldman feb04ff2bd Restrict icon paths to subdirectories of agent extensions (#44183)
Right now agent extensions can specify icon paths that point anywhere.
This changes it so that they can only specify icon paths that are
subdirectories of the extension's root dir.

Release Notes:

- Restrict agent server extension icon paths to subdirectories of the
extension's root directory
2026-01-09 04:21:08 +00:00
abdellah hariti 1fb2922be3 Vim search */# without moving cursor initially (#46244)
The default behavior for Vim search with `*` and `#` in normal mode is
to initiate a search and immediately jump to the next or previous match
respectively.

This behavior can be annoying, so Vim has many plugins to address this
specifically:

- [vim-asterisk](https://github.com/haya14busa/vim-asterisk)
-
[vim-SearchHighlighting](https://github.com/inkarkat/vim-SearchHighlighting)
- [vim-tranquille](https://github.com/RRethy/vim-tranquille)

This PR tries to emulate this behavior natively keeping up with Zed's
sane defaults and deviating from vanilla Vim when it makes sense.


Release Notes:

- Vim: `*` and `#` search doesn't jump immediately to next / previous
search.
2026-01-09 04:13:51 +00:00
Richard Feldman 295f9d6ff9 Add guidance for terminal tool about being a pty (#46417)
Release Notes:

- N/A
2026-01-09 04:13:36 +00:00
Richard Feldman 558a741d75 Visual test infrastructure improvements (#46324)
This PR improves the visual test infrastructure:

- Adds controllable foreground executor for deterministic task
scheduling
- Adds tooltip hover testing capability
- Improves error handling in visual test runner
- Includes planning documentation for the approach

Release Notes:

- N/A
2026-01-09 03:56:14 +00:00
acbb32d19f Subagents PR 1: Feature flag + tool skeleton (#46186)
This PR adds the foundation for the subagents feature:

- Add `SubagentsFeatureFlag` with staff-disabled default
- Create `SubagentTool` struct with input schema for
task/summary/context-low prompts
- Register `SubagentTool` conditionally when feature flag is enabled
- Tool returns stub message 'not yet implemented' for now

Release Notes:

- N/A

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
Co-authored-by: Yara <yara@zed.dev>
2026-01-08 22:53:02 -05:00
Richard FeldmanClaude Opus 4.5Amp
274b1f3ac9 Add tool permission evaluation logic (#46155)
This builds on https://github.com/zed-industries/zed/pull/46112 (which
should be merged first) and adds the permission evaluation logic and
integrates it with the terminal tool as part of the tool permissions
feature. This is a separate PR for [stacked
diffs](https://newsletter.pragmaticengineer.com/p/stacked-diffs) to make
review easier.

## Changes

- **Add `tool_permissions.rs`** with `decide_permission()` function that
implements:
  - `deny > confirm > allow` precedence hierarchy (security-critical)
  - Case-sensitive and case-insensitive regex matching
  - Integration with existing `always_allow_tool_actions` setting
  - Comprehensive unit tests (15 tests)

- **Integrate with terminal tool**:
  - Commands matching deny rules are blocked immediately with an error
  - Commands matching allow rules proceed without confirmation dialog
  - Commands requiring confirmation show the dialog as before
  - Added integration tests for deny and allow rule scenarios

Co-Authored-By: Claude Opus 4.5

Release Notes:

- N/A

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-01-08 22:49:15 -05:00
Richard Feldman b4d69db524 Allow Escape to interrupt agent thread from conversation focus (#46410)
When focus is on the conversation part of the agent panel (not the
message editor), pressing Escape now interrupts the running thread.
Previously, Escape only worked when the message editor had focus.

Release Notes:

- Pressing Esc when the agent panel is focused now interrupts the
running thread even if the text input box is not specifically focused.
2026-01-08 22:39:06 -05:00
Max Brunsfeld c17b48782b Revert "Make tasks inherit their callers priority" (#46413)
Reverts zed-industries/zed#46179

⚠️ Don't merge this until we confirm that it fixes the performance
regression when saving buffers while scrolling ⚠️
2026-01-08 22:04:18 -05:00
Marshall Bowers 32af786a70 collab: Remove GET /contributor endpoint (#46415)
This PR removes the `GET /contributor` endpoint from Collab, as it has
been moved to Cloud.

Release Notes:

- N/A
2026-01-09 02:39:19 +00:00
Richard Feldman 0e97c18fd6 Add breakpoint hover visual tests with VisualTestPlatform (#46404)
Implements visual tests for breakpoint hover states in the editor gutter
with three states:
1. **No hover** - just line numbers
2. **Hover with indicator** - blue circle appears next to the line
3. **Hover with tooltip** - shows 'Set breakpoint' with F9 keybinding

- Added `VisualTestPlatform` that combines real Mac rendering with
controllable `TestDispatcher` for deterministic task scheduling and time
control
- Added `VisualTestAppContext::with_asset_source()` to enable SVG icon
rendering in visual tests (uses real Assets instead of empty source)
- Added F9 keybinding for ToggleBreakpoint so tooltip shows the
keybinding
- Removed debug `eprintln!` statements from editor, element, svg, and
window

The `VisualTestPlatform` enables `advance_clock()` which is essential
for testing time-based behaviors like tooltip delays. Without
deterministic time control, tests for hover states and tooltips would be
flaky.

Release Notes:

- N/A
2026-01-08 21:04:50 -05:00
Danilo Leal 144ff825e2 git_ui: Add some fixes and improvements to the worktree picker (#46407)
This PR adds some clean up to the worktree picker: making sure that
worktree names render just one line, even when they might have multiple
lines (that was making each line item break for me), removing
superfluous icons, and making the footer controls more consistent with
the branch picker, where the buttons change to "Create..." if you're in
a state where the only match is the one to create a new worktree.


https://github.com/user-attachments/assets/e63aa8c9-b5a0-443d-a2ab-7759daed10d1

Release Notes:

- Git: Fixed some UI bugs in the worktree picker as well as improved the
UX for creating worktrees based off of the current or default branch.
2026-01-08 21:40:41 -03:00
Mikayla Maki 06bd9005ab agent: Add turn statistics to agent panel (#46390)
I really enjoyed this feature in Claude Code. Helps me get a sense of
how effortful something is.

Release Notes:

- Added a "show_turn_stats" setting, default to false, that shows the
timer and the number of tokens down.
2026-01-09 00:33:38 +00:00
Martin Pool fbd759bfc8 Make RealFs::metadata not error on recursive/looped symlinks (#45458) 2026-01-09 00:14:52 +00:00
Max BrunsfeldandBen Kunkle ad369ca2b7 ep: Cache Anthropic client (#46406)
This makes running `predict` with the teacher model much faster, when
there are many examples.

Release Notes:

- N/A

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-01-09 00:04:40 +00:00
renovate[bot] a842e1db2e Update Rust crate aws-sdk-bedrockruntime to v1.113.0 [SECURITY] (#46400)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[aws-sdk-bedrockruntime](https://redirect.github.com/awslabs/aws-sdk-rust)
| workspace.dependencies | minor | `1.112.0` → `1.113.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[GHSA-g59m-gf8j-gjf5](https://redirect.github.com/awslabs/aws-sdk-rust/security/advisories/GHSA-g59m-gf8j-gjf5)

## **Summary**
This notification is related to the use of specific values for the
region input field when calling AWS services. An actor with access to
the environment in which the SDK is used could set the region input
field to an invalid value.

A defense-in-depth enhancement has been implemented in the AWS SDK for
Rust. This enhancement validates that a region used to construct an
endpoint URL is a valid host label. The change was released on November
6, 2025. This advisory is informational to help customers understand
their responsibilities regarding configuration security.

## **Impact**
Customer applications could be configured to improperly route AWS API
calls to non-existent or non-AWS hosts. While the SDK was functioning
safely within the requirements of the shared responsibility model,
additional safeguards have been added to support secure customer
implementations.

**Impacted versions**: All versions prior to [November 6, 2025
release](https://redirect.github.com/awslabs/aws-sdk-rust/releases/tag/release-2025-11-06)

## **Patches**
On November 6, 2025, an enhancement [1] was made to the AWS SDK for Rust
release, which validates the formatting of a region, providing
additional safeguards.

## **Workarounds**
No workarounds are needed, but as always developers should ensure that
their application is following security best practices:
- Implement proper input validation in your application code
- Update to the latest AWS SDK for Rust release on a regular basis
- Follow AWS security best practices [2] for SDK configuration

## **References**
Contact AWS Security via the vulnerability reporting page or email
[aws-security@amazon.com](mailto:aws-security@amazon.com).

## **Acknowledgement**
AWS Security thanks Guy Arazi for bringing these customer security
considerations to our attention through the coordinated disclosure
process.

[1]
[https://github.com/smithy-lang/smithy-rs/pull/4383](https://redirect.github.com/smithy-lang/smithy-rs/pull/4383)
[2] https://docs.aws.amazon.com/sdk-for-rust/latest/dg/security.html

---

### Configuration

📅 **Schedule**: Branch creation - "" in timezone America/New_York,
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 01:33:10 +02:00
renovate[bot] e71353f6c6 Update Rust crate aws-sdk-kinesis to v1.95.0 [SECURITY] (#46401)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [aws-sdk-kinesis](https://redirect.github.com/awslabs/aws-sdk-rust) |
dependencies | minor | `1.91.0` → `1.95.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[GHSA-g59m-gf8j-gjf5](https://redirect.github.com/awslabs/aws-sdk-rust/security/advisories/GHSA-g59m-gf8j-gjf5)

## **Summary**
This notification is related to the use of specific values for the
region input field when calling AWS services. An actor with access to
the environment in which the SDK is used could set the region input
field to an invalid value.

A defense-in-depth enhancement has been implemented in the AWS SDK for
Rust. This enhancement validates that a region used to construct an
endpoint URL is a valid host label. The change was released on November
6, 2025. This advisory is informational to help customers understand
their responsibilities regarding configuration security.

## **Impact**
Customer applications could be configured to improperly route AWS API
calls to non-existent or non-AWS hosts. While the SDK was functioning
safely within the requirements of the shared responsibility model,
additional safeguards have been added to support secure customer
implementations.

**Impacted versions**: All versions prior to [November 6, 2025
release](https://redirect.github.com/awslabs/aws-sdk-rust/releases/tag/release-2025-11-06)

## **Patches**
On November 6, 2025, an enhancement [1] was made to the AWS SDK for Rust
release, which validates the formatting of a region, providing
additional safeguards.

## **Workarounds**
No workarounds are needed, but as always developers should ensure that
their application is following security best practices:
- Implement proper input validation in your application code
- Update to the latest AWS SDK for Rust release on a regular basis
- Follow AWS security best practices [2] for SDK configuration

## **References**
Contact AWS Security via the vulnerability reporting page or email
[aws-security@amazon.com](mailto:aws-security@amazon.com).

## **Acknowledgement**
AWS Security thanks Guy Arazi for bringing these customer security
considerations to our attention through the coordinated disclosure
process.

[1]
[https://github.com/smithy-lang/smithy-rs/pull/4383](https://redirect.github.com/smithy-lang/smithy-rs/pull/4383)
[2] https://docs.aws.amazon.com/sdk-for-rust/latest/dg/security.html

---

### Configuration

📅 **Schedule**: Branch creation - "" in timezone America/New_York,
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 01:32:23 +02:00
renovate[bot] 1041381a7a Update Rust crate aws-sdk-s3 to v1.112.0 [SECURITY] (#46402)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [aws-sdk-s3](https://redirect.github.com/awslabs/aws-sdk-rust) |
dependencies | minor | `1.108.0` → `1.112.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[GHSA-g59m-gf8j-gjf5](https://redirect.github.com/awslabs/aws-sdk-rust/security/advisories/GHSA-g59m-gf8j-gjf5)

## **Summary**
This notification is related to the use of specific values for the
region input field when calling AWS services. An actor with access to
the environment in which the SDK is used could set the region input
field to an invalid value.

A defense-in-depth enhancement has been implemented in the AWS SDK for
Rust. This enhancement validates that a region used to construct an
endpoint URL is a valid host label. The change was released on November
6, 2025. This advisory is informational to help customers understand
their responsibilities regarding configuration security.

## **Impact**
Customer applications could be configured to improperly route AWS API
calls to non-existent or non-AWS hosts. While the SDK was functioning
safely within the requirements of the shared responsibility model,
additional safeguards have been added to support secure customer
implementations.

**Impacted versions**: All versions prior to [November 6, 2025
release](https://redirect.github.com/awslabs/aws-sdk-rust/releases/tag/release-2025-11-06)

## **Patches**
On November 6, 2025, an enhancement [1] was made to the AWS SDK for Rust
release, which validates the formatting of a region, providing
additional safeguards.

## **Workarounds**
No workarounds are needed, but as always developers should ensure that
their application is following security best practices:
- Implement proper input validation in your application code
- Update to the latest AWS SDK for Rust release on a regular basis
- Follow AWS security best practices [2] for SDK configuration

## **References**
Contact AWS Security via the vulnerability reporting page or email
[aws-security@amazon.com](mailto:aws-security@amazon.com).

## **Acknowledgement**
AWS Security thanks Guy Arazi for bringing these customer security
considerations to our attention through the coordinated disclosure
process.

[1]
[https://github.com/smithy-lang/smithy-rs/pull/4383](https://redirect.github.com/smithy-lang/smithy-rs/pull/4383)
[2] https://docs.aws.amazon.com/sdk-for-rust/latest/dg/security.html

---

### Configuration

📅 **Schedule**: Branch creation - "" in timezone America/New_York,
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-09 01:32:14 +02:00
Danilo Leal f18b288fdf gpui: Fix bug on on_hover callbacks (#46371)
Tackling this as I noticed a bug in the agent panel where the button to
delete a thread, which appeared only on hover, stopped showing up. PRs
#43324 and #45437 fixed stuff in applying hover styles through
`.hover()` but broke the `.on_hover()` callback. Problem was that both
methods were sharing the same `element_state.hover_state` but running at
different phases. The solution here was to add a new independent state
field for the hover listener (`hover_listener_state`) while the hover
style method keeps using `hover_state`.

Release Notes:

- Agent: Fixed a bug where the button to delete a thread stopped showing
up.
2026-01-08 19:47:22 -03:00
Oleksandr KholiavkoandAnthony Eid fa08e50346 Remove const generics from data table (runtime column count support) (#46341)
This PR removes the const generics limitation from the data table
component, enabling tables with a dynamic number of columns determined
at runtime.

**Context:**  
This is the next infrastructure step split out from the [original CSV
preview draft PR](https://github.com/zed-industries/zed/pull/44344). The
draft PR remains open as a reference and will continue to be decomposed
into smaller, reviewable pieces.

**Details:**  
- Introduces a `TableRow` newtype to enforce column count invariants at
runtime, replacing the previous const generic approach. It's api surface
is larger than is currently used, as it's planned to be used in CSV
feature itself.
- Refactors the data table and all usages (including the keymap editor)
to work with runtime column counts.
- This change is foundational for supporting CSV preview and other
features that require flexible, dynamic tables.
- Performance impact has not been formally measured, but there is no
noticeable slowdown in practice.

---

Release Notes:
- N/A (internal infrastructure change, no user impact)

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-01-08 17:32:38 -05:00
Richard FeldmanandAmp 7a0b19b6b5 Add granular tool permissions settings (#46112)
Adds granular per-tool permission settings for the Zed agent with
regex-based rules.

Release Notes:

- N/A

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-01-08 14:32:18 -08:00
0f75c079a5 Edit prediction: teacher prompt improvements (#46392)
Release Notes:

- N/A

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-01-08 22:12:32 +00:00
Danilo Leal adee14646c agent_ui: Improve the Bedrock configuration UI (#46397)
Just some housekeeping UI clean up on the configuration instructions for
Bedrock.

Release Notes:

- N/A
2026-01-08 21:37:22 +00:00
Mikayla Maki e1f6ff2bf4 Delete docs/telemetry-log-revamp-plan.md (#46398)
Whoops

Release Notes:

- N/A
2026-01-08 21:34:20 +00:00
Agus ZubiagaandBen Kunkle 23f571d64c ep: Enable workspace test-support (#46395)
Some code got added to `workspace` that prevents us from running tests
for the `edit_prediction(cli)` crates specifically without the
`test-support` feature flag.

Release Notes:

- N/A

Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-01-08 18:30:07 -03:00
Danilo Leal fdd2dd5748 agent: Fix profiles tooltip border (#46396)
One _character_ change to fix the dividing border in the agent panel's
profile tooltip. 😬

Release Notes:

- N/A
2026-01-08 21:19:40 +00:00
Richard Feldman 37146e6e60 Use real Zed fonts in visual tests (#46394)
This PR fixes visual tests to use the actual Zed fonts (IBM Plex Sans /
Lilex) instead of Courier.

Release Notes:

- N/A
2026-01-08 16:18:22 -05:00
Zachiah Sawyer f84f0ed03f Fix multiline regex (#46298)
Closes #45776

It didn't enable multiline mode before `¯\_(ツ)_/¯`. If there is a reason
this fix won't work please let me know but it seems like this one was
just an easy fix.

Release Notes:
- Improved multiline regex behavior
2026-01-08 22:52:14 +02:00
Mikayla MakiandYara 374163cebd telemetry: Add live telemetry log viewer (#46391)
Release Notes:

- N/A

---------

Co-authored-by: Yara <yara@zed.dev>
2026-01-08 20:33:54 +00:00
Kirill Bulatov 7300456dea Pull server diagnostics without backtrace printing (#46383)
Follow-up of https://github.com/zed-industries/zed/pull/45365

* Stops printing backtraces for server diagnostics pulls on error

<img width="1728" height="1084" alt="backtrace"
src="https://github.com/user-attachments/assets/b2e75e73-611a-428b-8056-f0757e51adf2"
/>

* Reduce one `.detach` codepath into `.await`

Release Notes:

- N/A
2026-01-08 19:07:18 +00:00
Dylan ef4c1b34ba Add '#' to word_characters in JSON/CSS config (#45400) 2026-01-08 21:04:21 +02:00
KyleBarton 7311e3c5da Instruct users to use links rather than aliases for podman compatibility (#46387)
Release Notes:
- Improved docs regarding podman compatibility with dev containers
2026-01-08 10:29:53 -08:00
Conrad Irwin 0660d8e0c8 Make URL parsing less strict for agent generated URLs (#46330)
Before this we failed to parse some file:/// links the agent would
generate causing it to open in the system default app and not zed.

Release Notes:

- N/A
2026-01-08 17:47:41 +00:00
Marshall Bowers b1316b0c49 component_preview: Fix license symlink (#46379)
This PR fixes the symlink for the license in the `component_preview`
crate, as it was referencing itself after
https://github.com/zed-industries/zed/pull/45382.

Release Notes:

- N/A
2026-01-08 17:12:54 +00:00
Kirill Bulatov 31343566e7 Do not react on already observed buffer edits' versions (#46308)
If I apply

```diff
diff --git a/crates/action_log/src/action_log.rs b/crates/action_log/src/action_log.rs
index 404fb3616d..ece063c34f 100644
--- a/crates/action_log/src/action_log.rs
+++ b/crates/action_log/src/action_log.rs
@@ -223,6 +223,7 @@ impl ActionLog {
             futures::select_biased! {
                 buffer_update = buffer_updates.next() => {
                     if let Some((author, buffer_snapshot)) = buffer_update {
+                        dbg!(&author);
                         Self::track_edits(&this, &buffer, author, buffer_snapshot, cx).await?;
                     } else {
                         break;
```

on top of `main`, `User` and `Agent` will always interleave.

This happens because `action_log` does updates on `Entity<Buffer>` which
is a current editor's buffer, tracked, and updated by agent output (acp
or regular threads) — those updates come back as `BufferEvent::Edited`
event after each agent's edit and forces unnecessary computations.

Instead, update tracked buffer's version after each agent update report
to only react on one, `Agent`-authored, edit events.

Release Notes:

- N/A
2026-01-08 17:09:24 +00:00
Max Brunsfeld 8bbc3c36c4 Fix EP CLI output flicker (#46313)
Release Notes:

- N/A
2026-01-08 17:08:24 +00:00
Dinoandneel 00e3b2eb91 vim: Fix bug where repeat operator could lead to unrecoverable replaying state (#46376)
When a recorded action moves focus away from the editor (e.g.,
`buffer_search::Deploy`), the `EndRepeat` action handler is not invoked
because is node is no longer on the dispatch path. This left
`dot_replaying` set to `true`, causing subsequent repeats to malfunction
and the `VimGlobals.pre_count` value to never be reset.

Reset `dot_replaying` as a fail-safe when the replayer exhausts its
action queue, ensuring the state is always cleaned up regardless of
whether `EndRepeat` was handled.

Release Notes:

- Fixed vim repeat (`.`) breaking when the recorded action moves focus
away from the editor

Co-authored-by: neel <neel@chot.ai>
2026-01-08 16:41:19 +00:00
Rocky Shi 648d1de26b vim: Implement text-based matching bracket logic for Vim '%' motion to correctly find pairs within comments (#45559)
Closes #25435

Release Notes:

- Improved vim's '%' motion to always fall back to text-based bracket
matching when language-aware matching fails
2026-01-08 16:35:30 +00:00
Ben Kunkle 9f8dd4c163 Improve LSP button error message (#46377)
Greatly increases max width of the message we show, but truncates the
message to only ever show the first line

| LSP | OLD | NEW |
|-|-|-|
| JSON | <img width="720" height="199" alt="image"
src="https://github.com/user-attachments/assets/77c2299a-0fd7-4210-9e50-b99c60b07f54"
/> | <img width="1219" height="205" alt="Screenshot 2026-01-08 at 11 13
07 AM"
src="https://github.com/user-attachments/assets/dfdb53a6-56e4-483a-8abc-25d99f0a5ae6"
/> |
| PS1 | <img width="743" height="205" alt="image"
src="https://github.com/user-attachments/assets/378d5d41-a005-4205-b3fc-956e227321c5"
/> | <img width="1219" height="205" alt="Screenshot 2026-01-08 at 11 19
13 AM"
src="https://github.com/user-attachments/assets/b8d05fb1-20f8-4983-be94-cb5735d84faf"
/> |


Release Notes:

- N/A
2026-01-08 11:27:00 -05:00
Danilo Leal 7f645033f9 agent: Make reject/accept keybindings consistent with restore/stage (#46373)
This primarily frees up, for example, `cmd-n` to create a new untitled
file if you're in the agent diff tab.

Release Notes:

- N/A
2026-01-08 12:48:06 -03:00
Dino e0f445db8c Enable test-support features for some dev dependencies (#46370)
The `vim` crate's tests depend on `git_ui`, which transitively depends
on `recent_projects` with `test-support` enabled. This causes
`recent_projects` to include RemoteConnectionOptions::Mock` variant
handling. However, `git_ui` was not enabling its `test-support` feature,
causing compilation failures when the Mock variant was expected but not
available.

This commit enables the `test-support` feature for both `git_ui` and
`title_bar` dev-dependencies in the `vim` crate, ensuring the Mock
variant is consistently available during testing.

Release Notes:

- N/A
2026-01-08 15:22:03 +00:00
Richard Feldman 9be436b1ef Capture terminal output when thread is interrupted (#46306)
<img width="707" height="778" alt="Screenshot 2026-01-07 at 8 34 00 PM"
src="https://github.com/user-attachments/assets/59842820-079b-4d47-9bdd-f77300f8a60e"
/>

When the user presses Esc or the Stop button to interrupt a thread,
terminal tools now capture their output and include it in the tool
result. This allows the model to see what was happening in the terminal
when the user interrupted, so it can answer questions about the output.

## Changes

- `Thread::cancel()` now returns a `Task` that waits for tools to
respond to cancellation before flushing pending messages
- Terminal tool uses `select!` to detect cancellation signal and
immediately kills the terminal and captures output
- `run_turn_internal` uses `select!` to break out of event loop on
cancel
- Added test for terminal tool cancellation output capture

This is a follow-up to #46218 which added similar functionality for the
"Stop" button on individual terminal tool cards.

Release Notes:

- Interrupting the agent now captures terminal output so the model can
see what was running when you stopped it
2026-01-08 09:40:56 -05:00
Michael Benfield 1239ac53f8 Inline assistant tools: no more feature flag (#46107)
Release Notes:

- The inline assistant now has the ability to display messages and will
be less likely to insert non-code text.
2026-01-08 06:24:40 -08:00
Oleksiy Syvokon 11cfdb1e62 Add ep split subcommand for dataset splitting (#46364)
Adds a new `ep split` command that splits JSONL datasets into multiple
output files with stratification by `repository_url` when present.

Example usage:

  ep split input.jsonl train.jsonl=80% valid.jsonl=rest

Release Notes:

- N/A
2026-01-08 13:31:26 +00:00
Danilo Leal 1fa9dd6284 lsp_button: Fix long LSP version label (#46359)
If the LSP version label ends up being super long, we now truncate it
and add a tooltip so you can see the whole thing. This avoids the
submenu width from being extremely big:

<img width="500" height="310" alt="Screenshot 2026-01-08 at 9  10@2x"
src="https://github.com/user-attachments/assets/4729b3f8-000d-4bb5-8908-dc243a2d6e7b"
/>

Release Notes:

- Fixed a visual bug where long LSP version labels would increase the
LSP submenu width too much.
2026-01-08 12:18:51 +00:00
Lukas Wirth f053aeb4dd remote: Introduce a proper mock remote connection (#46337)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-08 12:13:57 +00:00
Oleksiy Syvokon a87d4c84c9 ep: Allow matching patches against files without trailing newlines (#46357)
A proper fix would be to add `\No trailing newline` marker and handle
it. For now, we do a simpler workaround

Release Notes:

- N/A
2026-01-08 11:54:26 +00:00
Iago Bermúdez 464a55038c docs: Update "Custom Keybindings for Extension-Based Agents section" to include a troubleshooting note for defining an agent name (#46144)
## Description
When trying to setup the OpenCode external agent the other day, I was
having trouble setting the keybinding using the docs. The issue was that
it said to use the same name as the one written in the UI. While this
works when the external agent is defined using the `settings.json` file,
it didn't work when setting up the keybinding after installing the
extension through the extension marketplace.

Since the solution I found was to define the agent name as 'opencode'
instead of 'OpenCode' (which is the name that shows up in the UI) I
thought it would be appropiate to indicate that sometimes you might need
to set it up using a different name.

Release Notes:

- N/A
2026-01-08 08:46:18 -03:00
Kirill Bulatov f599864294 Fail early if clangd is downloaded on aarch Linux (#46346)
Part of https://github.com/zed-industries/zed/issues/46182

One caveat of this fix is that already downloaded clangd versions will
error with the old, "cannot start binary" error.
The new ones will be getting

<img width="1728" height="1084" alt="image"
src="https://github.com/user-attachments/assets/d2fdafed-6e60-4bc6-9eb2-b785fff65f3a"
/>

though.

Release Notes:

- N/A
2026-01-08 11:05:15 +00:00
Oleksiy Syvokon 4c46872ab7 ep: Handle errored requests in Anthropic batches (#46351)
Also, save all requests in a single sqlite transaction -- much faster.

Release Notes:

- N/A
2026-01-08 10:59:03 +00:00
Smit Barmase 5ae3cf0d47 settings_ui: Fix settings search missing results when BM25 finds partial matches (#46349)
Closes #44038

BM25 results were fully replacing fuzzy results, which caused some items
to disappear from search. For example, "Show Menus" wouldn’t show up
when searching for "menu". This happened due to limitations in the
Porter stemmer used by the library. Fuzzy search matched correctly, but
its results were getting overwritten. We now merge both result sets
instead.

Release Notes:

- Fixed an issue where settings search missed some results, like "Show
Menus" when searching for "menu".
2026-01-08 16:13:14 +05:30