Commit log

b66e6ea Fix grammar in comments (#48693)

Click to expand commit body
Release Notes:

- N/A

BlankWasThere created

1844b96 languages: Improve function parameter highlighting for Bash (#48067)

Click to expand commit body
Before:
<img width="371" height="93" alt="before"
src="https://github.com/user-attachments/assets/f2e9ba9c-4ef7-4533-b565-9d977d60ae79"
/>

After: 
<img width="371" height="93" alt="after"
src="https://github.com/user-attachments/assets/b385f0bc-3b23-4a3c-8bf3-639afad10e1e"
/>

Release Notes:

- Improves function parameter highlighting for Bash

Co-authored-by: ozacod <ozacod@users.noreply.github.com>

ozacod and ozacod created

8428251 workspace: Adjust remote projects modal (#49019)

Click to expand commit body
This PR makes the remote projects a bit more consistent with other modal
dialogs by adding a footer to better expose the "open" and "open in new
window" options.

<img width="550" height="888" alt="Screenshot 2026-02-12 at 9  53@2x"
src="https://github.com/user-attachments/assets/1d7a67c4-fc69-40db-8dc4-8099bde4ebd7"
/>

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

Release Notes:

- N/A

Danilo Leal created

255ee72 languages: Highlight case statements and special variables for Shell Scripts (#48200)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/9461. Similar PRs:
- https://github.com/zed-industries/zed/pull/46722
- https://github.com/zed-industries/zed/pull/39683
- https://github.com/zed-industries/zed/pull/39801


## Release Notes:

- Allowed highlighting for case statement items for users and theme
authors via the `string.regex` syntax property.
- Allowed highlighting for special variables via `variable.special`

## Screenshots

| **Before** | **After** |
|:--:|:--:|
| <img width="727" height="922" alt="image"
src="https://github.com/user-attachments/assets/15126713-1f02-40f2-8115-0deb5476aebd"
/> | <img width="742" height="900" alt="image"
src="https://github.com/user-attachments/assets/e178934e-5735-448d-abb2-2d2ad08a9c8f"
/> |

Cole McAnelly created

015913a search: Support brace syntax in project search include/exclude patterns (#47860)

Click to expand commit body
Closes #47527
## Summary
The include/exclude filters in Project Search now support standard glob
brace syntax like `{a,b}`.
**Before:** `crates/{search,project}/**/file.rs` would error with
"unclosed alternate group"
**After:** Pattern correctly matches files in both `crates/search/` and
`crates/project/`
## Implementation
Added `split_glob_patterns()` function that splits by comma only when
not inside braces, preserving the `{a,b}` syntax that `globset` natively
supports.

Release Notes:

- Added support for `{a,b}` glob syntax in project search
include/exclude filters

Here is the screenshot of before and after.

Before:
<img width="1414" height="408"
alt="{0233D673-E876-4CFC-81BC-E0DE778CA382}"
src="https://github.com/user-attachments/assets/f30170a8-6cb5-4ee6-9c30-fb21b2c18be5"
/>

After:
<img width="1271" height="635"
alt="{321F7C80-13A0-4478-BCE9-530F1824A9E2}"
src="https://github.com/user-attachments/assets/0bd70a01-d576-438f-9286-01aebb08aeaf"
/>

Dream created

81d01ef languages: Add shebang highlight support for Bash (#48064)

Click to expand commit body
Highlights the shebang line as a directive instead of a comment.

Before:
<img width="316" height="99" alt="before"
src="https://github.com/user-attachments/assets/d77a7fbd-4610-4282-b48a-c994d37401b6"
/>

After:
<img width="316" height="99" alt="after"
src="https://github.com/user-attachments/assets/7861ba9e-f64d-45be-aa0a-9e98a82b3746"
/>

Release Notes:

- Added shebang highlight support for Bash

Co-authored-by: ozacod <ozacod@users.noreply.github.com>

ozacod and ozacod created

011113e workspace: Improve recent projects picker for multi-project scenario (#48989)

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

In the PR linked above, I had introduced a dropdown that'd show up in
the title bar when the workspace contained more than one project.
Although that helped improve the multi-project use case, it created some
quirky designs:

- The project dropdown and the recent project pickers looked too
different from one another
- The transition between the 2 project case to the 1 project scenario,
from the dropdown, was not great, because you'd be then seeing the
bigger recent projects picker
- The `workspace: switch project` action was still reachable in the
command palette even if you had one project in the workspace

So, what this PR does is essentially fixing all of this by consolidating
it all in the Recent Projects picker. If you are in a multi-project
scenario, the picker will display a section with all of the projects on
the workspace allowing you to activate each one of them. The picker also
looks simpler when you reach it by clicking on the project name in the
title bar, as opposed to through the keybinding. I've then removed the
project dropdown code as well as the action, given we don't need them
anymore due to the consolidation. Lastly, I tackled the inconsistent
wording used between "Folders", "Projects", and "Workspaces".

Here's the result:


https://github.com/user-attachments/assets/9d8ef3e3-e57b-4558-9bc0-dcc401dec469

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

Release Notes:

- Workspace: Improved the recent projects picker by making it also
display active projects in case of a multi-project workspace.

Danilo Leal created

7179a96 agent: Fix edit_file tool description (#48588)

Click to expand commit body
This patch updates the description of the `edit_file` tool to recommend
models to use the `move_path` tool instead of the `terminal` tool to
move or rename files. The `move_path` tool is more specific and shall be
preferred as it provides a better UI and dedicated permissions.

Release Notes:

- N/A

Vianney le Clément de Saint-Marcq created

c9fc5fe vim: Make `:bdelete` use new `workspace::CloseItemInAllPanes` command (#48988)

Click to expand commit body
Add workspace::CloseItemInAllPanes action that closes the active
item's buffer in every pane where it's open, matching Vim's `:bdelete`
semantics. Pane layout is preserved, only the buffer is removed.

`:bd` respects pinned tabs, `:bd!` overrides them and skips save.

Also refactors the tab switcher's close button to use the new
`close_items_with_project_path` method, removing duplicated logic.

Release Notes:

- Vim: `:bd` (`:bdelete`) now closes the file in all panes where it's
open
- Added `workspace::CloseItemInAllPanes` action to close a file across
all panes

Co-authored-by: David Baldwin <baldwindavid@gmail.com>

Dino and David Baldwin created

e24538d Fix assistant commands visibility when agent is disabled (#48951)

Click to expand commit body
## Changes
- Hide `assistant` namespace when `agent.enabled = false`
- Added test coverage for assistant command visibility

## Testing
- Verified manually that commands are hidden/shown dynamically
- Added test assertions in
[test_agent_command_palette_visibility](cci:1://file:///media/omchillure/Projects/zed-oss/zed/crates/agent_ui/src/agent_ui.rs:525:4-657:5)
- Test passes: `cargo test -p agent_ui
test_agent_command_palette_visibility`

## Video : 
[Screencast from 2026-02-11
21-01-30.webm](https://github.com/user-attachments/assets/bbdb3e44-4ba9-4def-ad05-74e412bc5dba)


## Release Notes:

- Fixed assistant commands (Copy Code, Insert Into Editor, etc.)
remaining visible in the command palette when the agent is disabled in
settings.

Om Chillure created

90ff8fe ep: Add option to use prompt prefill (#48964)

Click to expand commit body
Release Notes:

- N/A

Oleksiy Syvokon created

07a0ce9 Add support for ACP registry in remote projects (#48935)

Click to expand commit body
Closes #47910


https://github.com/user-attachments/assets/de2d18ef-46fd-4201-88e4-6214ddf0fd06


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

Release Notes:

- Added support for installing ACP agents via ACP registry in remote
projects

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>

Bennet Bo Fenner , Ben Brandt , and Zed Zippy created

76a61d6 ui: Refresh copy for the update button (#48963)

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

bc72f6e agent_ui: Tone down thinking icon button (#48962)

Click to expand commit body
| On | Off |
|--------|--------|
| <img width="1152" height="402" alt="Screenshot 2026-02-11 at 4  28
2@2x"
src="https://github.com/user-attachments/assets/239d64c2-5ae8-4e2c-8aee-2e01d17e81bb"
/> | <img width="1152" height="402" alt="Screenshot 2026-02-11 at 4 
28@2x"
src="https://github.com/user-attachments/assets/e0baa0ac-1855-45ce-92ba-facc83fef83f"
/> |

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

Release Notes:

- N/A

Danilo Leal created

7556609 file_finder: Don’t use focused file’s directory for CreateNew unless it belongs to project worktrees (#42076)

Click to expand commit body
## Summary

Creating a new file via the file picker incorrectly used the focused
file's directory as the target even when that file did not belong to any
open worktree (e.g., Zed opened to a single file, settings.json focused
without a worktree, or an external file focused). This PR changes the
selection logic so the picker only uses the focused file's worktree if
that file actually belongs to one of the visible project worktrees;
otherwise, it falls back to the existing project heuristic (query-root
match or project default), which prevents misdirected file creation.
This addresses
[zed-industries/zed#41940](https://github.com/zed-industries/zed/issues/41940).

---

## Problem

### Scenarios that errored or created in the wrong place:

1. **Zed opened to a single file from the CLI** (no worktree)
- Create New was offered and then failed or targeted a non-project
directory

2. **No worktree open with settings.json focused**
   - Same failure mode as above

3. **A worktree is open but settings.json is focused**
   - Create New used settings.json's directory

4. **A worktree is open but an external (non-worktree) file is focused**
   - Create New used the external file's directory

### Root Cause

`set_search_matches` unconditionally overwrote `expect_worktree` using
the `currently_opened_path` worktree_id, even if the focused file was
not part of any visible worktree.

---

## Fix

### Query-derived worktree remains primary:

- Try to match the query path against the roots of visible worktrees
- If it matches, use that worktree and strip the root prefix from the
query to get the relative path

### Only use the focused file as a secondary signal if it is relevant:

- Check whether the focused file's `worktree_id` exists within visible
worktrees
- Only then override `expect_worktree`

If no worktree is determined (e.g., no worktrees are open), Create New
is not offered.

---

## Implementation Details

- **Iterate over `&available_worktree`** when scanning roots and clone
the matched entity to avoid moving out of the iterator

- **Validate focused file worktree membership:**
- Compute `focused_file_in_available_worktree` by scanning visible
worktrees for a matching id
  - Override `expect_worktree` only if that check passes

- **Preserve existing guard rails for Create New:**
- Only push `Match::CreateNew` when a concrete `expect_worktree` is
present and the query doesn't end with a trailing separator

---

## Key Code Changes

### Before

Always overwrote `expect_worktree` with the focused file's
`worktree_id`, even for external or non-project files.

### After

Only override `expect_worktree` when the focused file belongs to a
visible worktree. Otherwise, keep the query-derived or default project
worktree.

---

## User-Facing Behavior

### No Worktree Open

*Example: Zed launched with a single file or only settings.json visible*

- The file picker will **not** offer "Create New"

### Worktree Open + Non-Project File Focused

*Example: A non-project file or settings.json is in focus*

- "Create New" is offered
- New file is created within the project worktree (based on root match
or project default)
- New file is **never** created beside the external file

### Multiple Worktrees Open + Query Rooted to One

*Example: Query specifies a particular worktree root*

- The worktree is selected by root-name match
- Project default selection applies if no match is found

---

## Tests

### Added:
`test_create_file_focused_file_not_belong_to_available_worktrees`

1. Set up two worktrees A and B; open an external file that belongs to
neither
2. Use the file picker to create "new-file.txt"
3. Assert the new file opens in an editor whose
`ProjectPath.worktree_id` equals either A or B, and the relative path is
"new-file.txt"

Existing tests for Create New, absolute/relative matching, and
multi-worktree behavior continue to pass.

---

## Reproduction Steps (Pre-Fix)

1. Launch Zed with a single file:
   ```bash
   zed /tmp/foo.txt
   ```
   Or open settings.json with no project

2. Open the file finder and type a new filename, then press Enter

3. Observe Create New trying to use the focused file's directory or
failing unexpectedly

---

## Expected vs Actual

### Expected:

- No Create New when there is no project worktree
- When a project exists, Create New targets the appropriate worktree,
not the focused external file's directory

### Actual (pre-fix):

- Create New used the focused file's directory, even if it was external
or unrelated to the project

---

## Migration and Compatibility

- No user configuration changes required
- Behavior now aligns with user expectation: Create New is only offered
when a project worktree is available and it always targets a project
worktree

---

## Reference

**Fixes:**
[zed-industries/zed#41940](https://github.com/zed-industries/zed/issues/41940)
Fixes #41940 

---

## Appendix: Code Snippets

### Guard before overriding with focused file:

```rust
let focused_file_in_available_worktree = available_worktree.iter().any(|wt| wt.read(cx).id() == worktree_id);

if focused_file_in_available_worktree { 
    expect_worktree = project.worktree_for_id(worktree_id, cx); 
}
```

### Root-based worktree selection with non-moving iteration:

```rust
for worktree in &available_worktree { 
    if query_path.strip_prefix(worktree.read(cx).root_name()).is_ok() { 
        expect_worktree = Some(worktree.clone()); 
        …
    } 
}
```

---

This PR includes a targeted test ensuring that when the focused file is
outside all worktrees, Create New still creates within the project
worktree(s), preventing regressions.

---
## Release Notes

- Fixed "Create New" in the file picker targeting the wrong directory
when a non-project file was focused.
---

---------

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Lay Sheth , Kirill Bulatov , and Copilot created

b9c1970 cli: Use Terminal Panel's window for `zed --add` (#45073)

Click to expand commit body
This makes the `zed --add <PATH>` command use the window it was run from
when run from a Terminal Panel. I run into this paper cut quite a lot
working with multiple projects and preferring to create new files
through the CLI instead of the GUI.


**Before**
With two windows open, running `zed --add a.txt` in one window's
terminal might open the file `a.txt` in the other window.

[Screencast from 12-17-2025 02:24:45 AM - zed --add bug
before.webm](https://github.com/user-attachments/assets/30816add-91e1-41c3-b2e3-6a0e6e88771a)


**After**
With this change, it will use the window of the Terminal Panel.

[Screencast from 12-17-2025 02:16:09 AM - zed --add bug
after.webm](https://github.com/user-attachments/assets/5141518e-5fb0-47d1-9281-54c0699ff7f5)



Release Notes:

- Improved `zed --add` command to prefer window it was run from

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

James Cagalawan and Kirill Bulatov created

cbb1eed Surface UI checklist in CONTRIBUTING.md (#49013)

Click to expand commit body
Release Notes:

- N/A

Lena created

e8cfd19 terminal: Preserve terminal order and fix pinned count on workspace restore (#44464)

Click to expand commit body
Replace `FuturesUnordered` with `FuturesOrdered` to maintain terminal
tab ordering when restoring a workspace.
Also clamp `pinned_count` to `items_len()` to prevent panics when fewer
terminals are restored than expected.

The changes:
1. Order preservation: `FuturesUnordered` → `FuturesOrdered` ensures
terminals restore in their original order
2. Bounds fix: `.min(pane.items_len())` prevents setting pinned count
higher than actual items

Closes #44463

Release Notes:

- Preserved terminal order and fixed pinned count on workspace restore

---------

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

Vladislav and Kirill Bulatov created

213de2e editor: Do not include inlays in word diff highlights (#49007)

Click to expand commit body
Release Notes:

- Fixed inlay hints being rendered as new inserted words in word based
diff highlighting

---------

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

Lukas Wirth and Zed Zippy created

21ad340 Re-land #48959 (#48990)

Click to expand commit body
- [x] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- N/A

Mikayla Maki created

8e04d03 gpui(windows): Create d3d11 device only once, not twice (#49001)

Click to expand commit body
Release Notes:

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

Lukas Wirth created

a679789 Resolve semantic merge conflict (#48999)

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

Lukas Wirth created

c6cd08e Use document symbols' ranges to derive their outline labels (#48978)

Kirill Bulatov created

317a578 repl: List python environments first (#48763)

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

Kyle Kelley and Claude Opus 4.5 created

377407c languages: Fix local path of JSON and YAML schemas (#44794)

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

Zhongqiu Zhao and Conrad Irwin created

b8df337 Remove unnused line from bundle-mac (#48972)

Click to expand commit body
Closes #ISSUE

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

Release Notes:

- N/A

Conrad Irwin created

4f2a277 go: Add first-line pattern detection for executable Go scripts (#48913)

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

Daniel Strobusch created

ee3f40f Re-add MultiWorkspace (#48800)

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

Richard Feldman , Anthony Eid , Eric Holk , Danilo Leal , Anthony Eid , Mikayla Maki , and Cameron Mcloughlin created

83de8a2 Revert PRs for landing in main (#48969)

Click to expand commit body
We're going to re-apply these after landing the multiworkspace branch.

Release Notes:

- N/A

Mikayla Maki created

d790012 Revert "ci: Use cargo-mtime to track timestamps" (#48987)

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

Piotr Osiewicz created

8976b33 Fix more sccache problems on windows runners for external PRs (#48980)

Click to expand commit body
Closes #ISSUE

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

Release Notes:

- N/A

Conrad Irwin created

d079552 Swap `agent.single_file_review`'s default value to false (#48619)

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

Mikayla Maki created

71a704e ci: Use cargo-mtime to track timestamps (#48956)

Click to expand commit body
- **ci: Another stab at mtime-based freshness**

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

Release Notes:

- N/A

Piotr Osiewicz created

b53ff3b git: Disable some more expensive things for the split diff's left-hand side (#48953)

Click to expand commit body
- Conflict UI
- LSP data
- Runnables

Release Notes:

- Improved performance when opening the split diff view.

Cole Miller created

11d812c Fix sccache --show-stats not working sometimes on windows (#48974)

Click to expand commit body
Closes #ISSUE

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

Release Notes:

- N/A

Conrad Irwin created

7ccd697 Remove thinking tool (#48952)

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

Richard Feldman created

718dc62 docs: Add AI SEO frontmatter (#48559)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

Katie Geer and Claude Opus 4.6 created

56504fd Support LSP document symbols in breadcrumbs and outline UI (#48780)

Kirill Bulatov created

1e2874c Fix ACP agents not loading when not authenticated (#48959)

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

Bennet Bo Fenner and cameron created

f233ae4 Add telemetry for user-facing notifications (#48558)

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

Katie Geer and Zed Zippy created

c778255 Fix error when loading ACP registry (#48957)

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

Bennet Bo Fenner created

9648187 copilot: Fix Copilot not respecting `disable_ai` setting (#48495)

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

Oliver Azevedo Barnes created

f571fab Fix sccache on windows (#48943)

Click to expand commit body
Release Notes:

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

Conrad Irwin created

8238f3b zed: Remove windows nightly channel toast (#48950)

Click to expand commit body
It served its job

Release Notes:

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

Lukas Wirth created

770ff7c repl: Write test for JSON output (#48897)

Click to expand commit body
Tests for JSON output in the REPL.

Release Notes:

- N/A

Kyle Kelley created

de5fc22 repl: Test outputs and ExecutionView (#48892)

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

Kyle Kelley created

5c6aa44 Bump Zed to v0.225 (#48941)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

4ed2b3d rope: Fix `point_utf16_to_offset` returning relative offset instead of absolute (#48862)

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

Jordi Villar created

40b468e git: Fix another `WrapPointCursor` panic in `spacer_blocks` (#48932)

Click to expand commit body
Closes ZED-4ZH

Release Notes:

- N/A

Cole Miller created

3938403 Fix terminal pane showing welcome screen during loading (#48930)

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

Bennet Bo Fenner created