Commit Graph
39151 Commits
Author SHA1 Message Date
Mikayla Maki 21ad340f01 Re-land #48959 (#48990)
- [x] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- N/A
2026-02-12 09:44:26 +01:00
Lukas Wirth 8e04d034a0 gpui(windows): Create d3d11 device only once, not twice (#49001)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-12 08:18:57 +00:00
Lukas Wirth a6797892ec Resolve semantic merge conflict (#48999)
Caused by https://github.com/zed-industries/zed/pull/48763 and
https://github.com/zed-industries/zed/pull/48800

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-12 07:53:30 +00:00
Kirill Bulatov c6cd08e37a Use document symbols' ranges to derive their outline labels (#48978) 2026-02-12 09:36:48 +02:00
Kyle KelleyandClaude Opus 4.5 317a578f6a repl: List python environments first (#48763)
This PR completely subsumes
https://github.com/zed-industries/zed/pull/46720

<img width="574" height="496" alt="image"
src="https://github.com/user-attachments/assets/14ee9185-0be6-49cf-b5fd-114e61915341"
/>

Release Notes:

- Added Python Environments to REPL kernel selection
- List active toolchain/python environment as the recommended kernel for
REPL usage

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 08:20:20 +01:00
Zhongqiu ZhaoandConrad Irwin 377407c2bb languages: Fix local path of JSON and YAML schemas (#44794)
Closes #30938

Release Notes:

- Fixed: Unable to load relative path JSON schema for YAML validation
(#30938)


This patch follows the vscode LSP client logic, see
[`jsonClient.ts`](https://github.com/microsoft/vscode/blob/cee904f80cc6d15f22c850482789e06b1f536e72/extensions/json-language-features/client/src/jsonClient.ts#L768-L770).
The `url` of the JSON schemas settings and the YAML schemas settings
should be resolved to an absolute path in the LSP client when it is
submitted to the server.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2026-02-12 04:50:54 +00:00
Conrad Irwin b8df3374bb Remove unnused line from bundle-mac (#48972)
Closes #ISSUE

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A
2026-02-11 21:33:01 -07:00
Daniel Strobusch 4f2a277a63 go: Add first-line pattern detection for executable Go scripts (#48913)
Add support for detecting Go files that can be executed directly via
shebang-style comments (e.g., '// usr/bin/env go run "$0" "$@"; exit
"$?"').

This allows Zed to recognize Go scripts with first-line comments
containing 'go run' as executable Go files, similar to how other
languages detect shebangs or mode lines.

Reference: https://stackoverflow.com/q/7707178/1458343

Release Notes:

- Improved: Go language detection now recognizes executable Go scripts
with first-line 'go run' comments.
2026-02-11 21:32:22 -07:00
ee3f40fe25 Re-add MultiWorkspace (#48800)
Release Notes:

- Added agent panel restoration. Now restarting your editor won't cause
your thread to be forgotten.

---------

Co-authored-by: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>
Co-authored-by: Eric Holk <eric@zed.dev>
Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
Co-authored-by: Cameron Mcloughlin <cameron.studdstreet@gmail.com>
2026-02-12 01:06:23 +00:00
Mikayla Maki 83de8a25e0 Revert PRs for landing in main (#48969)
We're going to re-apply these after landing the multiworkspace branch.

Release Notes:

- N/A
2026-02-12 00:28:17 +00:00
Piotr Osiewicz d7900120e8 Revert "ci: Use cargo-mtime to track timestamps" (#48987)
Reverts zed-industries/zed#48956
2026-02-12 00:08:46 +00:00
Conrad Irwin 8976b33a8e Fix more sccache problems on windows runners for external PRs (#48980)
Closes #ISSUE

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A
2026-02-11 22:21:25 +00:00
Mikayla Maki d07955208f Swap agent.single_file_review's default value to false (#48619)
Release Notes:

- Swapped the default value for `agent.single_file_review` to `false`.
Agent diffs will no longer override the git diff in your buffer. You can
still review the agent's changes via the action log review button, or by
flipping this setting back to `true`
2026-02-11 22:09:44 +00:00
Piotr Osiewicz 71a704ed19 ci: Use cargo-mtime to track timestamps (#48956)
- **ci: Another stab at mtime-based freshness**

- [x] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- N/A
2026-02-11 23:07:42 +01:00
Cole Miller b53ff3b893 git: Disable some more expensive things for the split diff's left-hand side (#48953)
- Conflict UI
- LSP data
- Runnables

Release Notes:

- Improved performance when opening the split diff view.
2026-02-11 21:58:55 +00:00
Conrad Irwin 11d812cd87 Fix sccache --show-stats not working sometimes on windows (#48974)
Closes #ISSUE

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A
2026-02-11 21:40:42 +00:00
Richard Feldman 7ccd6976c4 Remove thinking tool (#48952)
Closes AI-10

The thinking tool is no longer needed. This removes it from the agent
codebase and updates all tests to use other tools instead.

Release Notes:

- Removed the thinking tool from the Agent, as models now have their own
first-class thinking APIs.
2026-02-11 16:22:20 -05:00
Katie GeerandClaude Opus 4.6 718dc62dbc docs: Add AI SEO frontmatter (#48559)
Closes #ISSUE

Release Notes:

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 13:10:31 -08:00
Kirill Bulatov 56504fdd0f Support LSP document symbols in breadcrumbs and outline UI (#48780) 2026-02-11 21:30:03 +02:00
Bennet Bo Fennerandcameron 1e2874c988 Fix ACP agents not loading when not authenticated (#48959)
Closes #48857

- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Fixed an issue where some ACP agents would not be loading correctly
when unauthenticated

---------

Co-authored-by: cameron <cameron.studdstreet@gmail.com>
2026-02-11 19:45:14 +01:00
Katie GeerandZed Zippy f233ae4c29 Add telemetry for user-facing notifications (#48558)
## Summary

Adds a "Notification Shown" telemetry event that fires whenever a
user-facing notification is displayed in Zed. This helps the team
understand error patterns, notification frequency, and which parts of
the application generate the most notifications.

## Event Schema

| Property | Type | Description |
|----------|------|-------------|
| `notification_type` | `string` | `"error"` or `"notification"` |
| `source` | `string` | Origin category (e.g., `lsp`, `git`, `settings`,
`editor`) |
| `lsp_name` | `string?` | Language server name (only for LSP
notifications) |
| `level` | `string?` | Severity: `"critical"`, `"warning"`, or `"info"`
|
| `has_actions` | `bool` | Whether the notification has action buttons |
| `notification_id` | `string` | Debug string of the NotificationId |
| `is_auto_dismissing` | `bool` | Whether the notification
auto-dismisses |

## NotificationSource Categories

A new `NotificationSource` enum categorizes notifications by origin:

- `lsp` - Language server notifications
- `settings` - Settings/keymap parse errors
- `update` - App updates, release notes
- `extension` - Extension suggestions/errors
- `git` - Git operations, commit errors
- `project` - Project-level issues
- `collab` - Collaboration notifications
- `remote` - SSH/remote project errors
- `file` - File access errors
- `editor` - Editor operations (search, encoding)
- `agent` - AI assistant notifications
- `cli` - CLI installation
- `system` - Generic fallback

## Privacy

**Message content is intentionally not included** in telemetry because:
- LSP messages come from external servers and may contain file paths or
error chains
- Error messages may contain sensitive paths or API-related information
- The metadata alone provides sufficient insight for error tracking

## Implementation

Updated function signatures to include `NotificationSource`:
- `show_notification(id, source, cx, build_fn)`
- `show_toast(toast, source, cx)`
- `show_error(err, source, cx)`
- `show_app_notification(id, source, cx, build_fn)`
- `notify_err(workspace, source, cx)`
- `notify_async_err(source, cx)`
- `notify_app_err(source, cx)`
- `detach_and_notify_err(source, window, cx)`

Release Notes

- N/A (internal telemetry change)

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-11 10:21:37 -08:00
Bennet Bo Fenner c7782553db Fix error when loading ACP registry (#48957)
This [change](https://github.com/agentclientprotocol/registry/pull/34)
broke the ACP registry in Zed, since we did not have `#[serde(default)]`
on the `_extensions` field.

- [x] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Fixed an issue where the ACP registry would fail to load
2026-02-11 18:37:49 +01:00
Oliver Azevedo Barnes 964818733c copilot: Fix Copilot not respecting disable_ai setting (#48495)
Closes #48274

Previously, the Copilot language server would continue running even when
`disable_ai: true` was set in settings. This change ensures Copilot
properly responds to the `disable_ai` setting:

- Add `disable_ai` check in `start_copilot()` to prevent starting when
AI is disabled
- Modify the `SettingsStore` observer to shut down the running language
server when `disable_ai` changes from false to true
- Add tests for all scenarios:
  - Copilot doesn't start when `disable_ai` is true
  - Copilot stops when `disable_ai` becomes true
  - Copilot can start again when `disable_ai` becomes false

Release Notes:

- Fixed Copilot starting when disabled_ai: true
2026-02-11 18:19:41 +01:00
Conrad Irwin f571fab30f Fix sccache on windows (#48943)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-11 09:59:20 -07:00
Lukas Wirth 8238f3bfca zed: Remove windows nightly channel toast (#48950)
It served its job

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-11 16:46:11 +00:00
Kyle Kelley 770ff7cbd9 repl: Write test for JSON output (#48897)
Tests for JSON output in the REPL.

Release Notes:

- N/A
2026-02-11 17:23:12 +01:00
Kyle Kelley de5fc22335 repl: Test outputs and ExecutionView (#48892)
More tests for outputs and the `ExecutionView`. Wanting to get more of
these in before we progress on Notebooks and Widgets.

Release Notes:

- N/A
2026-02-11 17:22:26 +01:00
Joseph T. Lyons 5c6aa4481c Bump Zed to v0.225 (#48941)
Release Notes:

- N/A
2026-02-11 15:50:21 +00:00
Jordi Villar 4ed2b3d041 rope: Fix point_utf16_to_offset returning relative offset instead of absolute (#48862)
`ChunkSlice::point_utf16_to_offset` returned `line.len()` (a relative
line byte length) instead of `row_offset_range.end` (the absolute byte
offset within the chunk) when clipping an out-of-range UTF-16 column on
a non-first row.

This caused incorrect position calculations in LSP coordinate
conversions whenever a UTF-16 point had a column beyond the line's
extent on any row after the first in a chunk.

Added a regression test covering clipping on both row 0 and row 1. Not
sure if it's the best place for a test like this one though.

Release Notes:

- N/A
2026-02-11 14:21:13 +01:00
Cole Miller 40b468e69e git: Fix another WrapPointCursor panic in spacer_blocks (#48932)
Closes ZED-4ZH

Release Notes:

- N/A
2026-02-11 12:55:51 +00:00
Bennet Bo Fenner 3938403a01 Fix terminal pane showing welcome screen during loading (#48930)
This fixes an issue where we would show the welcome screen when opening
the terminal panel.
The issue could technically occur in any panel, but was only occurred in
the terminal panel since we only render some content after the
`cx.spawn` inside `new_terminal_pane` completes. This caused the welcome
screen to show up for a single frame. This PR fixes this by showing a
blank panel instead.

Before


https://github.com/user-attachments/assets/4b805c42-5dc5-4742-b090-2f62e8839f3e

After 


https://github.com/user-attachments/assets/5da16b73-5999-461d-9057-438714d8d4ee

Screenshot from the videos:

Before

<img width="1164" height="579" alt="image"
src="https://github.com/user-attachments/assets/87ba2dff-d7c0-4104-b983-31bdd21cf0f9"
/>

After

<img width="1537" height="803" alt="image"
src="https://github.com/user-attachments/assets/359bc413-9794-4565-832d-83548b67cea5"
/>

- [x] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Fixed an issue where the welcome screen would show up in the terminal
panel if the terminal was slow to load
2026-02-11 11:46:51 +00:00
Jakub Konka 975d5acc64 ztracing: Annotate more callsites that invoke TreeSitter (#47522)
Release Notes:

- N/A
2026-02-11 11:24:04 +00:00
Bennet Bo Fenner bf01a928e5 agent_ui: Fix editor not getting focused when adding selections (#48926)
Fixes a regression that was introduced by the thread view refactor
(Nightly only).
Also fixed another minor focus issue: Dropping files into the agent
panel would not focus the message editor.

- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- N/A
2026-02-11 11:17:29 +00:00
Xin ZhaoandKunall Banerjee 8f707653c2 docs: Update the formatting section for Python (#48904)
I have added the `code_actions_on_format` setting. I also temporarily
removed the mention of `"formatter": null`. Based on our findings in
#48600, its current behavior is inconsistent, so I've omitted it for now
to avoid confusing users. I will add it back once the underlying issue
is fixed (likely in a subsequent PR).

Closes #48600.

- [ ] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- N/A

---------

Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
2026-02-11 08:33:41 +00:00
Albab Hasan 38800907cc gpui: Fix double-close of fd in read_fd on linux (#48850)
`read_fd` calls `File::from_raw_fd(fd.as_raw_fd())`, which creates a new
`File` that assumes ownership of the raw fd, while the original
`FileDescriptor` also retains ownership. when both drop at the end of
the function, the same fd is closed twice. between the two closes
another thread can receive that fd number from the kernel for an
unrelated file/socket, and the second close silently kills it. this can
cause hard to diagnose data corruption or i/o failures.

fix: use `fd.into_raw_fd()` instead of `fd.as_raw_fd()` to transfer
ownership to the `File` without running `FileDescriptor`'s drop.

Release Notes:

- N/A
2026-02-11 08:32:39 +00:00
Cole Miller f7314976bd git: Enable the split diff for everyone (#48912)
Release Notes:

- Added support for viewing diffs in split ("side by side") mode
2026-02-11 06:28:55 +00:00
Cole Miller 05e99dad54 git: Standardize nomenclature for side-by-side diff (#48910)
"Unified" for the old view, and "split" for the new one.

Release Notes:

- N/A
2026-02-11 05:33:03 +00:00
Danilo Leal 2b7b8865ba agent_ui: Fix keybinding display inside tooltips in the footer actions (#48909)
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Agent: Fixed an issue where keybindings inside tooltips in the message
editor footer actions weren't being displayed.
2026-02-11 02:12:31 -03:00
Cole Miller 6f09ead50e git: Add click with modifier to set default for side-by-side diff toolbar buttons (#48908)
Release Notes:

- N/A
2026-02-11 05:07:50 +00:00
Conrad Irwin 47cb1cf4ab Use sccache in CI (#48895)
Try sccache in CI to paper over cargo's abyssmal caching

Release Notes:

- N/A
2026-02-10 21:36:42 -07:00
Cole Miller 74419f6a0d git: Correct logic for updating companion excerpt IDs mapping (#48906)
We try to remove old excerpt IDs from the companion when mutating
excerpts for a path, but we were incorrectly doing this using the
excerpt IDs for the right-hand side multibuffer _after_ any excerpt
mutations had occurred, causing stale excerpt IDs to accumulate.

Release Notes:

- N/A
2026-02-11 04:02:02 +00:00
John Tur 8e3e6b8129 Fix path handling regressions on Windows (#48905)
https://github.com/zed-industries/zed/pull/48891 changed `find_worktree`
to use `PathStyle::strip_prefix`, which exposed this bug.

- [ ] Tests or screenshots needed?
- [X] Code Reviewed
- [X] Manual QA

Release Notes:

- N/A
2026-02-11 03:23:13 +00:00
Richard FeldmanandMikayla Maki 6cd7586c16 Switch to a Zed user-agent header for Copilot traffic (#48591)
Follow-up to #48528

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2026-02-11 00:13:14 +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
c8054cacbd git: Fix searching in the split diff (#48894)
- Fix panics caused by reusing cached matches for the wrong side
- Highlight matches on the side that was searched only
- Clear matches in non-searched editor when initiating a new search

Release Notes:

- N/A

---------

Co-authored-by: Eric <eric@zed.dev>
Co-authored-by: Jakub <jakub@zed.dev>
2026-02-10 23:29:51 +00:00
John Tur d2c922b815 Reuse existing windows when opening files in remote workspaces (#48891)
Closes https://github.com/zed-industries/zed/issues/42366

- [ ] Tests or screenshots needed?
- [X] Code Reviewed
- [X] Manual QA

Release Notes:

- Opening files with the Zed CLI will reuse existing windows for remote
workspaces.
2026-02-10 17:48:54 -05:00
Cole MillerandJakub Konka aba74e6ca3 git: Fewer buffer diff snapshots (#48886)
Release Notes:

- N/A

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2026-02-10 20:20:57 +00:00
Conrad Irwin aa37edaef1 Don't run nix checks on PRs (#48849)
Although this introduces a small possiblity that we will regress the nix
build,
the existing check is very slow and fails very rarely.

Release Notes:

- N/A
2026-02-10 13:15:25 -07:00
Oliver Azevedo Barnes 094122af92 devcontainer: Support .devcontainer.json in project root (#48814)
Closes #48683

Per the devcontainer spec, `.devcontainer.json` in the project root is
a valid config location. It is only used when no configurations are
found inside `.devcontainer/`.

Extract `find_configs_in_snapshot` for testability and add tests.

Release Notes:

- Added support for `.devcontainer.json` in project root
2026-02-10 11:42:26 -08:00
Danilo LealandConrad Irwin 191b4ccd4f workspace: Move the update Zed button to the title bar (#48467)
Currently, whenever Zed has a new version available for download, the
update button shows up in the status bar. Problem is: that status bar
slot can also display other buttons/information, such as problems with
your language server or general errors. In case the two things exist (a
problem and a new version), just one of them would be displayed, which
is not great; you should be able to see both. Additionally, given we
ship new versions pretty often, I've frequently saw feedback about
wanting to hide away the new version button... at least temporarily
while there's no immediate interest in upgrading.

So, this PR tackles all of that. The button to update a new version is
moved up to the title bar, nearby your avatar, and you have the ability
to dismiss, which effectively just moves the button from the title bar
to inside your user menu.


https://github.com/user-attachments/assets/e3f1d76d-9b85-4bee-a70f-e22dd5e7fdb3

Release Notes:

- Moved the update Zed button to the title bar and allowed it to be
dismissed.

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2026-02-10 16:03:46 -03:00