1674e12
Expose anthropic API errors to the client (#16129)
Click to expand commit body
Now, when an anthropic request is invalid or anthropic's API is down,
we'll expose that to the user instead of just returning a generic 500.
Release Notes:
- N/A
Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld
and
Marshall
created
f3ec8d4
collab: Use a separate Anthropic API key for Zed staff (#16128)
Click to expand commit body
This PR makes it so Zed staff can use a separate Anthropic API key for
the LLM service.
We also added an `is_staff` column to the `usages` table so that we can
exclude staff usage from the "active users" metrics that influence the
rate limits.
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Marshall Bowers
and
Max
created
ebdde59
collab: Don't issue LLM API tokens if the user has not accepted the ToS (#16123)
Click to expand commit body
This PR adds a check to the LLM API token issuance to ensure that we
only issue tokens to users that have accepted the terms of service.
Release Notes:
- N/A
Marshall Bowers
created
df70e90
docs: Add `"dock"` to `"terminal"` section (#16122)
Click to expand commit body
Documentation-related fix for #16121.
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Release Notes:
* N/A
Neil
created
63aef7f
command_palette: Remove project as a dependency in Cargo.toml (#16082)
Click to expand commit body
The *project crate* is only needed as a dev dependency in the command
palette..
So I am doing some code / dependency cleanup...
Release Notes:
- N/A
Michael Angerman
created
9ae0d53
Update Rust crate quote to v1.0.36 (#15945)
Click to expand commit body
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [quote](https://togithub.com/dtolnay/quote) | dependencies | patch |
`1.0.35` -> `1.0.36` |
---
### Release Notes
<details>
<summary>dtolnay/quote (quote)</summary>
### [`v1.0.36`](https://togithub.com/dtolnay/quote/releases/tag/1.0.36)
[Compare
Source](https://togithub.com/dtolnay/quote/compare/1.0.35...1.0.36)
- Documentation improvements
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMC4xIiwidXBkYXRlZEluVmVyIjoiMzguMjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
ebdb755
Surface upstream rate limits from Anthropic (#16118)
Click to expand commit body
This PR makes it so hitting upstream rate limits from Anthropic result
in an HTTP 429 response instead of an HTTP 500.
To do this we need to surface structured errors out of the `anthropic`
crate.
Release Notes:
- N/A
Marshall Bowers
created
fbb533b
assistant: Require user to accept TOS for cloud provider (#16111)
Click to expand commit body
This adds the requirement for users to accept the terms of service the
first time they send a message with the Cloud provider.
Once this is out and in a nightly, we need to add the check to the
server side too, to authenticate access to the models.
Demo:
https://github.com/user-attachments/assets/0edebf74-8120-4fa2-b801-bb76f04e8a17
Release Notes:
- N/A
I went with inline approach directly within the panel.
First, enable workflow debugging in the hamburger menu (this works
retroactively as well):

This enables debug buttons in the header of each step:

Enabling one pretty-prints the workflow step internals:

Release Notes:
- N/A
Piotr Osiewicz
created
b6b0815
assistant: Show tooltips on workflow step buttons only when cursor is in step (#16108)
# HTTP Client Improvements for Extension API
This PR enhances the HTTP client functionality in the Zed extension API,
providing more control over requests and allowing for streaming
responses.
## Key Changes
1. Extended `HttpRequest` struct:
- Added `method` field to specify HTTP method
- Added `headers` field for custom headers
- Added optional `body` field for request payload
2. Introduced `HttpMethod` enum for supported HTTP methods
3. Updated `HttpResponse` struct:
- Added `headers` field to access response headers
- Changed `body` type from `String` to `Vec<u8>` for binary data support
4. Added streaming support:
- New `fetch_stream` function to get a response stream
- Introduced `HttpResponseStream` resource for chunked reading
5. Updated internal implementations to support these new features
6. Modified the Gleam extension to use the new API structure
## Motivation
These changes provide extension developers with more flexibility and
control over HTTP requests. The streaming support is particularly useful
for handling large responses efficiently or ideally streaming into the
UI.
## Testing
- [x] Updated existing tests
- [ ] Added new tests for streaming functionality
## Next Steps
- Consider adding more comprehensive examples in the documentation
- Evaluate performance impact of streaming for large responses
Please review and let me know if any adjustments are needed.
Release Notes:
- N/A
---------
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Nathan Sobo
and
Marshall Bowers
created
f952126
collab: Remove LLM completions over RPC (#16114)
Click to expand commit body
This PR removes the LLM completion messages from the RPC protocol, as
these now go through the LLM service as of #16113.
Release Notes:
- N/A
- Updates provider logos for Anthropic, Google and Ollama
- Increases the size of icons in the model selector
Release Notes:
- N/A
Nate Butler
created
6389c61
Always stream completions through the LLM service (#16113)
Click to expand commit body
This PR removes the `llm-service` feature flag and makes it so all
completions are done via the LLM service when using the Zed provider.
Release Notes:
- N/A
Marshall Bowers
created
bab4da7
Fix corner radius when doing `rounded_full` (#15663)
Click to expand commit body
Release Notes:
- Fixed issue when doing `rounded_full`, it should render a pill-shape
rect instead of current eye-shape.
For example with this code
`div().h_4().w_16().bg(rgb(0xffffff)).rounded_full()`
Current:
<img width="144" alt="image"
src="https://github.com/user-attachments/assets/f8b20c7c-d91f-4c20-9f38-d435f59e72b7">
Fixed:
<img width="172" alt="image"
src="https://github.com/user-attachments/assets/ff8bbe26-2b31-4ef1-a2fb-25b458386ffb">
Son
created
a15a956
Accept finished inline transformations only if the user saves manually (#16112)
Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/16042
This commit modifies the behavior of inline transformations to only
accept finished transformations when the user manually saves the file.
Previously, transformations were automatically accepted on any save
event, including autosaves.
This was achieved by updating the `Pane` and `Workspace` structs to emit
a new `UserSavedItem` event when a manual save occurs, and modifying the
`InlineAssistant` to register and handle this new event (instead of
`editor::Saved`).
Release Notes:
- N/A
Antonio Scandurra
created
48f6193
Improve workflow step pruning and symbol similarity matching (#16036)
Click to expand commit body
This PR improves workflow step management and symbol matching. We've
optimized step pruning to remove any step that intersects an edit and
switched to normalized Levenshtein distance for more accurate symbol
matching.
Release Notes:
- N/A
Antonio Scandurra
created
355aebd
Introduce prompt override script and adjust names (#16094)
Click to expand commit body
This PR introduces a new script for iterative development of prompt
overrides in Zed.
Just `script/prompts link` and your running Zed should start using
prompts from `zed/assets/prompts`. Use `script/prompts unlink` to undo.
You can also link with `script/prompts link --worktree` to store the
prompts to a `../zed_prompts` worktree that's a sibling of your repo, in
case you don't want to mess with your working copy. Just don't forget
about it!
Key changes:
- Add new `script/prompts` for managing prompt overrides
- Rename `prompt_templates_dir` to `prompt_overrides_dir` for clarity
- Update paths to use `~/.config/zed/prompt_overrides` instead of
`~/.config/zed/prompts/templates`
- Adjust `PromptBuilder` to use the new `prompt_overrides_dir` function
These changes simplify the process of customizing prompts and provide a
more intuitive naming convention for override-related functionality.
Release Notes:
- N/A
3140d6c
collab: Temporarily bypass LLM rate limiting for staff (#16089)
Click to expand commit body
This PR makes it so staff members will be exempt from rate limiting by
the LLM service.
This is just a temporary measure until we can tweak the rate-limiting
heuristics.
Staff members are still subject to upstream LLM provider rate limits.
Release Notes:
- N/A
36a560d
Update the dangerfile to check for issue links
Joseph T Lyons
created
6f104fe
Copy `extension_api` Rust files to `OUT_DIR` when building `extension` to work around rust-analyzer limitation (#16064)
Click to expand commit body
Copies rust files from extension_api/wit to the OUT_DIR to allow
including them from within the crate, which is supported by
rust-analyzer. This allows rust-analyzer to deal with the included
files. It doesn't currently support files outside the crate.
Release Notes:
- N/A
Nathan Sobo
created
550e139
repl: Set the default lines βοΈ columns for the REPL to 32x128 (#16061)
Click to expand commit body

Release Notes:
- Improved visuals of repl stdout/stderr by reducing default line count
to 32
Kyle Kelley
created
33e120d
Capture telemetry data on per-user monthly LLM spending (#16050)
Co-authored-by: Raunak Raj <nkray21111983@gmail.com>
Co-authored-by: Thorsten Ball <mrnugget@gmail.com>
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
Co-authored-by: Joseph T Lyons <JosephTLyons@gmail.com>
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Jason <jason@zed.dev>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Jason Mancuso <7891333+jvmncs@users.noreply.github.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Peter Tripp
,
Raunak Raj
,
Thorsten Ball
,
Bennet
,
Marshall Bowers
,
Joseph T Lyons
,
Mikayla
,
Jason
,
Antonio Scandurra
,
Max Brunsfeld
,
Marshall
,
Nathan Sobo
,
Jason Mancuso
, and
Piotr Osiewicz
created
https://github.com/user-attachments/assets/fe283eec-169f-4dfd-bae2-cc72c1c3f223
Release Notes:
- Include more context when using `assistant: Quote selection` to insert
text into the assistant panel
---------
Co-authored-by: Thorsten <thorsten@zed.dev>
Bennet Bo Fenner
and
Thorsten
created
46a4dd3
Update Rust crate prometheus to v0.13.4 (#15941)
Click to expand commit body
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [prometheus](https://togithub.com/tikv/rust-prometheus) | dependencies
| patch | `0.13.3` -> `0.13.4` |
---
### Release Notes
<details>
<summary>tikv/rust-prometheus (prometheus)</summary>
###
[`v0.13.4`](https://togithub.com/tikv/rust-prometheus/blob/HEAD/CHANGELOG.md#0134)
[Compare
Source](https://togithub.com/tikv/rust-prometheus/compare/v0.13.3...v0.13.4)
- Improvement: Add PullingGauge
([#​405](https://togithub.com/tikv/rust-prometheus/issues/405))
- Improvement: Let cargo know which example requires which features
([#​511](https://togithub.com/tikv/rust-prometheus/issues/511))
- Bug fix: Prevent `clippy::ignored_unit_patterns` in macro expansions
([#​497](https://togithub.com/tikv/rust-prometheus/issues/497))
- Internal change: Add CI job for minimum toolchain (MSRV)
([#​467](https://togithub.com/tikv/rust-prometheus/issues/467))
- Internal change: Update CI to `actions/checkout@v4`
([#​499](https://togithub.com/tikv/rust-prometheus/issues/499))
- Internal change: Update dependencies
</details>
---
### Configuration
π **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
π **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMC4xIiwidXBkYXRlZEluVmVyIjoiMzguMjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate[bot]
and
renovate[bot]
created
49f760e
collab: Set `LLM_DATABASE_MAX_CONNECTIONS` (#16035)
Click to expand commit body
This PR updates the collab template to set the
`LLM_DATABASE_MAX_CONNECTIONS` environment variable for the LLM service.
Release Notes:
- N/A
Marshall Bowers
created
225726b
Remove code paths that skip LLM db in prod (#16008)
Click to expand commit body
Release Notes:
- N/A
Max Brunsfeld
created
c1872e9
vim: Fix ctrl-u/ctrl-d with high `vertical_scroll_margin` (#16031)
Click to expand commit body
This makes sure that the `vertical_scroll_margin` doesn't leave the
cursor out of screen or somewhere it shouldn't go when it's higher than
the visible lines on screen.
So we cap it to `visible_line_count / 2`, similar to nvim:
https://github.com/neovim/neovim/blob/5aa1a9532cbac835ad027ebdf04311c7e8fb7007/src/nvim/window.c#L6560
Fixes #15101
Release Notes:
- Fixed `ctrl-u`/`ctrl-d` in Vim mode not working correctly when
`vertical_scroll_margin` is set to a really high value.
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
09c9ed4
vim: Fix panic due to overflow when scrolling (#16029)
Click to expand commit body
When setting `"vertical_scroll_margin": 99` or other high values this
can lead to a panic that crashes Zed.
Release Notes:
- vim: Fixed a possible panic that could happen when using a very high
value for `vertical_scroll_margin` that exceeded the number of visible
lines on the screen.
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
and
Bennet
created
19d8422
stories: Get OverflowScrollStory to scroll again (#15982)
Click to expand commit body
This makes it at least scroll again, but it doesn't scroll down to the
last element yet. We haven't figured out why yet.
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball
,
Bennet
, and
Antonio
created
173f6e7
assistant panel: Make configuration view scrollable (#16022)
Click to expand commit body
We had to resort to this "hack" to get it to work, since nothing else we
tried (changing the `Pane`, changing the `ConfigurationView`, changing
the `AssistantPanel`, ...) worked.
Release Notes:
- N/A
Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Bennet <bennet@zed.dev>
Thorsten Ball
,
Antonio
, and
Bennet
created
e783142
Fix `vertical_scroll_margin` not being capped for large `vertical_scroll_margin` values (#15473)
Click to expand commit body
When switching to function definitions in a new buffer the
`AutoscrollStrategy::Focused` being emitted to scroll to the found
location.
If a large value `vertical_scroll_margin` (e.g.: 99) is set, this leads
to an incorrectly calculated position and the new buffer opens in the
wrong place.
In `autoscroll_vertically()` there is a margin calculated to cap the
value of `vertical_scroll_margin` for certain AutoscrollStrategies. This
margin is being used in `AutoscrollStrategy::Fit` and
`AutoscrollStrategy::Newest` but was probably forgotten for
`AutoscrollStrategy::Focused`.
- Might fix [#15101](https://github.com/zed-industries/zed/issues/15101)
Release Notes:
- N/A
Massimo Mund
created
06833d7
Support MSbuild row-column format in PathWithPosition (#15589)
Click to expand commit body
This implements #15412. Row-column parsing is changed into a regex to
support more complex patterns like the MSBuild diagnostics. Terminal
`word_regex` is also relaxed to match those suffixes.
Release Notes:
- N/A
Santeri SalmijΓ€rvi
created
7a60041
Add injections for tagged template literals (#15984)
Click to expand commit body
This PR adds syntax highlighting support for `css`, `html`, `js`,
`json`, `sql`, `ts`, `yaml` and `yml` in `javascript`, `typescript` and
`tsx` languages where the contents of tagged template literals are now
highlighted.
This does not actually enable language features (like LSP support), it
only does syntax highlighting.
Before this change:
<img width="561" alt="image"
src="https://github.com/user-attachments/assets/74bace1b-5ce1-4b17-8a97-035bba152d9c">
After this change:
<img width="607" alt="image"
src="https://github.com/user-attachments/assets/f227145b-3f4a-4c27-b14f-7143bb19b4cf">
/cc @mrnugget
Release Notes:
- Added syntax highlighting for tagged template literals in
`javascript`, `typescript` and `tsx` languages for `css`, `html`, `js`,
`json`, `sql`, `ts`, `yaml` and `yml`.
([#15984](https://github.com/zed-industries/zed/issues/15984))
Max Brunsfeld
,
Marshall
, and
Marshall Bowers
created
2bc5037
assistant: Show an error when `/fetch` returns no content (#16001)
Click to expand commit body
This PR makes it so the `/fetch` slash command will display an error
when the URL does not have any textual content:
<img width="308" alt="Screenshot 2024-08-08 at 4 51 55β―PM"
src="https://github.com/user-attachments/assets/bf4cbc18-c65b-48a2-aedd-26b50f47f018">
Release Notes:
- N/A