Commit log

67e7d14 WIP

Conrad Irwin created

3b7ad62 Re-wire history

Conrad Irwin created

8998cde Wire through title update

Conrad Irwin created

3ed2b76 Generating thread title

Conrad Irwin created

9994494 Merge branch 'main' into agent2-history

Conrad Irwin created

8373884 TEMP

Conrad Irwin created

5d88de1 Saving history with thread titles

Conrad Irwin created

50819a9 client: Parse auth callback query parameters before showing sign-in success page (#36440)

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

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

Click to expand commit body
This PR fixes a typo I noticed in the `handle_gpui_events` method name.

Release Notes:

- N/A

Marshall Bowers created

cc19642 Remove dbg!

Click to expand commit body
Co-authored-by: Antonio Scandurra <me@as-cii.com>

Conrad Irwin and Antonio Scandurra created

fc076e8 History mostly working

Click to expand commit body
Co-authored-by: Antonio Scandurra <me@as-cii.com>

Conrad Irwin and Antonio Scandurra created

4b1a48e Wire up history completely

Click to expand commit body
Co-authored-by: Antonio Scandurra <me@as-cii.com>

Conrad Irwin and Antonio Scandurra created

ed155ce title_bar: Fix screensharing errors not being shown to the user (#36424)

Click to expand commit body
Release Notes:

- N/A

Lukas Wirth created

e1d8e3b language: Clean up allocations (#36418)

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

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

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

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

d83210d WIP

Click to expand commit body
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Antonio Scandurra and Conrad Irwin created

9b78c46 python: Use pip provided by our 'base' venv (#36414)

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

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

Click to expand commit body
Release Notes:

- N/A

Danilo Leal created

6f56ac5 Use upstream version of yawc (#36412)

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

205b137 Synchronize initial entries

Antonio Scandurra created

e6e23d0 Checkpoint

Antonio Scandurra created

e2db434 acp thread view: Floating editing message controls (#36283)

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

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

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

199256e Checkpoint

Antonio Scandurra created

3a0e55d Stream deserialized thread to `AcpThread`

Antonio Scandurra created

5225844 lsp: Always report innermost workspace_folders (#36407)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Piotr Osiewicz created

5259c86 WIP

Antonio Scandurra created

57198f3 agent2: Show Zed AI onboarding (#36406)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

d5711d4 editor: Fix panic in inlay hint while padding (#36405)

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

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

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

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

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

2eadd5a agent2: Make `model` of `Thread` optional (#36395)

Click to expand commit body
Related to #36394 

Release Notes:

- N/A

Bennet Bo Fenner created

2075627 Suggest single tracked commit message only when nothing else is staged (#36347)

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

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

Click to expand commit body
Closes #35925

Release Notes:

- Fixed OpenAI error response parsing in some cases

Oleksiy Syvokon created

501e72e Merge remote-tracking branch 'origin/main' into agent2-history

Antonio Scandurra created

61ce07a Add capabilities to OpenAI-compatible model settings (#36370)

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

a231fd3 Take a weak thread in EditFileTool to avoid cycle

Antonio Scandurra created

ea828c0 agent2: Emit cancellation stop reason on cancel (#36381)

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

Click to expand commit body
Release Notes:

- N/A

Ben Brandt created

7dc4adb gpui: Fix crash when starting Zed on macOS during texture creation (#36382)

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

Click to expand commit body
Release Notes:

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

Cole Miller created

fae5900 factor otu

Conrad Irwin created