Commit Graph
208 Commits
Author SHA1 Message Date
Ben Kunkle 8c74db00c4 acp: Fix startup error race condition test flake (#56654)
Self-Review Checklist:

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

Closes #ISSUE

Release Notes:

- N/A or Added/Fixed/Improved ...
2026-05-13 15:24:17 +00:00
Bennet Bo FennerandBen Brandt e78ddcac8d agent: Improve UX when agent tries to edit unsaved buffer (#55655)
Before:

1. Agent tries to edit unsaved file
2. Tool call fails with error telling the agent to ask the user to save
or discard edits
3. User types save/restore
4. Agent uses save/restore tool


https://github.com/user-attachments/assets/c94dd361-e8e0-48ee-be31-da8afe594419

After:

1. Agent tries to edit unsaved file
2. User is prompted to save/restore file
3. User accepts/rejects or saves/discards file manually


https://github.com/user-attachments/assets/1d98a0c4-4420-4426-94f2-42355de230be

Release Notes:

- agent: Improved UX when agent tries to edit unsaved buffer

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-05-08 11:26:03 +00:00
Ben Brandt 759f027f8a acp: Show running agent version in configuration (#55824)
Store the ACP agent version from agent_info and expose it
through AgentConnection so the configuration UI can display it
for connected agents.

Helpful when debugging to know which version is currently running.

<img width="214" height="67" alt="image"
src="https://github.com/user-attachments/assets/4f4c0e3c-a621-48fb-98d4-67329db1e62a"
/>


Self-Review Checklist:

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

Release Notes:

- acp: Show running agent version in the External Agent settings
2026-05-06 09:36:43 +00:00
Ben Brandt 360f955c28 agent_servers: Include stderr in ACP startup exit errors (#55757)
Previously, we weren't waiting on the status future early enough so we
would just hang if we weren't able to start the agent process.

I also added the recent stderr logs in there to help the user debug the
issue, since it is likely relevant in these cases.

<img width="902" height="226" alt="image"
src="https://github.com/user-attachments/assets/204e42ff-4c9b-49e7-8a6d-ecf7b022fbd0"
/>


Self-Review Checklist:

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

Release Notes:

- acp: Improve error messages if the ACP agent fails to start.
2026-05-05 12:39:50 +00:00
Bennet Bo Fenner 1c1b03c3d6 acp: Improve ACP debug view (#54769)
Adds a dropdown to the ACP logs which lets you specify which agent
connection to look at. Also adds a button to restart the connection.

<img width="710" height="1023" alt="image"
src="https://github.com/user-attachments/assets/12430175-3c1d-452f-bc45-d1ec0616b51b"
/>

Release Notes:

- N/A
2026-04-24 15:53:14 +00:00
Lukas Wirth c5a2807492 Remove smol as a dependency from a bunch of crates (#53603)
We aren't making use of it in these crates and it unblocks some
web-related work

Release Notes:

- N/A or Added/Fixed/Improved ...
2026-04-24 10:29:51 +00:00
Ben Brandt 58e2b7ecdd acp: Use new Rust SDK (#52997)
Testing out Niko's new SDK design

Self-Review Checklist:

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


Release Notes:

- N/A
2026-04-22 15:02:57 +00:00
Ben Brandt 2ca94a6032 acp: Register ACP sessions before load replay (#54431)
Insert sessions before awaiting `session/load` so replayed
`session/update` notifications can find the thread.

Self-Review Checklist:

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

Release Notes:

- acp: Fix for some replay events getting dropped when loading a
previous session.
2026-04-22 10:29:34 +02:00
Oliver Azevedo Barnes 7db7ea9277 terminal: Use system shell for non-terminal uses (like spinning up external agents) (#51741)
Closes #46551

Zed was using the `terminal.shell` setting for some actions unrelated to
the terminal GUI, like environment capture, ACP agent startup, context
server startup, and vim `:!`, and so if a user set it to `tmux` or
`nushell`, those paths would fail.

This PR ensures paths unrelated to Zed's terminal use the system path
instead.

Manual testing:

Set `terminal.shell` to `tmux` or any another non-bash executable.

Starting an external agent thread shouldn't break.

Release Notes:

- Fixed ACP agent and other breakage when `terminal.shell` was set to a
non-shell program like `tmux`
2026-04-21 08:06:40 +00:00
Max Brunsfeld a5e78b02de Fix double borrow panic when ACP process dies (#54135)
Release Notes:

- Fixed a crash that would occur when an ACP server process exited
unexpectedly.
2026-04-17 00:36:15 +00:00
Bennet Bo Fenner ff108c89d7 acp: Fix close session not found error (#54009)
Follow up to #53999

Self-Review Checklist:

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

Closes #ISSUE

Release Notes:

- N/A
2026-04-16 14:11:06 +02:00
Eric Holk 549db9fbb3 acp_thread: Make UserMessageId required in AgentConnection::prompt (#53850)
The `user_message_id` parameter on `AgentConnection::prompt` was
`Option<UserMessageId>`, but `NativeAgentConnection::prompt` immediately
called `.expect()` on it, crashing when the value was `None`.

Because the `expect` message said `UserMessageId` was required, this PR
makes the parameter not optional which makes the panic impossible.

This means we also need to unconditionally generate an ID in `send`,
where before we gated this on whether `truncate` returned `Some`.
Generating IDs unconditionally should be find, especially because the
prompt requires them.

Release Notes:

- N/A
2026-04-13 16:59:17 -07:00
Ben BrandtandBennet Bo Fenner d81b73f3d6 acp: Better handling of terminal auth on remote connections (#53396)
We were incorrectly wrapping new terminal auth methods in double ssh
calls.

Only affected ACP beta users, but important for testing and stabilizing
the feature.

We moved the ssh wrapping to be only added in the acp process creation
where it was needed.

Self-Review Checklist:

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

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-04-08 18:21:02 +00:00
Agus ZubiagaandJohn Tur 98c17ca160 language_models: Refactor deps and extract cloud (#53270)
- `language_model` no longer depends on provider-specific crates such as
`anthropic` and `open_ai` (inverted dependency)
- `language_model_core` was extracted from `language_model` which
contains the types for the provider-specific crates to convert to/from.
- `gpui::SharedString` has been extracted into its own crate (still
exposed by `gpui`), so `language_model_core` and provider API crates
don't have to depend on `gpui`.
- Removes some unnecessary `&'static str` | `SharedString` -> `String`
-> `SharedString` conversions across the codebase.
- Extracts the core logic of the cloud `LanguageModelProvider` into its
own crate with simpler dependencies.


Release Notes:

- N/A

---------

Co-authored-by: John Tur <john-tur@outlook.com>
2026-04-07 12:28:19 -03:00
Jakub Konka 29609d3599 language_model: Decouple from Zed-specific implementation details (#52913)
This PR decouples `language_model`'s dependence on Zed-specific
implementation details. In particular
* `credentials_provider` is split into a generic `credentials_provider`
crate that provides a trait, and `zed_credentials_provider` that
implements the said trait for Zed-specific providers and has functions
that can populate a global state with them
* `zed_env_vars` is split into a generic `env_var` crate that provides
generic tooling for managing env vars, and `zed_env_vars` that contains
Zed-specific statics
* `client` is now dependent on `language_model` and not vice versa

Release Notes:

- N/A
2026-04-02 17:06:57 -03:00
Ben Brandt b478dfdf5e acp: Fix the spawn directory for agent servers in remote environments (#52308)
We can't add a current_dir when in remote scenarios in the same place,
it gets added elsewhere.

Reused the same worktree selection logic, and make sure this gets passed
to the RPC call instead.

This fixes something that hasn't made it to preview yet.

Release Notes:

- N/A
2026-03-24 12:52:35 +01:00
Eric Holk f8b74acc0f Move permission outcome construction out of the UI layer (#52050)
Follow-up to the terminal permission params refactor, addressing
@benbrandt's [review
feedback](https://github.com/zed-industries/zed/pull/51782#pullrequestreview-2926899804)
about string formatting leaking into the UI layer.

## Changes

### Outcome construction moved to acp_thread

- Added `PermissionOptionChoice::build_outcome(is_allow)` — builds a
`SelectedPermissionOutcome` from a choice, attaching
`SelectedPermissionParams::Terminal` when the choice carries
`sub_patterns`.
- Added
`PermissionOptions::build_outcome_for_checked_patterns(checked_indices,
is_allow)` — handles the `DropdownWithPatterns` per-command checklist
flow, returning `None` when zero patterns are checked (degrading to
once).

The UI's `authorize_with_granularity` no longer does any
`format!("always_allow:{}",...)` string formatting or
`SelectedPermissionParams` construction.

### `option_kind` folded into `SelectedPermissionOutcome`

`SelectedPermissionOutcome` now carries `option_kind:
acp::PermissionOptionKind`, eliminating the separate parameter that was
threaded through the entire `authorize_tool_call` chain:

```
ThreadView::authorize_tool_call
  → Conversation::authorize_tool_call
    → AcpThread::authorize_tool_call
```

Every signature in this chain dropped one parameter.

### `SelectedPermissionParams` removed from UI imports

The type is now only referenced by `acp_thread` (construction) and
`agent` (consumption). The UI passes `SelectedPermissionOutcome`
opaquely.

Release Notes:

- N/A
2026-03-23 09:13:58 -07:00
Ben BrandtandBennet Bo Fenner 841ca10528 agent_ui: Don't reset provisional title if we already have one (#52193)
## Context

If you went back and edited the first message, we were resetting the
provisional title, even though the title had previously already been set
from a summarization pass.

In order to achieve this, we moved the default thread title logic up the
UI layer, and allowed AcpThreads to have an optional title.

## Self-Review Checklist

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

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-03-23 12:27:12 +00:00
Ben Brandt 3ee2f5b811 acp: Add agent websites to the registry page (#52002)
## Context

The registry now distinguishes between websites and repos, so we can
show either or both if available.

## Self-Review Checklist

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

Release Notes:

- N/A
2026-03-20 21:54:59 +00:00
f586129d2c Terminal permissions: Per-command pipeline UI (#49547)
## Summary

Adds a new permission UI for terminal pipeline commands (e.g. `cargo
test | tail`) that lets users selectively always-allow individual
commands in the pipeline, rather than only offering a blanket
always-allow for the first command.

## Screenshot

<img width="464" height="293" alt="Screenshot 2026-03-18 at 3 27 48 PM"
src="https://github.com/user-attachments/assets/e027eeec-c2b3-4f73-a596-95f42a9adad2"
/>

Release notes:
- The terminal permissions UI now allows you to select individual
subcommands independently.

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-03-20 18:55:49 +00:00
Ben Brandt 8f0826f543 acp: Set agent server cwd from project paths (#52005)
## Context

Add Project::default_path_list and reuse it for agent session work
directories and ACP server startup so agent processes start in the
project context by default

We previously removed all cwd from this hoping to have a global process
shared, but it doesn't work for remote projects. Since we're at the
project boundary anyway, we might as well start it up in a similar spot
as a new thread.


## Self-Review Checklist

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

Release Notes:

- acp: Make sure the agent server is started in a project directory
2026-03-20 15:20:15 +01:00
Ben Brandt d1177dc43c acp: Support terminal auth methods (#51999)
## Context

Brings in support for the new terminal auth methods. Currently behind
AcpBeta feature flag while the RFD stabilizes

## Self-Review Checklist

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

Release Notes:

- N/A
2026-03-20 10:12:00 +00:00
Ben Brandt d84254e36a agent_servers: Move agent_id constants to agent_servers crate (#51738)
Release Notes:

- N/A
2026-03-17 09:25:29 +00:00
Ben Brandt 9c3aa4b9fa agent_ui: Remove special casing for previous built in agents (#51713)
Now that the migration has happened, we can stop making these ever
present

Release Notes:

- N/A
2026-03-16 22:25:04 +00:00
015225196d Store ACP thread metadata (#51657)
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: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-03-16 17:23:02 +01:00
Om Chillure 70a5669842 agent_servers: Fix Claude Agent model resetting to default (#51587)
#### Fixes #51082

#### Description :

When a user configures `default_config_options` (e.g. a specific model)
for an ACP agent, the setting was only applied when creating a new
session. Resuming or loading an existing session (e.g. from history)
skipped this step, causing the model dropdown to revert to "Default
(recommended)".

#### Fix : 

Extract the config options defaulting logic into a shared helper
apply_default_config_options and call it consistently across all three
session entry points: new_session, resume_session, and load_session
Release Notes:

#### Release notes :
Fixed model dropdown resetting to "Default (recommended)" when opening a
previous conversation from history. Configured models (via
default_config_options) are now correctly applied when resuming or
loading existing sessions.


#### Video :
[Screencast from 2026-03-15
12-55-58.webm](https://github.com/user-attachments/assets/977747b9-390c-4f78-91fc-91feace444e1)
2026-03-16 13:41:55 +00:00
Bennet Bo Fenner 0674324fe5 agent: Fix session close capability check (#51479)
Release Notes:

- agent: Fixed an issue where external agents would return an error
because unsupported ACP method was called
2026-03-13 12:27:13 +00:00
Bennet Bo Fenner 8d4913168c acp: Update to 0.10.2 (#51280)
Updates to `0.10.2`, most notable change is implementing
`session/close`.

Release Notes:

- N/A
2026-03-11 12:52:03 +00:00
Bennet Bo FennerandBen Brandt e4b3c0fa84 agent: Re-use ACP connections per project (#51209)
Release Notes:

- N/A

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-03-10 17:32:51 +00:00
Bennet Bo Fenner f4b04af3dc agent: Allow NativeAgent to work with multiple projects (#51202)
This removes the assumption that one project <-> one native agent. The
native agent now maintains a project per session. We don't make use of
this right now, but it will come in handy once we start sharing ACP
connections globally.

Release Notes:

- N/A
2026-03-10 17:04:48 +01:00
Danilo Leal eae21de630 sidebar: Sort threads by created time (#51193)
Release Notes:

- N/A
2026-03-10 12:22:01 -03:00
Ben Brandt a99366a940 agent_servers: Use correct default settings (#51136)
These are edge cases, but there are a few ways you can get into a state
where you are setting favorites for registry agents and we don't have
the setting yet. This prioritizes `type: registry` for agents that we
have in the registry, especially the previous built-ins.

Release Notes:

- N/A
2026-03-09 22:41:59 +00:00
NeelandTom Houlé dc0e41f834 Refresh LLM API token on organization change (#50931)
Emit client-side organization changed events through
`RefreshLlmTokenListener` so it produces the same `RefreshLlmTokenEvent`
used for server-pushed `UserUpdated` messages.

This keeps token refresh fan-out in one place.

Closes CLO-383.

Release Notes:

- N/A

---------

Co-authored-by: Tom Houlé <tom@tomhoule.com>
2026-03-06 19:15:21 +00:00
Ben Brandt 5db8d6d1bc agent: Only use AgentSessionInfo in history (#50933)
Previously we required AgentSessionInfo all over the place, which meant
there were lots of unnecessary fake ones created all over the place.

Made the methods and functions only take the data they need so we only
use these in history contexts now, as intended.

Release Notes:

- N/A
2026-03-06 13:13:23 +00:00
f4e65d8988 agent_servers: Migrate all built-in agents to go via registry (#50094)
This has lots of benefits, but mainly allows users to uninstall agents.

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
2026-02-26 12:24:39 +00:00
Ben Brandt afadd4bca4 agent_server: Remove root_dir from agent server connect APIs (#50093)
This isn't necessary and allows us to potentially share processes across
threads.

Release Notes:

- N/A
2026-02-25 15:40:10 +00:00
Ben Brandt 54ac532388 agent_servers: Use agent display_name for session titles (#50092)
Use a separate `display_name` field (distinct from `server_name`) so
that session titles show a human-readable name. For custom agents this
resolves to the configured display name; for built-ins it falls back to
the server name.

Release Notes:

- N/A
2026-02-25 15:12:00 +00:00
Ben Brandt 6ccf40c26f acp: Remove unnecessary logs for config options (#49476)
Release Notes:

- N/A
2026-02-18 13:47:10 +00:00
Ben BrandtandBennet Bo Fenner b4baea8f3b acp: Enable history for external agents for all users (#49449)
Removes the feature flag around listing and loading existing sessions
for external agents.

Release Notes

- acp: Expose session history for all external agents that support it.

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
2026-02-18 09:54:21 +00:00
Ben Brandt f64484a9e3 acp: Update npm package for claude agent (#49353)
Release Notes:

- N/A
2026-02-17 12:29:57 +00:00
Ben Brandt 92c0de00fc acp: Claude Code -> Claude Agent (#49345)
Update based on
https://platform.claude.com/docs/en/agent-sdk/overview#branding-guidelines

ACP package will be updated shortly.

Release Notes:

- acp: Claude Code is now referred to as Claude Agent, per Anthropic
branding guidelines.
2026-02-17 10:41:10 +00:00
Richard FeldmanandZed Zippy de213ad4e7 Replace always_allow_tool_actions with tool_permissions.default (#48553)
<img width="1275" height="154" alt="Screenshot 2026-02-10 at 6 55 03 PM"
src="https://github.com/user-attachments/assets/db87fe3f-274b-4bca-b342-b72e651ce57c"
/>
<img width="1275" height="176" alt="Screenshot 2026-02-10 at 6 55 15 PM"
src="https://github.com/user-attachments/assets/4b9a0e70-4897-4736-8cc1-8d1415508f58"
/>

Replaces the boolean `always_allow_tool_actions` setting with a
three-valued `tool_permissions.default` field (`"allow"` / `"confirm"` /
`"deny"`).

Release Notes:

- Introduced per-tool permission settings, including regexes for
controlling when tools may be auto-allowed, auto-denied, or always
require confirmation.
- Replaced the `always_allow_tool_actions` setting with
`tool_permissions.default`.

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-10 18:57:31 -05:00
7a6674d5dc agent: Move subagent spawning to ThreadEnvironment (#48381)
TODO
- [x] Cancellation
- [x] Show subagent card as soon as tool_name == "subagent"
- [x] Keybinding for closing subagent full screen view
- [x] Only fire subagent notifications when appropriate
- [x] Fix tests

Release Notes:

- N/A

---------

Co-authored-by: Cameron <cameron@zed.dev>
Co-authored-by: Tom Houlé <tom@tomhoule.com>
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-02-10 11:26:01 +00:00
Ben Brandt 57e1681809 acp: Cleanup unneeded cx from config state methods (#48353)
Release Notes:

- N/A
2026-02-04 13:12:49 +00:00
Ben Brandt 8ff52904a2 acp: Remove feature flag for session config options (#48350)
Release Notes:

- acp: Support ACP Session Config options for agents which provide them.
2026-02-04 12:45:13 +00:00
Joseph T. Lyons 72b151e3aa Revert "Allow always_allow patterns for Nushell, Elvish, and Rc shells" (#48050)
Reverts zed-industries/zed#47908

This PR inadvertently caused a regression:

- https://github.com/zed-industries/zed/issues/48047
2026-01-30 21:26:13 +00:00
Richard FeldmanandZed Zippy 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
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
Ben Brandt ee721d393f acp: Dedupe session/list calls (#47677)
Noticed we were calling session/list twice now, this makes sure it only
happens once on load

Release Notes:

- N/A
2026-01-26 19:10:30 +00:00
Piotr OsiewiczandZed Zippy c9997592e4 build: Simplify build graph (#47253)
- **title_bar: Extract platform_title_bar from title_bar**
- **file_finder no longer depends on search and agent_servers no longer
depend on language_models**

Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-01-23 18:29:20 +01:00