Commit log

c168fc3 collab: Add `mode` column to `subscription_usage_meters` table (#29603)

Click to expand commit body
This PR adds a `mode` column to the `subscription_usage_meters` table in
the LLM database.

Release Notes:

- N/A

Marshall Bowers created

b2df395 language_models: Change default fast model for Zed provider (#29600)

Click to expand commit body
This PR changes the default fast model for the Zed provider from Claude
3.5 Haiku to Claude 3.5 Sonnet.

We don't offer Claude 3.5 Haiku to users.

Closes https://github.com/zed-industries/zed/issues/29505.

Release Notes:

- agent: Changed the default fast model for the Zed provider to Claude
3.5 Sonnet.

Marshall Bowers created

2b431d3 Re-add code block formatting instructions (#29574)

Click to expand commit body
Re-enabled instructions about code block formatting.

In practice, the model doesn't seem to use these very often, but there's
no negative effect on evals. In a future PR, I'll experiment with adding
more evals around the model actually using the code blocks.

2 runs before: (`--repetitions=8`)
```
=================================================================
                            AGGREGATE
=================================================================


4 examples failed to run!
Average programmatic score: 37%
Average diff score: 66%
Average thread score: 93%


-----------------------------------------------------------------
                     CUMULATIVE TOOL METRICS
-----------------------------------------------------------------

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Tool             β”‚   Uses   β”‚ Failures β”‚   Rate   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚edit_file                     β”‚   398    β”‚    53    β”‚   13%    β”‚
β”‚terminal                      β”‚    11    β”‚    1     β”‚    9%    β”‚
β”‚create_file                   β”‚    40    β”‚    2     β”‚    5%    β”‚
β”‚read_file                     β”‚   245    β”‚    8     β”‚    3%    β”‚
β”‚find_path                     β”‚    48    β”‚    0     β”‚    0%    β”‚
β”‚list_directory                β”‚    13    β”‚    0     β”‚    0%    β”‚
β”‚grep                          β”‚   133    β”‚    0     β”‚    0%    β”‚
β”‚thinking                      β”‚    18    β”‚    0     β”‚    0%    β”‚
β”‚diagnostics                   β”‚   130    β”‚    0     β”‚    0%    β”‚
```

```
=================================================================
                            AGGREGATE
=================================================================


1 examples failed to run!
Average programmatic score: 41%
Average diff score: 68%
Average thread score: 96%


-----------------------------------------------------------------
                     CUMULATIVE TOOL METRICS
-----------------------------------------------------------------

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Tool             β”‚   Uses   β”‚ Failures β”‚   Rate   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚fetch                         β”‚    1     β”‚    1     β”‚   100%   β”‚
β”‚edit_file                     β”‚   553    β”‚    63    β”‚   11%    β”‚
β”‚read_file                     β”‚   349    β”‚    3     β”‚    1%    β”‚
β”‚diagnostics                   β”‚   158    β”‚    0     β”‚    0%    β”‚
β”‚find_path                     β”‚    70    β”‚    0     β”‚    0%    β”‚
β”‚list_directory                β”‚    10    β”‚    0     β”‚    0%    β”‚
β”‚thinking                      β”‚    45    β”‚    0     β”‚    0%    β”‚
β”‚grep                          β”‚   213    β”‚    0     β”‚    0%    β”‚
β”‚create_file                   β”‚    24    β”‚    0     β”‚    0%    β”‚
β”‚terminal                      β”‚    17    β”‚    0     β”‚    0%    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

1 run after this change:

```
=================================================================
                            AGGREGATE
=================================================================

Average programmatic score: 42%
Average diff score: 74%
Average thread score: 100%


-----------------------------------------------------------------
                     CUMULATIVE TOOL METRICS
-----------------------------------------------------------------

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             Tool             β”‚   Uses   β”‚ Failures β”‚   Rate   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚edit_file                     β”‚   534    β”‚    92    β”‚   17%    β”‚
β”‚read_file                     β”‚   325    β”‚    6     β”‚    2%    β”‚
β”‚list_directory                β”‚    6     β”‚    0     β”‚    0%    β”‚
β”‚thinking                      β”‚    12    β”‚    0     β”‚    0%    β”‚
β”‚create_file                   β”‚    16    β”‚    0     β”‚    0%    β”‚
β”‚diagnostics                   β”‚    49    β”‚    0     β”‚    0%    β”‚
β”‚grep                          β”‚   234    β”‚    0     β”‚    0%    β”‚
β”‚find_path                     β”‚    65    β”‚    0     β”‚    0%    β”‚
β”‚terminal                      β”‚    38    β”‚    0     β”‚    0%    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```


Release Notes:

- N/A

Richard Feldman created

4812c90 agent: Support images via @file and the file context picker (#29596)

Click to expand commit body
Release Notes:

- agent: Add support for @mentioning images
- agent: Add support for including images via file context picker

---------

Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>

Bennet Bo Fenner and Oleksiy Syvokon created

fcef101 agent: Only show expand message editor when focused on it (#29595)

Click to expand commit body
Simplifying the UI as much as possible.

Release Notes:

- N/A

Danilo Leal created

7e25460 agent: Add message editor UI improvements (#29594)

Click to expand commit body
Probably the most relevant change in this PR is the commented out (still
pending) line number diffs. Aside from this, commits are pretty
descriptive.

Release Notes:

- N/A

Danilo Leal created

9b37206 extensions_ui: Add design changes to expose the filters more (#29582)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/28086

The main motivator for this change is to have the "MCP Servers" filter
more clearly visible. And because of this, all other filters end up more
visible, as they're not in a dropdown menu anymore. Ended up pushing
some other small changes here and there as well. This is our final
product:

<img
src="https://github.com/user-attachments/assets/16ac78b6-72d9-4a8a-801b-b4b992221331"
width="700"/>

Release Notes:

- N/A

Danilo Leal created

756fcd0 Git tweaks (#28791)

Click to expand commit body
Release Notes:

- git: Add a `git_panel.sort_by_path` setting to mix untracked/tracked
files in the diff list.
- git: Remove the "β€’" placeholder for "Tracked". The commit button says
"Commit Tracked" still by default, and this was misinterpreted to mean
"partially staged". Hovering over the button will show you which files
are tracked (in addition to the yellow square-with-a-dot-in-it).
- Increase the default value of `expand_excerpt_lines` from 3 to 5. This
makes it faster to see more context in the git diff view.

---------

Co-authored-by: Birk Skyum <birk.skyum@pm.me>
Co-authored-by: Peter Tripp <peter@zed.dev>

Conrad Irwin , Birk Skyum , and Peter Tripp created

3fd3779 freebsd: Fix failure to build (#29587)

Click to expand commit body
main was failing to build on FreeBSD.
[joblink](https://github.com/zed-industries/zed/actions/runs/14721383651/job/41315738893)

```
  error[E0425]: cannot find value `platform` in this scope
     --> crates/terminal/src/terminal_settings.rs:298:36
      |
  298 |         let shell_name = format!("{platform}Exec");
      |                                    ^^^^^^^^ not found in this scope
  
  error[E0425]: cannot find value `platform` in this scope
     --> crates/terminal/src/terminal_settings.rs:304:46
      |
  304 |             .read_value(&name(&format!("env.{platform}")))
      |                                              ^^^^^^^^ not found in this scope
```

CC: @P1n3appl3 

Release Notes:

- N/A

Peter Tripp created

ab18085 Debug console tweaks (#29586)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Co-authored-by: Cole Miller <m@cole-miller.net>

Conrad Irwin , Anthony Eid , and Cole Miller created

2beefc8 Fix gemini model token limits (#29584)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

5092f0f collab: Sync model request overages to Stripe (#29583)

Click to expand commit body
This PR adds syncing of model request overages to Stripe.

Release Notes:

- N/A

Marshall Bowers created

3a212e7 Fix data loss when project settings opened with ".zed" in `file_scan_exclusions` (#29578)

Click to expand commit body
Closes #28640

Before creating an entry for a file opened with `open_local_file`, make
sure it doesn't exist, in addition to checking that it isn't already
tracked in the workspace

Release Notes:

- Fixed an issue where the project settings file would be truncated when
opened with `zed: open project settings` if the ".zed" directory was
excluded from the files scanned in a workspace (in
"file_scan_exclusions")

Ben Kunkle created

4dc8ce8 ollama: Add Qwen3 and Gemma3 (default to 16K context) (#29580)

Click to expand commit body
If you have the VRAM you can increase the context by adding this to your
settings.json:

```json
  "language_models": {
    "ollama": {
      "available_models": [
        { "max_tokens": 65536, "name": "qwen3", "display_name": "Qwen3-64k" }
      ]
    }
  },
```

Release Notes:

- ollama: Add support for Qwen3. Defaults to 16K token context. See:
[Assistant Configuration
Docs](https://zed.dev/docs/assistant/configuration#ollama-context) to
increase.

Peter Tripp created

2cc5a0d zed_extension_api: Fork new version of extension API (#29579)

Click to expand commit body
This PR forks a new version of the `zed_extension_api` in preparation
for new changes.

Release Notes:

- N/A

Marshall Bowers created

bc665b2 Ensure thread's model is initialized once settings are loaded

Click to expand commit body
Also, avoid showing token threshold warning when thread has no model.

Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Max Brunsfeld and Michael Sloan created

17903a0 Associate each thread with a model (#29573)

Click to expand commit body
This PR makes it possible to use different LLM models in the agent
panels of two different projects, simultaneously. It also properly
restores a thread's original model when restoring it from the history,
rather than having it use the default model. As before, newly-created
threads will use the current default model.

Release Notes:

- Enabled different project windows to use different models in the agent
panel
- Enhanced the agent panel so that when revisiting old threads, their
original model will be used.

---------

Co-authored-by: Richard Feldman <oss@rtfeldman.com>

Max Brunsfeld and Richard Feldman created

5102c4c gpui: Fix markdown wrapped background not correctly rendering (#29571)

Click to expand commit body
Closes #29532

Fixes case where the markdown background was not rendering correctly.
This regression was introduced in
https://github.com/zed-industries/zed/pull/26454.

<img
src="https://github.com/user-attachments/assets/1e64930f-c98e-4042-a20e-46eed03293d6"
alt="image" width="400" />


Release Notes:

- Fixed an issue where markdown code blocks did not wrap correctly.

Smit Barmase created

2139219 editor: Fix selection and bracket pair highlight not appearing on collab updates (#29558)

Click to expand commit body
This PR fixes bug where selection and bracket pair highlights would not
update when new text was added via collab.

Release Notes:

- Fixed an issue where selection and bracket pair highlights would not
update when new text was added via collab.

---------

Co-authored-by: Ben Kunkle <ben@zed.dev>

Smit Barmase and Ben Kunkle created

9abeedf collab: Rename symbols for existing Stripe synchronization (#29570)

Click to expand commit body
This PR renames the symbols for the existing Stripe synchronization.

This will make things clearer once the new synchronization job for the
new billing is added.

Release Notes:

- N/A

Marshall Bowers created

1d7c86b Simplify the SerializableItem::cleanup implementation (#29567)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: Julia Ryan <juliaryan3.14@gmail.com>

Mikayla Maki and Julia Ryan created

1770331 collab: Avoid creating duplicate Stripe customers (#29566)

Click to expand commit body
This PR makes it so we check for an existing Stripe customer by email
address before attempting to create a new one.

This should avoid the case where we end up creating multiple Stripe
customers for the same user.

Release Notes:

- N/A

Marshall Bowers created

bbe8d6a agent: Cancel pending in-edit user message upon new message submit (#29565)

Click to expand commit body
Previously, if you clicked on a user message to edit it, and then, while
the user message has the editor pending, sent a new message via the
textarea, the whole thread would be grayed out because we hadn't
dismissed the to-be-edited pending user message. That's now fixed.

Release Notes:

- agent: Fixed a bug that would make the whole thread be grayed out upon
sending a new message while a user message had a pending edit.

Danilo Leal created

bbc6674 Make thread context wait on detailed summary + remove "Summarizing context..." (#29564)

Click to expand commit body
This moves summarization task management out of `context_store`. The
code there was draining a Vec of tasks to block on, but this is no
longer a good fit for message_editor's context loading. It needs to be
able to repeatedly await on the thread summarization tasks involved in
the context.

Discussed with Danilo, and he thinks it'd be good to remove the current
"Summarizing context" anyway since it causes layout shift. If message
send is blocked on summarizing, the pulsing context pill is sufficient
for now. This UI change made this overall change more straightforward.

Release Notes:

- N/A

Michael Sloan created

99df119 agent: Include grep-related instructions in the prompt only if the tool is available (#29536)

Click to expand commit body
This change updates the system prompt to conditionally include
`grep`-related instructions based on whether the `grep` tool is enabled.

Implementation details:
1. Add a `has_tool` handlebars helper.
2. Pass the `model` to all locations where the prompt is built.
3. Use `{{#if has_tool "grep"}}` in the system prompt to gate
`grep`-specific instructions.

Testing:
- Unit tests for the `hasTool` helper.
- Unit tests to verify that `grep`-related instructions are included /
omitted from the prompt as appropriate.
- Manual agent evaluation:
- Setup: Asked the Agent "List all impls of MyTrait in the project"
using a custom "No tools" profile (all tools disabled).
- Before the change: The Agent attempted to call `grep`, encountered an
error, then realized the tool was unavailable.
- After the change: The Agent immediately asked to enable a search tool.

Note: in principle, `grep`/`read_file` tool descriptions alone might be
enough, but to confirm this we need more evaluation. If it turns out to
be true, we'll be able to remove grep-specific instructions from the
system prompt and undo this change.

Release Notes:

- N/A

Oleksiy Syvokon created

0e477e7 Less log spam (non git worktrees; saving with no LSP) (#29557)

Click to expand commit body
- See: https://github.com/zed-industries/zed/discussions/29541
- `failed to get git blame data:` occurred whenever opening a file that
does not have git blame data and with `git.inline_blame.enabled` = true
(the default). Notably this would be triggered whenever you opened your
settings or keymap (unless ~/.config/zed was git managed).
- `No language server found to format buffer` triggered whenever you
saved a buffer with `format_on_save` (the default for most languages)
but had no LSP configured for this file type (e.g. Plain Text).


Release Notes:

- N/A

Peter Tripp created

0afb980 Move Show Code Actions lower in editor context menu (#29556)

Click to expand commit body
The 'Go to Definition' action is more commonly used.

Release Notes:

- N/A

Max Brunsfeld created

d360f77 debugger: Fix bug where args from debug config weren't sent to adapters (#29445)

Click to expand commit body
I added some tests to ensure that this regression doesn't happen again.
This also fixes the cargo test locators, debugging all tests in a module
instead of just the singular test a user selects.

Release Notes:

- N/A

Anthony Eid created

92b9bc5 format: Minor logging improvements (#29554)

Click to expand commit body
Closes #ISSUE

Release Notes:

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

Ben Kunkle created

ed367e1 vim: Add neovim 0.11 default mappings (#28602)

Click to expand commit body
Update the keymap to include:
https://neovim.io/doc/user/news-0.11.html#_defaults

This does conflict with `gr` replace with register though, is `gR` a
good alternative?

Release Notes:

- vim: Update the keymap to include: https://neovim.io/doc/user/news-0.11.html#_defaults
- vim: Replace with register has been remapped from `gr` to `gR`.

5brian created

b41ffae Method renaming intended to be included in #29551 (#29553)

Click to expand commit body
`text_hover_view` --> `ContextPillHover::new_text`

Release Notes:

- N/A

Michael Sloan created

ef33666 linux(x11): Add support for pasting images from clipboard (#29387)

Click to expand commit body
Closes:
https://github.com/zed-industries/zed/pull/29177#issuecomment-2823359242

Removes dependency on
[quininer/x11-clipboard](https://github.com/quininer/x11-clipboard) as
it is in [maintenance
mode](https://github.com/quininer/x11-clipboard/issues/19).

X11 clipboard functionality is now built-in to GPUI which was
accomplished by stripping the non-x11-related code/abstractions from
[1Password/arboard](https://github.com/1Password/arboard) and extending
it to support all image formats already supported by GPUI on wayland and
macos.

A benefit of switching over to the `arboard` implementation, is that we
now make an attempt to have an X11 "clipboard manager" (if available -
something the user has to setup themselves) save the contents of
clipboard (if the last copy operation was within Zed) so that the copied
contents can still be pasted once Zed has completely stopped.

Release Notes:

- Linux(X11): Add support for pasting images from clipboard

Ben Kunkle created

cd86905 language_models: Pass up `mode` from the `LanguageModelRequest` (#29552)

Click to expand commit body
This PR makes it so we pass up the `mode` from the
`LanguageModelRequest` when interacting with the Zed provider instead of
passing a hard-coded value.

Release Notes:

- N/A

Marshall Bowers created

abb48b7 agent: Improve attached context display and show hovers for symbol / selection / rules / thread (#29551)

Click to expand commit body
* Brings back hover popover of selection context.

* Adds hover popover for symbol, rules, and thread context.

* Makes context attached to messages display the names / content at
attachment time.

* Adds the file name as the displayed parent of symbol context.

* Brings back `impl Component for AddedContext`

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennet@zed.dev>

Michael Sloan and Bennet Bo Fenner created

8afac38 vim: Fix `'t'` motion to start of soft wrapped line (#29303)

Click to expand commit body
Closes #28853

Release Notes:

- Fixes `'t'` motion going on top of character that is at the beginning
of soft wrapped line instead of before

AidanV created

53b36b3 Update docs around vim's substitute command (#29404)

Click to expand commit body
With the introduction of
https://github.com/zed-industries/zed/pull/28138, the current vim docs
became stale.

This PR makes a small update to the docs to reflect this.

alexfertel created

ce93961 agent: Add "max mode" toggle (#29549)

Click to expand commit body
This PR adds a "max mode" toggle to the Agent panel, for models that
support it.

Only visible to folks in the `new-billing` feature flag.

Icon is just a placeholder.

Release Notes:

- N/A

Marshall Bowers created

e3c987e zed: Don't feature-gate `zed: open account settings` action (#29542)

Click to expand commit body
This PR removes the feature-gating of the `zed: open account settings`
action, as everyone has access to the account page now.

Release Notes:

- N/A

Marshall Bowers created

4dc0551 debugger_ui: Show zoom buttons only when the pane is hovered (#29543)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

bf9e5b4 Fix Python builtin type highlighting (#29475)

Click to expand commit body
| Zed 0.183.11 | With this PR |
| --- | --- |
|
![0.183.11](https://github.com/user-attachments/assets/6bb16c9b-2d6a-4424-a2ea-9ff051eb3085)
|
![pr](https://github.com/user-attachments/assets/d39d12d1-e6c3-4c06-8829-c5ee508ae83a)
|

```python
class A:
  @classmethod
  def list(cls, list: list) -> list:
    return list

A.list(list())
A.list(list=list())
A.list(list=list(A.list(list())))

list: list = list()
A.list(list)
A.list(list=list)
A.list(list=A.list(list))
```

Release Notes:

  - Improved Python builtin type highlighting

chbk created

cfb8cae docs: Fix linux crash logs location (#29444)

Click to expand commit body
Release Notes:

- N/A

Tuur Vanhoutte created

68e0105 Agent: Include partial output if terminal tool fails (#29115)

Click to expand commit body
This PR addresses the behavior of the agent's terminal tool when the
executed command is interrupted or fails after producing some output.
Currently, if the command doesn't finish successfully, any partial
output captured before the interruption/failure is discarded, and only
an error message (or a generic cancellation message) is returned to the
LLM.

This change modifies the `run_command_limited` function in the terminal
tool to catch errors when awaiting the command's status (which includes
interruptions). In the case of such an error, it now includes any
partial stdout/stderr captured up to that point within the error message
returned to the `ToolUseState`. This ensures the LLM receives the
partial context even when the command doesn't complete cleanly, framed
appropriately as part of an error/interruption message.

Closes #29101

Release Notes:

- N/A

Mani Rash Ahmadi created

e98e6c7 title_bar: Put plan behind `new-billing` feature flag (#29540)

Click to expand commit body
This PR puts the displaying of the plan in the user menu behind the
`new-billing` feature flag instead of the old `zed-pro` feature flag.

Release Notes:

- N/A

Marshall Bowers created

3a1bd38 reqwest_client: Only register proxies with valid proxy URIs (#27773)

Click to expand commit body
Closes #27641

This PR fixes invalid proxy URIs being registered despite the URI not
being a valid proxy URI.

Whilst investigating #27641 , I noticed that currently any proxy URI
passed to `RequestClient::proxy_and_user_agent` will be assigned to the
created client, even if the URI is not a valid proxy URI. Given a test
as an example:

We create an URI here and pass it as a proxy to
`ReqwestClient::proxy_and_user_agent`:

https://github.com/zed-industries/zed/blob/main/crates/reqwest_client/src/reqwest_client.rs#L272-L273

In `ReqwestClient::proxy_and_user_agent`we take the proxy parameter here

https://github.com/zed-industries/zed/blob/9b40770e9f92a4431fe8f04cbb03b106569606c8/crates/reqwest_client/src/reqwest_client.rs#L46

and set it unconditionally here:

https://github.com/zed-industries/zed/blob/9b40770e9f92a4431fe8f04cbb03b106569606c8/crates/reqwest_client/src/reqwest_client.rs#L62

, not considering at all whether the proxy was successfully created
above. Concluding, we currently do not actually check whether a proxy
was successfully created, but rather whether an URI is equal to itself,
which trivially holds. The existing test for a malformed proxy URI


https://github.com/zed-industries/zed/blob/9b40770e9f92a4431fe8f04cbb03b106569606c8/crates/reqwest_client/src/reqwest_client.rs#L293-L297

does not check whether invalid proxies cause an error, but rather checks
whether `http::Uri::from_static` panics on an invalid URI, [which it
does as
documented](https://docs.rs/http/latest/http/uri/struct.Uri.html#panics).
Thus, the tests currently do not really check anything proxy-related and
invalid proxies are assigned as valid proxies.

---

This PR fixes the behaviour by considering whether the proxy was
actually properly parsed and only assigning it if that is the case.
Furthermore, it improves logging in case of errors so issues like the
linked one are easier to debug (for the linked issue, the log will now
include that the proxy schema is not supported in the logs).
Lastly, it also updates the test for a malformed proxy URI. The test now
actually checks that malformed proxy URIs are not registered for the
client rather than testing the `http` crate.

The update also initially caused the [test for a `socks4a`
proxy](https://github.com/zed-industries/zed/blob/9b40770e9f92a4431fe8f04cbb03b106569606c8/crates/reqwest_client/src/reqwest_client.rs#L280C1-L282C50)
to fail. This happened because the reqwest-library introduced supports
for `socks4a` proxies in [version
0.12.13](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md#v01213).
Thus, this PR includes a bump of the reqwest library to add proper
support for socks4a proxies.

Release Notes:

- Added support for socks4a proxies.

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Finn Evers and Peter Tripp created

8a69d25 Fix a bug in `blob-store.sh` (#29537)

Click to expand commit body
This will overwrite the `acl` parameter that we pass in

Release Notes:

- N/A

张小白 created

bf30bea Honor default_mode in NormalBefore (#29518)

Click to expand commit body
Addresses
[this](https://github.com/zed-industries/zed/pull/28103#issuecomment-2832038415)
comment.

Release Notes:

- Improved default helix keybindings

jneem created

2a0be48 agent: Simplify elements of the thread design (#29533)

Click to expand commit body
Namely, this PR removes the layout shift when you click on a user
message to edit it and displays the feedback disclaimer only upon
hovering the thumbs up/down button container.

Release Notes:

- N/A

Danilo Leal created

1c4ba07 theme_selector: Don't select last theme when fuzzy searching (#28278)

Click to expand commit body
The theme selector should select the last match to when opening to keep
the current theme active but it should select the first when searching
to pick the best match.

fixes #28081


https://github.com/user-attachments/assets/b46b9742-4715-4c7a-8f17-2c19a8668333

Release Notes:

- Fixed selecting the correct theme when searching

---------

Co-authored-by: Peter Tripp <peter@zed.dev>

Hendrik Sollich and Peter Tripp created

8a717ab ollama: Fix build with default features (#29502)

Click to expand commit body
The `ollama` crate has a `use schemars::JsonSchema` statement even when
building with default features, which doesn't include the `schemars`
crate.

Release Notes:

- N/A

tidely created

f735c90 agent: Bring title editing back to text threads (#29425)

Click to expand commit body
This also fixes a little UI bug where the text thread title would push
the buttons away from the UI when there was still space.

Release Notes:

- agent: Made text thread titles editable again.

---------

Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Danilo Leal and Michael Sloan created