Commit Graph
34680 Commits
Author SHA1 Message Date
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
Ben Kunkle cfd6144af8 ep_cli: Only check cursor excerpt for reversals (#48044)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 16:01:16 -05:00
Ben Kunkle 3a2a43ab84 ep_cli: Allow dynamically loading prompts (#48046)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 14:55:24 -05:00
Dino b029238af2 settings: Extract project settings JSON schema (#47939)
Introduces a separate JSON schema for project settings that excludes
user-only settings like `auto_update`, `telemetry`, `vim_mode`, etc.
This provides more accurate autocomplete and validation when editing
`.zed/settings.json`.

- Add `SettingsStore::project_json_schema`
- Map `.zed/settings.json` to `zed://schemas/project_settings` schema URL

Release Notes:

- Improved autocomplete for the project settings file
(`.zed/settings.json`) to only include settings that are valid at the
project level, excluding user-only settings.
2026-01-30 18:55:09 +00:00
Lena 325afbddff API-based version of duplicates bot (#48041)
This is still only a debugging/evaluation version (which is why it has
e.g. hardcoded stuff). It successfully ran a few times triggered
manually, so we're replacing the broken version on `main` with this to
see how it fares on incoming issues.

Release Notes:

- N/A
2026-01-30 18:33:50 +00:00
Cole Miller a7596c468e Bump wax to 0.7 (#48042)
Closes #47756
Closes ZED-3WQ

Release Notes:

- N/A
2026-01-30 18:24:23 +00:00
Lukas Wirth 3d7fe6e1f8 agent_ui: Add debug command to copy and paste agent threads (#48039)
Temporary feature meant to aid with internal performance debugging

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 19:07:08 +01:00
Kyle Kelley 3723a2560a repl: Render application/json media types from Jupyter kernels (#47905)
Closes #47757

Component of https://github.com/zed-industries/zed/issues/9778

<img width="799" height="913" alt="image"
src="https://github.com/user-attachments/assets/ac496987-bf03-4ea4-99f0-d327e57e7b20"
/>

Release Notes:

- Added JSON output support to REPL
2026-01-30 11:09:45 -06:00
Oleksiy Syvokon 7aa8c742d8 Add ep split --no-stratify option (#48036)
Release Notes:

- N/A
2026-01-30 16:59:46 +00:00
Ben Kunkle fa68aa7704 ep_cli: Further improve reversal ratio (#48028)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 10:44:15 -05:00
Oleksiy Syvokon c3ce20b72b ep: Update teacher prompt to reduce edit reversals (#48022)
Release Notes:

- N/A
2026-01-30 17:04:11 +02:00
Lukas Wirth e80221ddc3 multi_buffer: Reduce region clones (#48025)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 15:01:49 +00:00
Lukas Wirth 9b3777a14e multi_buffer: Speed up Anchor::to_offset resolution (#48021)
We used to just use the anchor resolution function that allows resolving
multiple anchors in one loop before. That has a lot of overhead though
when we only have a single anchor to resolve, so instead we just
specialize that case now as resolving a single anchor to an offset is a
super common operation.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 15:01:18 +00:00
Mayank VermaandSmit Barmase 316a9702d4 workspace: Fix closed pane items not reopening due to stale preview state (#45286)
Closes #45198

Release Notes:

- Fixed an issue where "Reopen Closed Item" would fail to reopen tabs
that had been converted from preview to non-preview before being closed.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-01-30 20:22:39 +05:30
Lukas Wirth 024345f999 editor: Deduplicate multibuffer blame error messages (#48013)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 12:21:11 +00:00
Oleksiy Syvokon 80b9c3a908 ep: Add --cache-only option to avoid sending requests (#48011)
Release Notes:

- N/A
2026-01-30 13:48:27 +02:00
Cameron McloughlinandBen Brandt 5eeff4942c agent_ui: Subagent permissions (#48005)
Release Notes:

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

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-01-30 10:40:53 +00:00
Oleksiy Syvokon bf829a6da5 ep: Handle input data errors (#48004)
Release Notes:

- N/A
2026-01-30 10:33:25 +00:00
Lukas Wirth 3e5d1ee8b9 terminal: Update title changed info on the background (#48000)
This can take several milliseconds on windows blocking the main thread
noticably

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 09:29:19 +00:00
David BarskyandLukas Wirth 185a80a21b cli: Teach --diff to recurse into directories and add a MultiDiffView (#45131)
This branch:
1. teaches `--diff `command line option to to recurse into folders if
provided.
2. Adds a `MultiDiffView` that shows _all_ changed files in a single,
scrollable view.

This is necessary to provide a smooth user experience for `jj` and Zed
users who wish to use Zed as their jj difftool.

I'm not fully sure how this change interacts with
https://github.com/zed-industries/zed/pull/44936, or what plans y'all
have in mind.

Here's a screenshot of the resulting behavior:

<img width="1090" height="950" alt="Screenshot 2025-12-17 at 9 10 52 AM"
src="https://github.com/user-attachments/assets/8efd09b4-974f-4059-9f94-539c484c6d4a"
/>

I setup zed to handle jj diffs by adding the following to my jj config:

```toml
[aliases]
zdiff = ["diff", "--tool", "zed"]

[merge-tools.zed]
program = "/Users/dbarsky/Developer/zed/target/debug/cli"
# omit diff-invocation-mode to keep the default (JJ passes two dirs)
diff-args = [
  "--zed", "/Users/dbarsky/Developer/zed/target/debug/zed",
  "--wait",
  "--new",
  "--diff",
  "$left",
  "$right",
]
```

Release Notes:

- `--diff`, if provided with folders instead of files, will recurse into
those directories.
- Added a `MultiDiffView`, which will show all changed files within a
single, scrollable view.

**AI Disclosure**: Pretty much all of this code was written using Codex
with GPT-5.1-Codex. I edited by hand and tested this.

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>
2026-01-30 10:14:36 +01:00
Fernando Pérez 7053561b63 docs: Document default for include_warnings (#47838)
## Summary
Add documentation for the default value of `include_warnings` in
diagnostics settings. This makes it consistent with other settings that
document their default values.

## Test plan
- Documentation-only change, no functional changes

Release Notes:

- N/A
2026-01-30 09:01:54 +00:00
Lukas Wirth b9c0f756c4 fs: Cache filesystem case sensitivity (#47995)
We query this on the main thread on every file system access otherwise

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 09:42:28 +01:00
Lukas Wirth 19765cd0b4 gpui(windows): Move jumplist creation to background thread (#47956)
This can block the main thread too much otherwise

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 08:10:19 +00:00
Lukas Wirth 28f0461e94 workspace: Do not attempt to unnecessarily update jump list on invisible worktree updates (#47990)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-30 07:37:35 +00:00
Joseph T. Lyons 9aa71ddbce Python: Improved the Add Virtual Environment path browser to start at the workspace root (#47988)
Previously, the 'Add Virtual Environment' path browser started at the
filesystem root (`/`). Since virtual environments are almost always
located within the project directory, starting at the worktree root
provides feels a bit nicer to me.

Release Notes:

- Python: Improved the `Add Virtual Environment` path browser to start
at the workspace root.
2026-01-30 07:19:07 +00:00
Joseph T. Lyons 0ede074c05 Fix missing directories in path prompt when show_hidden is enabled (#47983)
The `Select Toolchain Path` picker would skip directories that exist on
my system and display `open this directory` multiple times. `Personal`
is missing:

<img width="569" height="225" alt="SCR-20260129-tvcc"
src="https://github.com/user-attachments/assets/a78db373-fdfb-439d-a688-a4c81763c745"
/>

```
~/Projects> ls
╭───┬──────────┬──────┬────────┬─────────────╮
│ # │   name   │ type │  size  │  modified   │
├───┼──────────┼──────┼────────┼─────────────┤
│ 0 │ Personal │ dir  │ 1.5 kB │ 2 weeks ago │
│ 1 │ Work     │ dir  │ 1.0 kB │ 2 hours ago │
╰───┴──────────┴──────┴────────┴─────────────╯
~/Projects> 
```

Release Notes:

- Fixed a bug where directories could be missing from the `Select
Toolchain Path` path picker
2026-01-30 04:28:19 +00:00
Finn Evers 0c8a753a3c ci: Fix release failure notification (#47977)
Release Notes:

- N/A
2026-01-30 01:14:19 +00:00
Anthony Eid fed8b93aa6 Revert "gpui: Take advantage of unified memory on Apple silicon" (#47974)
Reverts zed-industries/zed#45577

This still causes gpui to be unusable for Intel Macs and by extension
Zed.

Release Notes:

- N/A
2026-01-29 23:03:01 +00:00
Joseph T. Lyons f1554f83ed Remove label field from Feature Request template (#47970)
Release Notes:

- N/A
2026-01-29 22:30:57 +00:00
b1fd95b4f9 copilot: Fix references to uninitialized CopilotAuth global (#47954)
Closes: #46593 #32635 #47924

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Cole Miller <cole@zed.dev>

Release Notes:

- Fixed issues with signing into Copilot via the Settings UI

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-01-29 15:47:04 -05:00
Danilo Leal 22e2c7ac8a collab: Improve project and call notification UI (#47964)
This PR moves the `CollabNotification` component from the collab_ui
crate to the UI crate, so that we can add a component preview to it. It
also fixes problems with text truncation and other little details.

<img width="700" height="1674" alt="Screenshot 2026-01-29 at 4  07@2x"
src="https://github.com/user-attachments/assets/6aca6cff-564a-4729-b505-c02d8c3af97f"
/>

Release Notes:

- Collab: Fixed overflowing text in project sharing and call
notifications.
2026-01-29 16:33:38 -03:00
Smit Barmase ad69357968 agent: Support initial prompt via zed://agent URL schema (#47959)
Adds `zed://agent?prompt=<url_encoded_text>` URL support to open the
Agent Panel with a pre-filled prompt.

Release Notes:

- Added support for opening the Agent Panel with an initial prompt via
`zed://agent?prompt=<url_encoded_text>` URL.
2026-01-30 00:52:47 +05:30
Kunall BanerjeeandJohn D. Swanson b9e9b85cc8 Add security warnings to issue templates (#47957)
Warn users to review and remove secrets from logs and settings before
posting them in bug reports and crash reports.

Release Notes:

- N/A

---------

Co-authored-by: John D. Swanson <swannysec@users.noreply.github.com>
2026-01-29 14:17:53 -05:00
Joseph T. Lyons e713879a9c Add feature request discussion template (#47962)
Release Notes:

- N/A
2026-01-29 19:03:15 +00:00
Marco Mihai Condrache ba41499bf4 gpui: Take advantage of unified memory on Apple silicon (#45577)
Reapplies #44273

I included metal-rs upgrade so we can get this working on Intel-based
Macs

cc: @JosephTLyons @notpeter @rtfeldman @Anthony-Eid 

Release Notes:

- Reduced memory usage on Apple-silicon Macs by using shared memory
where appropriate

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
2026-01-29 18:11:09 +00:00
Delyan Haralanov 04d878eef8 typescript: Fix type import highlighting when alias is not present (#47190)
## Problem
The existing tree-sitter queries for type imports required both name and
alias fields to match. This caused `import type { Foo }` and `import {
type Foo }` to fall back to the generic identifier/variable highlighting
instead of being colored as types.

- `import type { Foo }` → **NOT matched** (no alias)
- `import { type Foo }` → **NOT matched** (no alias)  
- `import type { Foo as Bar }` → Matched ✓
- `import { type Foo as Bar }` → Matched ✓

## Solution
Split the patterns to handle name and alias captures independently.

~## Disclaimer~
~DEBUGGING AND IMPLEMENTATION WAS DONE WITH **AI ASSISTANCE**.~
~**THE FIX HAS NOT BEEN TESTED** - I HAVE NOT COMPILED FROM SOURCE~
- @KyleBarton built from source and verified


Release Notes:

- Fixed typescript type import highlighting
2026-01-29 09:52:26 -08:00
a09f0bba9c git: Use LHS/RHS terminology consistently for side-by-side diff (#47949)
We were using primary/secondary in some places which is just
unnecessarily confusing.

Release Notes:

- N/A

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2026-01-29 17:36:15 +00:00
Anthony Eid cd8a7b4292 Add back "fs: Replace MacWatcher with notify::FsEventWatcher"" (#47952)
Reverts zed-industries/zed#47799

Now that we have a week to let this be tested in Nightly we can merge it
again

Release Notes:
 
- Fix to many file descriptors error in MacOS
2026-01-29 17:27:55 +00:00
Danilo Leal 263e0004ce agent_ui: Add adjustments to terminal selection as context (#47950)
Follow up to https://github.com/zed-industries/zed/pull/47637

- Removes the requirement for the terminal to be focused to use the
`cmd->` keybinding. This way, we match the behavior of buffer selections
and you can always add what's selected in the terminal inside the agent
panel
- Add number of lines selected in the mention button as well
- Make the "Selection" menu item inside the "Add Context" menu also
observe terminal selections

<img width="420" height="254" alt="Screenshot 2026-01-29 at 1  36@2x"
src="https://github.com/user-attachments/assets/25d2eb00-096f-44d9-8882-273932ca43e4"
/>

Release Notes:

- Agent: Add number of liners selected in the terminal context mention
2026-01-29 14:26:23 -03:00
Cole Miller ad24b3f0a0 git: Fix missing hunk controls on side-by-side diff RHS (#47815)
Release Notes:

- N/A
2026-01-29 16:48:40 +00:00
Lukas Wirth 949972bbbe project: Always allocate WorktreeIDs on the remote client (#47936)
Closes https://github.com/zed-industries/zed/issues/40342

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-29 15:31:13 +00:00
Rutger CappendijkandBen Brandt 52182e43cd agent_ui: Add ability to add terminal output to agent context (#47637)
Summary

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

### Features

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

### Implementation

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

### Demo

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

### General note

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

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


Release Notes:

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

---------

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

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

Release Notes:

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

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

Release Notes:

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

- Improved CPU switching frequency for project search

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

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

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

---------

Co-authored-by: MrSubidubi <dev@bahn.sh>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-01-29 10:53:53 +00:00
Richard 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
Cole Miller 8bdfbfe591 git: Fix a couple of bugs with buffer headers in the side-by-side diff UI (#47809)
- Fix sticky buffer header being painted on top of the toolbar
- Fix buffer header click handlers and tooltips sometimes not working
(element ID collision issue)
- Deduplicate buffer header rendering code between split and normal
editors

Release Notes:

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

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-28 16:36:44 -08:00