0056bbe
editor: Use tabs bitmask when syncing (#48366)
Click to expand commit body
Release Notes: - N/A
Marco Mihai Condrache created
0056bbe
editor: Use tabs bitmask when syncing (#48366)
Release Notes: - N/A
Marco Mihai Condrache created
4433d6d
docs: Apply brand voice standards to AI documentation (#48401)
## Summary
Reviewed and updated all 18 files in `docs/src/ai/` to meet Zed's brand
voice standards. Each file was scored against the 8-criterion rubric and
rewritten where needed to achieve 4+ on all criteria.
**Changes include:**
- Remove "Learn how to/about" patterns (8 instances)
- Replace vague phrases ("various types of tasks", "and more") with
specific examples
- Remove taboo words ("seamless", "naturally extends")
- Remove emotional language ("We're excited/thrilled/happy")
- Remove marketing patterns ("Stay tuned!", exclamation points)
- Remove unverifiable claims ("world's fastest")
- Replace hedging with direct statements
- Remove promotional emphasis (`_free_`, `**_for free_**`)
- Fix typo in external-agents.md ("servers" → "serves")
- Fix broken link syntax for Ollama Turbo
## Test plan
- [x] `mdbook build` succeeds
- [x] Grep for remaining taboo phrases (only one "seamless" in MCP
official quote, preserved intentionally)
- [x] All facts preserved (URLs, keybindings, settings keys, prices,
model names)
Fixes AI-8
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
morgankrey and Claude Opus 4.5 created
4563b5a
lsp: Add `container_name` to `lsp::Symbol` (#46822)
Some language servers include local symbols (e.g., local variables, parameters) in workspace symbol results. Without the `containerName` information, these symbols lack context information, making it difficult to distinguish them from top-level definitions and hindering efficient symbol lookup. This change exposes the `container_name` field from LSP [`SymbolInformation`](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#symbolInformation) to the extension API, allowing language server extensions to access `symbol.container_name` in `label_for_symbol` and provide meaningful context when rendering symbol labels. Note: The `container_name `field is added to all extension API versions because they seem to share the same underlying Rust types via wasmtime bindgen. The field is optional, so existing extensions would remain compatible as far as I understand. Closes #ISSUE Release Notes: - Added `container_name` field to `lsp::Symbol`, accessible via the extension API's `label_for_symbol` function --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Shuhei Kadowaki and MrSubidubi created
a71aa4e
Add telemetry for EP Menu Actions (#48229)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Katie Geer and Ben Kunkle created
c82d104
Add telemetry for toolbar menu open events (#48225)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Ben Kunkle <ben@zed.dev> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Katie Geer , Ben Kunkle , and Zed Zippy created
e39c190
edit_prediction: Add Mercury accept/reject tracking (#48306)
### Summary Adds accept/reject tracking for Mercury edit predictions. ### Changes Sends events to https://api-feedback.inceptionlabs.ai/feedback when: Accept — user presses Tab Reject — user presses Escape Ignore — prediction dismissed implicitly (typing, cursor move, etc.) Added `discard_explicit` method to the delegate trait to distinguish explicit vs implicit dismissal. Updated `reject_prediction` and `reject_current_prediction` methods with an `explicit` bool parameter to thread this through to the Mercury feedback logic. Other providers are unaffected—they use the default implementation. Feedback is fire-and-forget in a background thread, only sent for predictions that were shown. ### Data Collected - Request ID (returned from Inception API) - User action (either accept/reject/ignore) - Client Zed version (to track updates made to Zed client which could potentially affect nextedit implementation) Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Kenan Hasanaliyev and Ben Kunkle created
477bb89
Expand hardcoded agent terminal security rules (#48399)
Expands the hardcoded security rules that block dangerous `rm` commands
in the agent terminal tool.
### New blocked patterns
- `rm -rf $HOME` / `rm -rf $HOME/` / `rm -rf ${HOME}` / `rm -rf
${HOME}/`
- `rm -rf .` / `rm -rf ./`
- `rm -rf ..` / `rm -rf ../`
- `rm -rf ~/` (previously only `rm -rf ~` was blocked)
### Flag handling improvements
- Simplified the flag character class from `[rRfF]` to `[rf]` since the
regex is already compiled with case-insensitive mode — less confusing,
same behavior.
- Added tests verifying that reversed flags (`-fr`), uppercase (`RM
-RF`), split flags (`-r -f`), and chained commands all get caught.
### Safe commands still allowed
Paths like `rm -rf ./build`, `rm -rf ~/Documents`, `rm -rf
$HOME/Documents`, `rm -rf ../some_dir`, and `rm -rf .hidden_dir` are
**not** blocked.
Release Notes:
- Auto-block a wider range of agent terminal commands, e.g. `rm -rf
$HOME` in addition to `rm -rf ~`
Richard Feldman created
54588a1
Allow always_allow for nushell, elvish, and rc (#48395)
`brush-parser` handles `;` (sequential execution) and `|` (piping) which all these shells use, so we can safely parse their commands for `always_allow` pattern matching. (No release notes because granular tool permissions haven't been released yet.) Release Notes: - N/A
Richard Feldman created
825cf2d
ci: Parse Cargo.toml and Cargo.lock with Python script to determine affected packages (#48389)
Closes #ISSUE Release Notes: - N/A
Piotr Osiewicz created
fdc6282
git: Fix branch diff not updating when committing or changing branches (#48388)
This regressed in #47619 -- previously we would throw away and reopen the diffs used to construct the branch diff pretty eagerly, and as a result the branch diff would update itself when you committed or switched branches. We inadvertently lost that when we switched to retaining those diffs in the git store. Release Notes: - N/A
Cole Miller created
bb2ee34
project_search: Guard replace_next match lookup (#48327)
Release Notes: - N/A Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Xiaobo Liu created
13fbbae
Refer to devcontainer.js rather than devcontainer.cmd.js (#48387)
Closes #46947 When installed with `npm install -g`, devcontainer gets created as `devcontainer.cmd`. However, when invoked as a script from node, it's still `devcontainer.js`. This addresses that difference so that we don't accidentally invoke `devcontainer.cmd.js`. Release Notes: - Fixed devcontainer operation on Windows for when the devcontainer cli is not installed globally
KyleBarton created
356fb94
ci: Run tests only for the changed packages and their dependants (#48380)
We're still gonna run a full test suite on main and in non-PR workflows exercising tests Release Notes: - N/A
Piotr Osiewicz created
c390dda
git: Render hunk gutter highlights for side-by-side diff (#48321)
Release Notes: - N/A
Cole Miller created
ad339e3
docs: Update edit prediction providers (#48055)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ... --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Katie Geer and Danilo Leal created
a5e6964
agent_ui: Refactor `AcpThreadView` (#48339)
Release Notes: - N/A --------- Co-authored-by: cameron <cameron.studdstreet@gmail.com> Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com> Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Bennet Bo Fenner , cameron , Ben Brandt , and Smit Barmase created
5d84932
Do not treat binary Doom WAD files as text (#48349)
I primarily contribute to Doom source ports and related utilities. When working with Doom WADs, the primary archive format for the game, Zed will sometimes incorrectly assume that such files are plain text, due to the nature of said container format not being compressed, some common text files included in them will trigger a false positive in Zed's text detection mode. Considering some of these files can go from a couple dozen to a few hundred megabytes, this usually makes Zed hang on my lower end machine, until I manually terminate it :/ and has happened when I accidentally clicked on one via the file explorer, or when viewing Git diffs. Release Notes: - Fixed Doom WAD files being erroneously treated as text
elf-alchemist created
5d2feaa
editor: Implement semantic highlighting (#46356)
Part of #7450 Big thanks to @macmv for pushing this forwards so much! Rebased version of https://github.com/zed-industries/zed/pull/39539 as working on an in-org branch simplifies a lot of things for us) Release Notes: - Added LSP semantic tokens highlighting support --------- Co-authored-by: Neil Macneale V <neil.macneale.v@gmail.com> Co-authored-by: Kirill Bulatov <kirill@zed.dev> Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
Lukas Wirth , Neil Macneale V , Kirill Bulatov , and Zed Zippy created
c43dba1
project: Make individual DAP settings optional (#43647)
Currently, when overriding e.g a `binary` in dap settings, one have to
override all settings, including `args` as it otherwise set it to empty
string.
E.g this config will set `args` and `env` to their empty states, like
empty string and empty map:
```json
{
"dap": {
"Delve": {
"binary": "/path/to/binary"
}
}
}
```
This PR changes so that it is instead possible to only override a single
field. This is useful e.g on nixos where you don't want (or cant let)
zed download binaries for you, but you want to use the default args,
such as in Delve, you want zed to configure it with a random listening
port.
Release Notes:
- Improved dap settings so that it is possible to override individual
fields, such as `binary`
Fredrik Enestad created
52c963d
git: Ensure the sides of the side-by-side diff use the same hunk controls (#48376)
Fixes hunk controls appearing on the LHS of the branch diff when they should be disabled Release Notes: - N/A
Cole Miller created
e106117
Bump Zed to v0.224 (#48375)
Release Notes: - N/A
Joseph T. Lyons created
280295c
Fix scroll in EP provider sub page when setting migration banner is showing (#48372)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Ben Kunkle created
3251f69
ep: Lower max_output_tokens default for Ollama (#48370)
Zeta 1 should not be configurable, not by this setting. Release Notes: - N/A --------- Co-authored-by: Ben Kunkle <ben@zed.dev>
Oleksiy Syvokon and Ben Kunkle created
86b9893
gpui(windows): Reduce timer resolution to 1ms (#48364)
Otherwise block_with_timeout is effectively useless on windows as we would block a minimum of 15ms which is our entire frame budget Release Notes: - N/A *or* Added/Fixed/Improved ...
Lukas Wirth created
e54480b
agent_ui: Fix regression that made edited files unclickable (#48362)
There was a `when()` condition here looking at `hovered_edited_file_buttons`, which is never turned to true when hovering over the edited file button, and given we started to pass the hover styles, tooltip, and on_click handler inside the condition, they would never work. The solution here is to make these three things unconditional, so edited files are always clickable. Release Notes: - N/A
Danilo Leal created
327cc60
docs: Add BSD 2-Clause as accepted extension license (#48363)
Release Notes: - N/A
Finn Evers created
d35ac6a
acp: Bump agent-client-protocol sdk to 0.9.4 (#48356)
Release Notes: - N/A
Ben Brandt created
09fece9
languages: Do not show Zed keybinding context in language selector (#48354)
This language is used for the keymap editor and should not be selectable for normal files. Hence, removing it here from the language selector Release Notes: - Fixed an issue where the Zed keybinding context would show up as a language in the language selector.
Finn Evers created
57e1681
acp: Cleanup unneeded cx from config state methods (#48353)
Release Notes: - N/A
Ben Brandt created
ab54a7e
repl: Add quality of life changes in Jupyter view (#47533)
- Keyboard navigation where you can traverse through cells using up and down arrow - Jupyter Logo added - Initialize kernel as shutdown for more predictable behavior - Ability to create .ipynb files with bare essential metadata. - Optimize editor initialization to avoid cloning the entire notebook and shortcuts Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
MostlyK and Danilo Leal created
78c121d
docs: Update `git_hosting_providers` setting documentation (#42129)
## Summary Adds documentation for the `git_hosting_providers` setting that allows users to configure custom self-hosted Git instances for clickable links. ## Description This PR documents the previously undocumented `git_hosting_providers` setting in the Git integration documentation. The setting allows users to configure Zed to recognize and create clickable links to issues, pull requests, and commits on self-hosted Git instances (like company GitLab or GitHub Enterprise servers). ## Fixes Closes #38433 ## Test Plan - Documentation follows the existing style and tone of `docs/src/git.md` - Placement in the "Git Integrations" section makes logical sense - Code example matches the format confirmed working by maintainers in the issue Release Notes: - Improved: Documented the `git_hosting_providers` setting for configuring custom self-hosted Git instances --------- Co-authored-by: MrSubidubi <finn@zed.dev>
Roland Rodriguez and MrSubidubi created
fa37d87
ep: Meaure isolated whitespace change ratio (#48352)
Release Notes: - N/A
Oleksiy Syvokon created
8ff5290
acp: Remove feature flag for session config options (#48350)
Release Notes: - acp: Support ACP Session Config options for agents which provide them.
Ben Brandt created
3b8d003
ep: Heuristic for detecting wrong editable region (#48343)
Release Notes: - N/A
Oleksiy Syvokon created
e27924a
Auto-detect Rust for CodeLLDB panic breakpoints (#48236)
Fixes #48231
## Problem
When debugging Rust programs with CodeLLDB, panic breakpoints ("Rust: on
panic") don't work unless `sourceLanguages: ["rust"]` is explicitly set
in the debug configuration.
Without this setting, CodeLLDB doesn't return the `rust_panic` exception
filter, so the breakpoint shows `locations = 0 (pending)` and never
triggers.
## Root Cause
The Cargo locator correctly adds `sourceLanguages: ["rust"]`
([cargo.rs:97-100](https://github.com/zed-industries/zed/blob/main/crates/project/src/debugger/locators/cargo.rs#L97-L100)),
but other code paths may not:
- VSCode launch.json imports
- Manual debug configurations
## Solution
Auto-detect Rust binaries in `CodeLldbDebugAdapter::get_binary()` by
checking if the program path contains `/target/debug/` or
`/target/release/` (Cargo's standard output directories).
If detected and `sourceLanguages` isn't already set, we automatically
add `["rust"]`.
Release Notes:
- Fixed Rust panic breakpoints not working in debugger when using
CodeLLDB with non-Cargo debug configurations
little Kitchen created
99f80d7
remote: Fix build_remote_server_from_source compression on unix (#48319)
When using gzip, the output path's extension becomes `.gz`. Release Notes: - N/A
Andres Suarez created
a74ad50
Disable `subagents` feature flag for staff (#48335)
Release Notes: - N/A
Bennet Bo Fenner created
21b3cfe
docs(gpui): fix incomplete docs for function (#48333)
Release Notes: - N/A --------- Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
BlankWasThere and Kirill Bulatov created
d5e58b9
workspace: Close toasts on middle mouse click (#48208)
Release Notes: - Allow closing notification toasts via middle mouse clicks
Lukas Wirth created
203d03d
Remove sweep and mercury feature flags (#48329)
Release Notes: - N/A
Max Brunsfeld created
fb40850
settings ui: Add page for AI tool permissions (#48277)
This PR adds a page in the settings UI, under the AI section, that allows to interact and customize permissions for tool calling for each tool available to Zed's native agent. Release Notes: - AI: Added a settings page in the settings editor that allows to customize tool call permissions for each tool. --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Danilo Leal and Richard Feldman created
d1aab6a
Show provider configuration in EP menu when signed out (#48325)
This way, you can configure external EP providers from the EP menu. Release Notes: - N/A
Max Brunsfeld created
389a204
git: Add support for staging/unstaging/restoring to side-by-side diff LHS, and render hunk controls there (#48320)
Release Notes: - N/A
Cole Miller created
7c11b03
Eagerly connect to Ollama (#48318)
Previously, Ollama would not show up as available until you opened some UI that prompted connecting to Ollama, like the agent panel or the edit prediction settings. Release Notes: - N/A
Max Brunsfeld created
3ae0da3
git: Use `WrapPointCursor` for spacer blocks calculation (#48315)
`spacer_blocks` is an ideal place to drop `WrapPointCursor` since a large part of what it does it to convert an increasing sequence of `MultiBufferPoint` into `WrapPoint`. Release Notes: - N/A
Cole Miller created
5b08f4c
Remove Postgres and `stripe-mock` from Docker Compose (#48313)
This PR removes the Postgres and `stripe-mock` contains from the Docker Compose cluster, as these now run in Cloud's Docker Compose cluster. Release Notes: - N/A
Marshall Bowers created
8b6bd20
Try to improve nix caching (#48297)
Release Notes: - N/A
Conrad Irwin created
8bf3b4f
git: Refactor buffer_diff point translation APIs for more efficient side-by-side diff syncing (#48237)
The side-by-side diff heavily relies on a primitive from `buffer_diff` that converts a point on one side of the diff to a range of points on the other side. The way this primitive is set up on main is pretty naive--every time we call `points_to_base_text_points` (or `base_text_points_to_points`), we need to iterate over all hunks in the diff. That's particularly bad for the case of constructing a new side-by-side diff starting from a multibuffer, because we call those APIs once per excerpt, and the number of excerpts is ~equal to the number of hunks. This PR changes the point translation APIs exposed by `buffer_diff` to make it easier to use them efficiently in `editor`. The new shape is a pair of functions that return a patch that can be used to translate from the main buffer to the base text or vice versa. When syncing edits through the block map that touch several excerpts for the same buffer, we can reuse this patch for excerpts after the first--so when building a new side-by-side diff, we'll iterate over each hunk just once. The shape of the new APIs also sets us up to scale down to cases like editing on the right-hand side of the diff: we can pass in a point range and give them permission to return an approximate patch that's only guaranteed to give the correct results when used with points in that range. For edits that only affect one excerpt, and given how the project diff is set up, that should allow us to skip iterating over most of the hunks in a buffer. Release Notes: - N/A --------- Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Cole Miller and cameron created
555c002
Add initial support for edit predictions via Ollama (#48233)
Closes https://github.com/zed-industries/zed/issues/15968 Release Notes: - Added the ability to use Ollama as an edit prediction provider --------- Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev> Co-authored-by: Ben Kunkle <ben@zed.dev>
Max Brunsfeld , Oleksiy Syvokon , and Ben Kunkle created
eff4b93
ci: Re-enable docs deployments (#48303)
This PR re-enables docs deployments. The upstream incident has been resolved: https://www.cloudflarestatus.com/incidents/m1xvmqf37z97 Release Notes: - N/A
Marshall Bowers created