57c6dbd
linux: Fix IME positioning on scaled display on Wayland (#37600)
Click to expand commit body
Removes IME bounds scaling on Wayland since it uses logical pixels,
unlike X11. We now scale only on X11. Windows and macOS don’t use these
bounds for IME anyway.
Release Notes:
- Fixed an issue where the IME popover could appear outside the window
or fail to show on Wayland.
Smit Barmase
created
fded3fb
zeta: Scope edit prediction event history to current project (#37595)
Click to expand commit body
This change also causes Zeta to not do anything for editors that are not
associated with a project. In practice, this shouldn't affect any
behavior - those editors shouldn't have edit predictions anyway.
Release Notes:
- Edit Prediction: Requests no longer include recent edits from other
projects (other Zed windows).
Michael Sloan
created
a660527
Make entry_for_path return a reference instead of cloning (#37591)
Click to expand commit body
Release Notes:
- N/A
Michael Sloan
created
0cb8a89
settings ui: Improve setting proc macro and add scroll to UI (#37581)
Click to expand commit body
This PR improves the settings_ui proc macro by taking into account more
serde attributes
1. rename_all
2. rename
3. flatten
We also pass field documentation to the UI layer now too. This allows ui
elements to have more information like the switch field description.
We got the scrollbar working and started getting language settings to
show up.
Release Notes:
- N/A
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Anthony Eid
and
Ben Kunkle
created
c790247
acp: Pass project environment to external agent servers (#37568)
Click to expand commit body
Closes #37469
Release Notes:
- agent: The project shell environment is now passed to external agent
processes.
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Co-authored-by: Nia Espera <nia-e@haecceity.cc>
Cole Miller
,
Richard Feldman
, and
Nia Espera
created
This PR bumps the snippets extension to v0.0.6.
Changes:
- https://github.com/zed-industries/zed/pull/37565
Release Notes:
- N/A
Marshall Bowers
created
4c32d5b
snippets: Disable `feature_paths` by default (#37565)
Click to expand commit body
This PR updates the default configuration of the `snippets` extension to
disable suggesting paths (`feature_paths`).
If users want to enable it, it can be done via the settings:
```json
{
"lsp": {
"snippet-completion-server": {
"settings": {
"feature_paths": true
}
}
}
}
```
Release Notes:
- N/A
Marshall Bowers
created
ccae033
Make fallback open picker more intuitive (#37564)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/34991
Before, the picker did not allow to open the current directory that was
just completed:
<img width="553" height="354" alt="image"
src="https://github.com/user-attachments/assets/e77793c8-763e-416f-9728-18d5a39b467f"
/>
pressing `enter` here would open `assets`; pressing `tab` would append
the `assets/` segment to the query.
Only backspace, removing `/` would allow to open the current directory.
After:
<img width="574" height="349" alt="image"
src="https://github.com/user-attachments/assets/bdbb3e23-7c7a-4e12-8092-51a6a0ea9f87"
/>
The first item is now a placeholder for opening the current directory
with `enter`.
Any time a fuzzy query is appended, the placeholder goes away; `tab`
selects the entry below the placeholder.
Release Notes:
- Made fallback open picker more intuitive
---------
Co-authored-by: Peter Tripp <petertripp@gmail.com>
Co-authored-by: David Kleingeld <davidsk@zed.dev>
Kirill Bulatov
,
Peter Tripp
, and
David Kleingeld
created
c2fa9d7
docs: Add configuration example for `simple-completion-language-server` (#37566)
Click to expand commit body
This PR adds a configuration example for the
`simple-completion-language-server`.
We show the user how to re-enable the `feature_paths` option, as we're
now disabling it by default
(https://github.com/zed-industries/zed/pull/37565).
Release Notes:
- N/A
This PR separates out the associated constant `KEY` from the `Settings`
trait into a new trait `SettingsKey`. This allows for the key trait to
be derived using attributes to specify the path so that the new
`SettingsUi` derive macro can use the same attributes to determine top
level settings paths thereby removing the need to duplicate the path in
both `Settings::KEY` and `#[settings_ui(path = "...")]`
Co-authored-by: Ben Kunkle <ben@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Anthony Eid
and
Ben Kunkle
created
223fda2
Make remote projects to sync in local user settings (#37560)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/20024
Closes https://github.com/zed-industries/zed/issues/23489
https://github.com/user-attachments/assets/6466e0c1-4188-4980-8bb6-52ef6e7591c9
Release Notes:
- Made remote projects to sync in local user settings
This PR updates the TOML docs to remove references to Taplo and suggest
the Tombi extension for users wanting language server support.
Relates to https://github.com/zed-industries/zed/issues/36766.
Release Notes:
- N/A
Marshall Bowers
created
9d94358
acp: Keep diff editors in sync with `AgentFontSize` global (#37559)
Click to expand commit body
Release Notes:
- agent: Fixed `cmd-+` and `cmd--` not affecting the font size of diffs.
Cole Miller
created
9e11105
toml: Extract to zed-extensions/toml repository (#37558)
Click to expand commit body
This PR extracts the TOML extension to the
[zed-extensions/toml](https://github.com/zed-extensions/toml)
repository.
Release Notes:
- N/A
The crash was caused by not accounting for the fact that a range of
collapse frames only counts as one entry. Causing the filter indices to
overshoot for indices after collapse frames (it was counting all
collapse frames instead of just one).
The test missed this because it all happened in one `cx.update` closure
and didn't render the stack frame list when the filter was applied. The
test has been updated to account for this.
Release Notes:
- N/A
Co-authored-by: Cole Miller <cole@zed.dev>
Anthony Eid
and
Cole Miller
created
6e29223
Use full SHA for `blade` dependency (#37554)
Click to expand commit body
In https://github.com/zed-industries/zed/pull/37516 we updated the
`blade` dependency, but used a short SHA.
No reason to not use the full SHA.
Release Notes:
- N/A
Marshall Bowers
created
25ee9b1
Fix Wayland crash on AMD GPUs by updating Blade (#37516)
Click to expand commit body
Updates blade-graphics from e0ec4e7 to bfa594e to fix GPU crashes on
Wayland with AMD graphics cards.
The crash was caused by incorrect BLAS scratch buffer alignment - the
old version hardcoded 256-byte alignment, but AMD GPUs require different
alignment values. The newer Blade version uses the GPU's actual
alignment requirements instead of hardcoding.
Closes #37448
Release Notes:
- Migrate to newer version of Blade upstream
Jiqing Yang
created
0870a1f
acp: Don't share API key with Anthropic provider (#37543)
Click to expand commit body
Since Claude Code has it's own preferred method of grabbing API keys, we
don't want to reuse this one.
Release Notes:
- acp: Don't share Anthropic API key from the Anthropic provider to
allow default Claude Code login options
---------
Co-authored-by: Agus Zubiaga <agus@zed.dev>
Ben Brandt
and
Agus Zubiaga
created
e37efc1
diagnostics: Fix diagnostics pane clearing up too eagerly on typing (#37546)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/30494
Release Notes:
- Fixed diagnostics pane closing buffers too eagerly when typing inside
it
Lukas Wirth
created
1ae3264
Extract a scheduler crate from GPUI to enable unified integration testing of client and server code (#37326)
Click to expand commit body
Extracts and cleans up GPUI's scheduler code into a new `scheduler`
crate, making it pluggable by external runtimes. This will enable
deterministic integration testing with cloud components by providing a
unified test scheduler across Zed and backend code. In Zed, it will
replace the existing GPUI scheduler for consistent async task management
across platforms.
## Changes
- **Core Implementation**: `TestScheduler` with seed-based
randomization, session tracking (`SessionId`), and foreground/background
task separation for reproducible testing.
- **Executors**: `ForegroundExecutor` (!Send, thread-local) and
`BackgroundExecutor` (Send, with blocking/timeout support) as
GPUI-compatible wrappers.
- **Clock and Timer**: Controllable `TestClock` and future-based `Timer`
for time-sensitive tests.
- **Testing APIs**: `once()`, `with_seed()`, and `many()` methods for
configurable test runs.
- **Dependencies**: Added `async-task`, `chrono`, `futures`, etc., with
updates to `Cargo.toml` and lock file.
## Benefits
- **Integration Testing**: Facilitates reliable async tests involving
cloud sessions, reducing flakiness via deterministic execution.
- **Pluggability**: Trait-based design (`Scheduler`) allows easy
integration into non-GPUI runtimes while maintaining GPUI compatibility.
- **Cleanup**: Refactors GPUI scheduler logic for clarity, correctness
(no `unwrap()`, proper error handling), and extensibility.
Follows Rust guidelines; run `./script/clippy` for verification.
- [x] Define and test a core scheduler that we think can power our cloud
code and GPUI
- [ ] Replace GPUI's scheduler
Release Notes:
- N/A
---------
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Nathan Sobo
and
Antonio Scandurra
created
a05f86f
windows: Don't log error when `RedrawWindow` (#37542)
Click to expand commit body
Release Notes:
- N/A
张小白
created
473bbd7
onboarding: Fix typos in comments (#37541)
Click to expand commit body
This PR fixes some grammatical typos in some comments in the
`onboarding` crate.
Release Notes:
- N/A
Marshall Bowers
created
28c78d2
windows: Keep just one copy of GPU instance (#37445)
Click to expand commit body
Now we only keep a single copy of the GPU device. The GPU lost handling
got broken after #35376, but it’s properly handled again now.
Release Notes:
- N/A
张小白
created
fca44f8
languages: Allow installing pre-release of rust-analyzer and clangd (#37530)
Click to expand commit body
Release Notes:
- Added lsp binary config to allow fetching nightly rust-analyzer and
clangd releases
Lukas Wirth
created
b7ad207
worktree: Create parent directories on rename (#37437)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/37357
Release Notes:
- Allow creating sub-directories when renaming a file in file finder
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
This PR cleans up some emitted events around the codebase. These events
are either never emitted or never listened for.
It seems better to re-implement these at some point should they again be
needed - this ensures that they will actually be fired in the cases
where they are needed as opposed to being there and getting unreliable
and stale (which is already the case for the majority of the events
removed here).
Lastly, this ensures the `CapabilitiesChanged` event is not fired too
often.
Release Notes:
- N/A
Finn Evers
created
69a5c45
gpui: Fix out-of-bounds node indices in dispatch_path (#37252)
Click to expand commit body
Observed in a somewhat regular startup crash on Windows at head (~50% of
launches in release mode).
Closes #37212
Release Notes:
- N/A
James Tucker
created
d0aaf04
Change DeepSeek max token count to 128k (#36864)
Click to expand commit body
https://api-docs.deepseek.com/zh-cn/news/news250821
Now the official API supports 128k token content
and have modify the name to v3.1/v3.1 thinking
Release Notes:
- N/A
---------
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
沈瑗杰
and
Ben Brandt
created
d677c98
agent2: Use inline enums in `now` and `edit_file` tools JSON schema (#37397)
Click to expand commit body
Added schemars annotations to generate inline enums instead of
references ($ref) in the JSON schema passed to LLMs.
Concerns :
- "timezeone" parameter for "now" tool function
- "mode" parameter for "edit_file" tool function
Should be the same for futures tools/functions enums. This is easier for
LLMs to understand the schema since many of them don't use JSON
references correctly.
Tested with :
- local GPT-OSS-120b with llama.cpp server (openai compatible)
- remote Claude Sonnet 4.0 with Zed pro subscription
Thanks in advance for the merge.
(notice this is my first PR ever on Github, I hope I'm doing things
well, please let me know if you have any comment - edit: just noticed my
username/email were not correctly setup on my local git, sorry, it's
been 5 years I've not used git)
Closes #37389
Release Notes:
- agent: Improve "now" and "edit_file" tool schemas to work with more
models.
Francis
created
ce36286
docs: Update OpenAI-compatible provider config format (#37517)
Click to expand commit body
The example was still showing how we used to setup openai compatible
providers, but that format should only be used for changing the url for
your actual OpenAI provider.
If you are doing a compatible provider, it should be using the new
format.
Closes #37093
Release Notes:
- N/A
Ben Brandt
created
3c021d0
language_models: Fix beta_headers for Anthropic custom models (#37306)
Click to expand commit body
Closes #37289
The current implementation has a problem. The **`from_id` method** in
the Anthropic crate works well for predefined models, but not for custom
models that are defined in the settings. This is because it fallbacks to
using default beta headers, which are incorrect for custom models.
The issue is that the model instance for custom models lives within the
`language_models` provider, so I've updated the **`stream_completion`**
method to explicitly accept beta headers from its caller. Now, the beta
headers are passed from the `language_models` provider all the way to
`anthropic.stream_completion`, which resolves the issue.
Release Notes:
- Fixed a bug where extra_beta_headers defined in settings for Anthropic
custom models were being ignored.
---------
Signed-off-by: Umesh Yadav <git@umesh.dev>
Umesh Yadav
created
f36a545
onboarding: Improve performance of AI upsell card (#37504)
d6f0811
acp: Receive available commands over notifications (#37499)
Click to expand commit body
See: https://github.com/zed-industries/agent-client-protocol/pull/62
Release Notes:
- Agent Panel: Fixes an issue where Claude Code would timeout waiting
for slash commands to be loaded
Co-authored-by: Cole Miller <cole@zed.dev>
Closes #ISSUE
Centralizes the references to the `ZED_STATELESS` env var into a single
location in a new crate named `zed_env_vars`
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
bf1ae1d
docs: Fix typo in the `CLAUDE.md` section (#37497)
Click to expand commit body
Follow-up to https://github.com/zed-industries/zed/pull/37496. Fix a
typo and improves writing overall.
Release Notes:
- N/A
Danilo Leal
created
3b7dbb8
docs: Add note about `CLAUDE.md` usage (#37496)
Click to expand commit body
Some users asked whether Claude Code in Zed can also observe/consume
`CLAUDE.md` guidelines, regardless of whether they're at the root
`.claude` directory or within the project. Answer is yes and the
documentation will mention it now!
Release Notes:
- N/A
This reverts commit bf5ed6d1c9795369310b5b9d6c752d9dc54991b5.
We believe this may be breaking some users whose shell initialization
scripts change the working directory.
Release Notes:
- N/A
Rendering the disclosure button last (on the far right of the header
container) to avoid awkward layouts when there's truncation and elapsed
time information being displayed.
Release Notes:
- N/A
Danilo Leal
created
2aa0114
ai onboarding: Add some fast-follow adjustments (#37486)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/37305
Release Notes:
- N/A
---------
Co-authored-by: Ben Kunkle <ben@zed.dev>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Danilo Leal
,
Ben Kunkle
, and
Anthony Eid
created
bb2d833
Revert "gpui: Fix overflow_hidden to support clip with border radius" (#37480)
Click to expand commit body
This reverts commit 40199266b6634cc3165f3842abae1d562ef4dcca.
The issue with the commit is: ContentMask<Pixels>::intersect is doing
intersection of corner radii which makes inner containers use the max
corner radius out of all the parents when it should be more complex to
correctly clip children (clip sorting..?)
Release Notes:
- N/A
localcc
created
eedfc5b
acp: Improve handling of invalid external agent server downloads (#37465)
Click to expand commit body
Related to #37213, #37150
When listing previously-downloaded versions of an external agent, don't
try to use any downloads that are missing the agent entrypoint
(indicating that they're corrupt/unusable), and delete those versions,
so that we can attempt to download the latest version again.
Also report clearer errors when failing to start a session due to an
agent server entrypoint or root directory not existing.
Release Notes:
- N/A
Cole Miller
created
0e76cc8
acp: Display a new version call out when one is available (#37479)
Click to expand commit body
<img width="500" alt="CleanShot 2025-09-03 at 16 13 59@2x"
src="https://github.com/user-attachments/assets/beb91365-28e2-4f87-a2c5-7136d37382c7"></img>
Release Notes:
- Agent Panel: Display a callout when a new version of an external agent
is available
---------
Co-authored-by: Cole Miller <cole@zed.dev>
Agus Zubiaga
and
Cole Miller
created
6bd5251
settings_ui: Add test for default values (#37466)
Click to expand commit body
Closes #ISSUE
Adds a test that checks that all settings have default values in
`default.json`. Currently only tests that settings supported by
SettingsUi have defaults, as more settings are added to the settings
editor they will be added to the test as well.
Release Notes:
- N/A *or* Added/Fixed/Improved ...
Ben Kunkle
created
13de400
editor: Do not correct text contrast on non-opaque editor (#37471)
Click to expand commit body
We don’t know the background color behind a non-opaque editor, so we
should skip contrast correction in that case. This prevents
single-editor mode (which is always transparent) from showing weird text
colors when text is selected.
We can’t account for the actual background during contrast correction
because we compute contrast outside gpui, while the actual color
blending happens inside gpui during drawing.
<img width="522" height="145" alt="image"
src="https://github.com/user-attachments/assets/6ee71475-f666-482d-87e6-15cf4c4fceef"
/>
Release Notes:
- Fixed an issue where Command Palette text looked faded when selected.
Closes https://github.com/zed-industries/zed/issues/37144
Adjusts `editor::DeleteToPreviousWordStart`,
`editor::DeleteToNextWordEnd`, `editor::DeleteToNextSubwordEnd` and
`editor::DeleteToPreviousSubwordStart` actions to
* take whitespace sequences with length >= 2 into account and stop after
removing them (whilst movement would also include the word after such
sequences)
* take current language's brackets into account and stop after removing
the text before them
The latter is configurable and can be disabled with `"ignore_brackets":
true` parameter in the action.
Release Notes:
- Improved word deletions to consider whitespace sequences and brackets
by default