97f784d
Fix early dispatch crash on windows (#36445)
Click to expand commit body
Closes #36384 Release Notes: - N/A
localcc created
97f784d
Fix early dispatch crash on windows (#36445)
Closes #36384 Release Notes: - N/A
localcc created
c5991e7
project: Handle `textDocument/didSave` and `textDocument/didChange` (un)registration and usage correctly (#36441)
Follow-up of https://github.com/zed-industries/zed/pull/35306
This PR contains two changes:
Both changes are inspired from:
https://github.com/microsoft/vscode-languageserver-node/blob/d90a87f9557a0df9142cfb33e251cfa6fe27d970/client/src/common/textSynchronization.ts
1. Handling `textDocument/didSave` and `textDocument/didChange`
registration and unregistration correctly:
```rs
#[derive(Debug, Eq, PartialEq, Clone, Deserialize, Serialize)]
#[serde(untagged)]
pub enum TextDocumentSyncCapability {
Kind(TextDocumentSyncKind),
Options(TextDocumentSyncOptions),
}
```
- `textDocument/didSave` dynamic registration contains "includeText"
- `textDocument/didChange` dynamic registration contains "syncKind"
While storing this to Language Server, we use
`TextDocumentSyncCapability::Options` instead of
`TextDocumentSyncCapability::Kind` since it also include
[change](https://github.com/gluon-lang/lsp-types/blob/be7336e92a6ad23f214df19bcdceab17f39531a9/src/lib.rs#L1714-L1717)
field as `TextDocumentSyncCapability::Kind` as well as
[save](https://github.com/gluon-lang/lsp-types/blob/be7336e92a6ad23f214df19bcdceab17f39531a9/src/lib.rs#L1727-L1729)
field as `TextDocumentSyncSaveOptions`. This way while registering or
unregistering both of them, we don't accidentaly mess with other data.
So, if at intialization we end up getting
`TextDocumentSyncCapability::Kind` and we receive any above kind of
dynamic registration, we change `TextDocumentSyncCapability::Kind` to
`TextDocumentSyncCapability::Options` so we can store more data anyway.
2. Modify `include_text` method to only depend on
`TextDocumentSyncSaveOptions`, instead of depending on
`TextDocumentSyncKind`. Idea behind this is,
`TextDocumentSyncSaveOptions` should be responsible for
"textDocument/didSave" notification, and `TextDocumentSyncKind` should
be responsible for "textDocument/didChange", which it already is:
https://github.com/zed-industries/zed/blob/4b79eade1da2f5f7dfa18208cf882c8e6ca8a97f/crates/project/src/lsp_store.rs#L7324-L7331
Release Notes:
- N/A
Smit Barmase created
8b89ea1
Handle auth for claude (#36442)
We'll now use the anthropic provider to get credentials for `claude` and embed its configuration view in the panel when they are not present. Release Notes: - N/A
Agus Zubiaga created
50819a9
client: Parse auth callback query parameters before showing sign-in success page (#36440)
This PR fixes an issue where we would redirect the user's browser to the sign-in success page even if the OAuth callback was malformed. We now parse the OAuth callback parameters from the query string and only redirect to the sign-in success page when they are valid. Release Notes: - Updated the sign-in flow to not show the sign-in success page prematurely.
Marshall Bowers created
3a3df5c
gpui: Add support for custom prompt text in PathPromptOptions (#36410)
This will be used to improve the clarity of the git clone UI ### MacOS <img width="1322" height="128" alt="image" src="https://github.com/user-attachments/assets/3e511143-12c1-4440-89dd-841b21b2e98e" /> ### Windows <img width="338" height="80" alt="image" src="https://github.com/user-attachments/assets/766d08d6-0c72-4175-ad24-59dc6188d5f1" /> ### Linux <img width="387" height="72" alt="Screenshot From 2025-08-18 15-32-06" src="https://github.com/user-attachments/assets/3125a7c4-3975-462a-a547-d5d4fac48f22" /> Release Notes: - N/A
Anthony Eid created
fa61c3e
gpui: Fix typo in `handle_gpui_events` (#36431)
This PR fixes a typo I noticed in the `handle_gpui_events` method name. Release Notes: - N/A
Marshall Bowers created
ed155ce
title_bar: Fix screensharing errors not being shown to the user (#36424)
Release Notes: - N/A
Lukas Wirth created
e1d8e3b
language: Clean up allocations (#36418)
- Correctly pre-allocate `Vec` when deserializing regexes - Simplify manual `Vec::with_capacity` calls by using `Iterator::unzip` - Collect directly into `Arc<[T]>` (uses `Vec` internally anyway, but simplifies code) - Remove unnecessary `LazyLock` around Atomics by not using const incompatible `Default` for initialization. Release Notes: - N/A
tidely created
768b2de
vim: Fix `ap` text object selection when there is line wrapping (#35485)
In Vim mode, `ap` text object (used in `vap`, `dap`, `cap`) was selecting multiple paragraphs when soft wrap was enabled. The bug was caused by using DisplayRow coordinates for arithmetic instead of buffer row coordinates in the paragraph boundary calculation. Fix by converting to buffer coordinates before arithmetic, then back to display coordinates for the final result. Closes #35085 --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Lucas Vieira and Conrad Irwin created
e1d31cf
vim: Display invisibles in mode indicator (#35760)
Release Notes: - Fixes bug where `ctrl-k enter` while in `INSERT` mode would put a newline in the Vim mode indicator #### Old <img width="729" height="486" alt="OldVimModeIndicator" src="https://github.com/user-attachments/assets/58742745-5a58-4e7b-a1ef-29aa3ff1c4f7" /> #### New <img width="729" height="486" alt="NewVimModeIndicator" src="https://github.com/user-attachments/assets/e636359a-06b6-4cdd-9e62-5dc52c6f068f" />
AidanV created
48fed86
acp: Have `AcpThread` handle all interrupting (#36417)
The view was cancelling the generation, but `AcpThread` already handles that, so we removed that extra code and fixed a bug where an update from the first user message would appear after the second one. Release Notes: - N/A Co-authored-by: Danilo <danilo@zed.dev>
Agus Zubiaga and Danilo created
9b78c46
python: Use pip provided by our 'base' venv (#36414)
Closes #36218 Release Notes: - Debugger: Python debugger installation no longer assumes that pip is available in global Python installation
Piotr Osiewicz created
db31fa6
acp: Stay in edit mode when current completion ends (#36413)
When a turn ends and the checkpoint is updated, `AcpThread` emits `EntryUpdated` with the index of the user message. This was causing the message editor to be recreated and, therefore, lose focus. Release Notes: - N/A
Agus Zubiaga created
6bf6669
agent2: Allow to interrupt and send a new message (#36185)
Release Notes: - N/A
Danilo Leal created
6f56ac5
Use upstream version of yawc (#36412)
As this was merged in upstream: https://github.com/infinitefield/yawc/pull/16. It's safe to point yawc to upstream instead of fork. cc @maxdeviant Release Notes: - N/A
Umesh Yadav created
e2db434
acp thread view: Floating editing message controls (#36283)
Prevents layout shift when focusing the editor Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Agus Zubiaga and Danilo Leal created
58f7006
editor: Add tests to ensure no horizontal scrolling is possible in soft wrap mode (#36411)
Prior to https://github.com/zed-industries/zed/pull/34564 as well as https://github.com/zed-industries/zed/pull/26893, we would have cases where editors would be scrollable even if `soft_wrap` was set to `editor_width`. This has regressed and improved quite a few times back and forth. The issue was only within the editor code, the code for the wrap map was functioning and tested properly. Hence, this PR adds two tests to the editor rendering code in an effort to ensure that we maintain the current correct behavior. Release Notes: - N/A
Finn Evers created
1add1d0
Add option to disable auto indentation (#36259)
Closes https://github.com/zed-industries/zed/issues/11780 While auto indentation is generally nice to have, there are cases where it is currently just not good enough for some languages (e.g. Haskell) or users just straight up do not want their editor to auto indent for them. Hence, this PR adds the possibilty to disable auto indentation for either all language or on a per-language basis. Manual invocation via the `editor: auto indent` action will continue to work. Also takes a similar approach as https://github.com/zed-industries/zed/pull/31569 to ensure performance is fine for larger multicursor edits. Release Notes: - Added the possibility to configure auto indentation for all languages and per language. Add `"auto_indent": false"` to your settings or desired language to disable the feature.
Finn Evers created
5225844
lsp: Always report innermost workspace_folders (#36407)
Closes #ISSUE Release Notes: - N/A *or* Added/Fixed/Improved ...
Piotr Osiewicz created
57198f3
agent2: Show Zed AI onboarding (#36406)
Release Notes: - N/A
Bennet Bo Fenner created
d5711d4
editor: Fix panic in inlay hint while padding (#36405)
Closes #36247 Fix a panic when padding inlay hints if the last character is a multi-byte character. Regressed in https://github.com/zed-industries/zed/pull/35786. Release Notes: - Fixed a crash that could occur when an inlay hint ended with `...`.
Smit Barmase created
8433369
keymap_ui: Ensure keybind with empty arguments can be saved (#36393)
Follow up to #36278 to ensure this bug is actually fixed. Also fixes this on two layers and adds a test for the lower layer, as we cannot properly test it in the UI. Furthermore, this improves the error message to show some more context and ensures the status toast is actually only shown when the keybind was successfully updated: Before, we would show the success toast whilst also showing an error in the editor. Lastly, this also fixes some issues with the status toast (and animations) where no status toast or no animation would show in certain scenarios. Release Notes: - N/A
Finn Evers created
d83f341
Silence "minidump endpoint not set" errors' backtraces in the logs (#36404)
<img width="1899" height="693" alt="bad" src="https://github.com/user-attachments/assets/6e6eb2d7-0933-4bb7-b339-ecebba00b60b" /> Release Notes: - N/A
Kirill Bulatov created
472f1a8
editor: Add right click context menu to buffer headers (#36398)
This adds a context menu to buffer headers mimicking that of pane tabs, notably being able to copy the relative and absolute paths of the buffer as well as opening a terminal in the parent. Confusingly prior to this right clicking a buffer header used to open the context menu of the underlying editor. Release Notes: - Added context menu for buffer titles
Lukas Wirth created
5591fc8
agent: Restore last used agent session on startup (#36401)
Release Notes: - N/A
Bennet Bo Fenner created
2eadd5a
agent2: Make `model` of `Thread` optional (#36395)
Related to #36394 Release Notes: - N/A
Bennet Bo Fenner created
2075627
Suggest single tracked commit message only when nothing else is staged (#36347)
Closes #36341 <img width="543" height="548" alt="image" src="https://github.com/user-attachments/assets/ab76a32c-c622-4025-9b28-5accc8d3f04c" /> In the case where commit message was suggested based on single tracked entry, this PR adds a clause to the condition to ensure there are no staged entries. Release Notes: - Fixed commit message suggestion when there is one unstaged tracked file, but multiple untracked files are staged.
Mahmud Ridwan created
b8a1066
lsp: Identify language servers by their configuration (#35270)
- **WIP: reorganize dispositions** - **Introduce a LocalToolchainStore trait and use it for LspAdapter methods** Closes #35782 Closes #27331 Release Notes: - Python: Improved propagation of a selected virtual environment into the LSP configuration. This should the make all language-related features such as Go to definition or Find all references more reliable. --------- Co-authored-by: Cole Miller <cole@zed.dev> Co-authored-by: Lukas Wirth <lukas@zed.dev>
Piotr Osiewicz , Cole Miller , and Lukas Wirth created
42ffa89
open_ai: Fix error response parsing (#36390)
Closes #35925 Release Notes: - Fixed OpenAI error response parsing in some cases
Oleksiy Syvokon created
61ce07a
Add capabilities to OpenAI-compatible model settings (#36370)
### TL;DR
* Adds `capabilities` configuration for OpenAI-compatible models
* Relates to
https://github.com/zed-industries/zed/issues/36215#issuecomment-3193920491
### Summary
This PR introduces support for configuring model capabilities for
OpenAI-compatible language models. The implementation addresses the
issue that not all OpenAI-compatible APIs support the same features -
for example, Cerebras' API explicitly does not support
`parallel_tool_calls` as documented in their [OpenAI compatibility
guide](https://inference-docs.cerebras.ai/resources/openai#currently-unsupported-openai-features).
### Changes
1. **Model Capabilities Structure**:
- Added `ModelCapabilityToggles` struct for UI representation with
boolean toggle states
- Implemented proper parsing of capability toggles into
`ModelCapabilities`
2. **UI Updates**:
- Modified the "Add LLM Provider" modal to include checkboxes for each
capability
- Each OpenAI-compatible model can now be configured with its specific
capabilities through the UI
3. **Configuration File Structure**:
- Updated the settings schema to support a `capabilities` object for
each `openai_compatible` model
- Each capability (`tools`, `images`, `parallel_tool_calls`,
`prompt_cache_key`) can be individually specified per model
### Example Configuration
```json
{
"openai_compatible": {
"Cerebras": {
"api_url": "https://api.cerebras.ai/v1",
"available_models": [
{
"name": "gpt-oss-120b",
"max_tokens": 131000,
"capabilities": {
"tools": true,
"images": false,
"parallel_tool_calls": false,
"prompt_cache_key": false
}
}
]
}
}
}
```
### Tests Added
- Added tests to verify default capability values are correctly applied
- Added tests to verify that deselected toggles are properly parsed as
`false`
- Added tests to verify that mixed capability selections work correctly
Thanks to @osyvokon for the desired `capabilities` configuration
structure!
Release Notes:
- OpenAI-compatible models now have configurable capabilities (#36370;
thanks @calesennett)
---------
Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Cale Sennett and Oleksiy Syvokon created
ea828c0
agent2: Emit cancellation stop reason on cancel (#36381)
Release Notes: - N/A --------- Co-authored-by: Antonio Scandurra <me@as-cii.com>
Ben Brandt and Antonio Scandurra created
b3969ed
Standardize on canceled instead of cancelled (#36385)
Release Notes: - N/A
Ben Brandt created
7dc4adb
gpui: Fix crash when starting Zed on macOS during texture creation (#36382)
Closes #36229 Fix zero-sized texture creation that triggers a SIGABRT in the Metal renderer. Not sure why this happens yet, but it likely occurs when `native_window.contentView()` returns a zero `NSSize` during initial window creation, before the view size is computed. Release Notes: - Fixed a rare startup crash on macOS.
Smit Barmase created
2dbc951
agent2: Start loading mentioned threads and text threads as soon as they're added (#36374)
Release Notes: - N/A *or* Added/Fixed/Improved ...
Cole Miller created
8282b9c
project panel: Add git clone action to empty state (#36371)
This PR adds the git clone action to the project panel. It also changes the "open" button to open a folder instead of the recent projects modal, which feels faster to start with, more intuitive, and also consistent with VS Code (which I think is good in this specific case). <img width="500" height="1334" alt="CleanShot 2025-08-17 at 2 10 01@2x" src="https://github.com/user-attachments/assets/ff953228-9e8e-413b-89ba-fa0870a0df17" /> Release Notes: - Improved the project panel empty state by including the git clone action and allowing users to quickly open a local folder.
Danilo Leal created
46a2d8d
git: Refine clone repo modal design (#36369)
Release Notes: - N/A
Danilo Leal created
9cd13a3
agent2: Experiment with new toolbar design (#36366)
Release Notes: - N/A
Danilo Leal created
faaaf02
ui: Reduce icons stroke width (#36361)
After redesigning all Zed icons (https://github.com/zed-industries/zed/pull/35856), it felt like using 1.5 for stroke width didn't really flow well with the default typeface default font weight. Reducing it to 1.2 makes the UI much sharper, less burry, and more cohesive overall. Release Notes: - N/A
Danilo Leal created
addc4f4
agent_ui: Ensure that all configuration views get rendered with full width (#36362)
Closes #36097 Release Notes: - Fixed API key input fields getting shrunk in Agent Panel settings view on low panel widths paired with high UI font sizes.
Piotr Osiewicz created
5895fac
Refactor ToolCallStatus enum to flat variants (#36356)
Replace nested Allowed variant with distinct statuses for clearer status handling. Release Notes: - N/A
Ben Brandt created
da8a692
docs: Remove link to openSUSE Tumbleweed (#36355)
This PR removes the link to Zed on openSUSE Tumbleweed, as it has been removed: https://en.opensuse.org/index.php?title=Archive:Zed&action=history <img width="1178" height="517" alt="Screenshot 2025-08-17 at 8 48 59 AM" src="https://github.com/user-attachments/assets/3e441b1c-81ad-4f4b-a8a0-e872f916c2d8" /> Release Notes: - N/A
Marshall Bowers created
f17f63e
Remove `/docs` slash command (#36325)
This PR removes the `/docs` slash command. We never fully shipped this—with it requiring explicit opt-in via a setting—and it doesn't seem like the feature is needed in an agentic world. Release Notes: - Removed the `/docs` slash command.
Marshall Bowers created
15a1eb2
emmet: Extract to zed-extensions/emmet repository (#36323)
This PR extracts the Emmet extension to the [zed-extensions/emmet](https://github.com/zed-extensions/emmet) repository. Release Notes: - N/A
Marshall Bowers created
332626e
Allow Permission Request to only require a ToolCallUpdate instead of a full tool call (#36319)
Release Notes: - N/A
Ben Brandt created
7b3fe0a
Make agent font size inherit the UI font size by default (#36306)
Ensures issues like #36242 and #36295 do not arise where users are confused that the agent panel does not follow the default UI font size whilst also keeping the possibility of customization. The agent font size was matching the UI font size previously alredy, which makes it easier to change it for most scenarios. Also cleans up some related logic around modifying the font sizes. Release Notes: - The agent panel font size will now inherit the UI font size by default if not set in your settings.
Finn Evers created
36184a7
collab: Drop `rate_buckets` table (#36315)
This PR drops the `rate_buckets` table, as we're no longer using it. Release Notes: - N/A
Marshall Bowers created
ea7bc96
collab: Remove billing-related tables from SQLite schema (#36312)
This PR removes the billing-related tables from the SQLite schema, as we don't actually reference these tables anywhere in the Collab codebase anymore. Release Notes: - N/A
Marshall Bowers created
d1958aa
collab: Add `orb_customer_id` to `billing_customers` (#36310)
This PR adds an `orb_customer_id` column to the `billing_customers` table. Release Notes: - N/A
Marshall Bowers created
5620e35
collab: Make `admin` column non-nullable on `users` table (#36307)
This PR updates the `admin` column on the `users` table to be non-nullable. We were already treating it like this in practice. All rows in the production database already have a value for the `admin` column. Release Notes: - N/A
Marshall Bowers created
6f2e7c3
Ensure bundled files are opened as read-only (#36299)
Closes #36297 While we set the editor as read-only for bundled files, we didn't do this for the underlying buffer. This PR fixes this and adds a test for the corresponding case. Release Notes: - Fixed an issue where bundled files (e.g. the default settings) could be edited in some circumstances
Finn Evers created