0bc9fc9
assistant: Slash command tweaks (#16140)
Click to expand commit body
Release Notes: - N/A
Piotr Osiewicz created
0bc9fc9
assistant: Slash command tweaks (#16140)
Release Notes: - N/A
Piotr Osiewicz created
dbcd066
Track lifetime spending for each user and model (#16137)
Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
68ae347
chore: Remove a bunch of unused structs (#16139)
Found by beta clippy. Release Notes: - N/A
Piotr Osiewicz created
f956257
haskell: Pass environment to `hls` (#15998)
Fixed environment not being passed to hls, breaking local nix-based installations Release Notes: - N/A
Stanislav Alekseev created
8a148f3
Add feature-flagged access to LLM service (#16136)
This PR adds feature-flagged access to the LLM service. We've repurposed the `language-models` feature flag to be used for providing access to Claude 3.5 Sonnet through the Zed provider. The remaining RPC endpoints that were previously behind the `language-models` feature flag are now behind a staff check. We also put some Zed Pro related messaging behind a feature flag. Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Marshall Bowers and Max created
3bebb8b
Allow to cycle through center/top/bot scroll positions (#16134)
On top of `editor::ScrollCursorCenter`, `editor::ScrollCursorTop`, `editor::ScrollCursorBottom` actions, adds an `editor::ScrollCursorCenterTopBottom` one, that allows using a single keybinding to scroll between positions on the screen. The implementation matches a corresponding Emacs feature: there's a timeout (1s) that is kept after every switch, to allow continuously changing the positions, center (initial) -> top -> bottom Scrolling behavior is the same as the existing actions (e.g. editor will ignore scroll to bottom, if there's not enough space above). After 1s, next position is reset to the initial, center, one. Release Notes: - Added an `editor::ScrollCursorCenterTopBottom` action for toggling scroll position with a single keybinding --------- Co-authored-by: Alex Kladov <aleksey.kladov@gmail.com>
Kirill Bulatov and Alex Kladov created
98516b5
collab: Restrict usage of the LLM service to accounts older than 30 days (#16133)
This PR restricts usage of the LLM service to accounts older than 30 days. We now store the GitHub user's `created_at` timestamp to check the GitHub account age. If this is not setโwhich it won't be for existing usersโthen we use the `created_at` timestamp in the Zed database. Release Notes: - N/A --------- Co-authored-by: Max <max@zed.dev>
Marshall Bowers and Max created
f398ecc
Allow inserting text into the editor via the action (#16131)
Improves workflows, based on the keymaps that group actions behind a certain symbol. E.g. ```json5 ", o k": "zed::OpenKeymap", ", o K": "zed::OpenDefaultKeymap", // other `,`-based keymaps ``` Now, it's possible to do ```json ", ,": ["editor::HandleInput", ","] ``` and type `,` without waiting for the timeout due to `,`-based bindings. Release Notes: - Add an `editor::HandleInput` action to ease typing symbols that are part of keymaps. E.g. if `, o k` keybinding is bound, `", ,": ["editor::HandleInput", ","]` would allow to type `,` without timeouts. --------- Co-authored-by: Alex Kladov <aleksey.kladov@gmail.com>
Kirill Bulatov and Alex Kladov created
a3c7921
Report telemetry events for rate limit errors (#16130)
clickhouse telemetry schema:
```
CREATE TABLE default.llm_rate_limit_events
(
`time` DateTime64(3),
`user_id` Int32,
`is_staff` Bool,
`plan` LowCardinality(String),
`model` String,
`provider` LowCardinality(String),
`usage_measure` LowCardinality(String),
`requests_this_minute` UInt64,
`tokens_this_minute` UInt64,
`tokens_this_day` UInt64,
`max_requests_per_minute` UInt64,
`max_tokens_per_minute` UInt64,
`max_tokens_per_day` UInt64,
`users_in_recent_minutes` UInt64,
`users_in_recent_days` UInt64
)
ORDER BY tuple()
```
Release Notes:
- N/A
Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
1674e12
Expose anthropic API errors to the client (#16129)
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)
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)
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)
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)
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)
[](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)
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)
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
Thorsten Ball created
98f314b
assistant: Add debug inspector (#16105)
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)
Release Notes: - N/A
Piotr Osiewicz created
fc64843
Enhance HTTP API for extensions (#16067)
# 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)
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
Marshall Bowers created
f992cfd
Update provider logos (#16115)
- 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)
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)
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)
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)
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)
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
Nathan Sobo created
10937c6
Fetch staff members from GitHub org
Joseph T Lyons created
4818e0b
Don't thank staff members in release notes
Joseph T Lyons created
2490b05
Fix warning message
Joseph T Lyons created
e99113e
Fix warning message
Joseph T Lyons created
3140d6c
collab: Temporarily bypass LLM rate limiting for staff (#16089)
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
Marshall Bowers created
492f6b9
Update issue-detection RegEx
Joseph T Lyons created
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)
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)
 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)
Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
8688b2a
Add telemetry for LLM usage (#16049)
Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
423c7b9
Larger rate limit integers (#16047)
Tokens per day may exceed the range of Postgres's 32-bit `integer` data type. Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
0932818
zed_extension_api: Release v0.0.7 (#16048)
This PR releases v0.0.7 of the Zed extension API. Support for this version of the extension API will land in Zed v0.149.0. Release Notes: - N/A
Marshall Bowers created
fbebb73
Use LLM service for tool call requests (#16046)
Release Notes: - N/A --------- Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
d96afde
Avoid `insert ... on conflict` on startup (#16045)
These queries advance the id sequence even when there's nothing to insert Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
b1c69c2
Fix usage recording in llm service (#16044)
Release Notes: - N/A Co-authored-by: Marshall <marshall@zed.dev>
Max Brunsfeld and Marshall created
eb3c4b0
Docs Party 2024 (#15876)
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
c633fa5
assistant: Improve quote selection (#16038)
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)
[](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)
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)
Release Notes: - N/A
Max Brunsfeld created
c1872e9
vim: Fix ctrl-u/ctrl-d with high `vertical_scroll_margin` (#16031)
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)
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