7595953
Bump to 0.198.4 for @maxdeviant
Zed Bot created
7595953
Bump to 0.198.4 for @maxdeviant
Zed Bot created
7e30d22
Fix Clippy warning
Marshall Bowers created
43e40fc
language_model: Refresh the LLM token upon receiving a `UserUpdated` message from Cloud (#35839)
This PR makes it so we refresh the LLM token upon receiving a `UserUpdated` message from Cloud over the WebSocket connection. Release Notes: - N/A
Marshall Bowers created
885355c
collab_ui: Show signed-out state when not connected to Collab (#35832)
This PR updates signed-out state of the Collab panel to show when not connected to Collab, as opposed to just when the user is signed-out. Release Notes: - N/A
Marshall Bowers created
cbf5dd1
client: Only connect to Collab automatically for Zed staff (#35827)
This PR makes it so that only Zed staff connect to Collab automatically. Anyone else can connect to Collab manually when they want to collaborate (but this is not required for using Zed's LLM features). Release Notes: - N/A --------- Co-authored-by: Richard <richard@zed.dev>
Marshall Bowers and Richard created
4529fca
client: Re-fetch the authenticated user when receiving a `UserUpdated` message from Cloud (#35807)
This PR wires up handling for the new `UserUpdated` message coming from Cloud over the WebSocket connection. When we receive this message we will refresh the authenticated user. Release Notes: - N/A Co-authored-by: Richard <richard@zed.dev>
Marshall Bowers and Richard created
c105699
Establish WebSocket connection to Cloud (#35734)
This PR adds a new WebSocket connection to Cloud. This connection will be used to push down notifications from the server to the client. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Richard Feldman and Marshall Bowers created
6ac4a57
cloud_api_types: Add types for WebSocket protocol (#35753)
This PR adds types for the Cloud WebSocket protocol to the `cloud_api_types` crate. Release Notes: - N/A
Marshall Bowers created
53a3270
Fetch models right after signing in (#35711)
This uses the `current_user` watch in the `UserStore` instead of looping every 100ms in order to detect if the user had signed in. We are changing this because we noticed it was causing the deterministic executor in tests to never detect a "parking with nothing left to run" situation. This seems better in production as well, especially for users who never sign in. /cc @maxdeviant Release Notes: - N/A Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
Antonio Scandurra and Ben Brandt created
0dad4b7
Ensure client reconnects if an error occurs during authentication (#35629)
In #35471, we added a new `AuthenticationError` variant to the client enum `Status`, but the reconnection logic was ignoring it when determining whether to reconnect. This pull request fixes that regression and introduces test coverage for this case. Release Notes: - N/A
Antonio Scandurra created
ec8b5e2
Don't trigger authentication flow unless credentials expired (#35570)
This fixes a regression introduced in https://github.com/zed-industries/zed/pull/35471, where we treated stored credentials as invalid when failing to retrieve the authenticated user for any reason. This had the side effect of triggering the auth flow even when e.g. the client/server had temporary networking issues. This pull request changes the logic to only trigger authentication when getting a 401 from the server. Release Notes: - N/A
Antonio Scandurra created
11b91c0
Format
Marshall Bowers created
3dc1c88
Start separating authentication from connection to collab (#35471)
This pull request should be idempotent, but lays the groundwork for avoiding to connect to collab in order to interact with AI features provided by Zed. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com> Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Antonio Scandurra , Marshall Bowers , and Richard Feldman created
604fd98
inline_completion_button: Replace `UserStore` with `CloudUserStore` (#35456)
This PR replaces usages of the `UserStore` in the inline completion button with the `CloudUserStore`. Release Notes: - N/A
Marshall Bowers created
8484dca
client: Remove unused `subscription_period` from `UserStore` (#35454)
This PR removes the `subscription_period` field from the `UserStore`, as its usage has been replaced by the `CloudUserStore`. Release Notes: - N/A
Marshall Bowers created
ef4484e
cloud_api_client: Add `accept_terms_of_service` method (#35452)
This PR adds an `accept_terms_of_service` method to the `CloudApiClient`. Release Notes: - N/A
Marshall Bowers created
d512ef1
ai_onboarding: Read the plan from the `CloudUserStore` (#35451)
This PR updates the AI onboarding to read the plan from the `CloudUserStore` so that we don't need to connect to Collab. Release Notes: - N/A
Marshall Bowers created
5a70f21
Update Agent panel to work with `CloudUserStore` (#35436)
This PR updates the Agent panel to work with the `CloudUserStore` instead of the `UserStore`, reducing its reliance on being connected to Collab to function. Release Notes: - N/A --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Marshall Bowers and Richard Feldman created
6e0999f
Rework authentication for local Cloud/Collab development (#35450)
This PR reworks authentication for developing Zed against a local version of Cloud and/or Collab. You will still connect the same way—using the `zed-local` script—but will need to be running an instance of Cloud locally. Release Notes: - N/A
Marshall Bowers created
7fdbfc9
Acquire LLM token from Cloud instead of Collab for Edit Predictions (#35431)
This PR updates the Zed Edit Prediction provider to acquire the LLM token from Cloud instead of Collab to allow using Edit Predictions even when disconnected from or unable to connect to the Collab server. Release Notes: - N/A --------- Co-authored-by: Richard Feldman <oss@rtfeldman.com>
Marshall Bowers and Richard Feldman created
cdeddaa
cloud_api_client: Add `create_llm_token` method (#35428)
This PR adds a `create_llm_token` method to the `CloudApiClient`. Release Notes: - N/A
Marshall Bowers created
2e3c30e
cloud_api_types: Add types for `POST /client/llm_tokens` endpoint (#35420)
This PR adds some types for the new `POST /client/llm_tokens` endpoint. Release Notes: - N/A Co-authored-by: Richard <richard@zed.dev>
Marshall Bowers and Richard created
2b8e8f0
title_bar: Show the plan from the `CloudUserStore` (#35401)
This PR updates the user menu in the title bar to show the plan from the `CloudUserStore` instead of the `UserStore`. We're still leveraging the RPC connection to listen for `UpdateUserPlan` messages so that we can get live-updates from the server, but we are merely using this as a signal to re-fetch the information from Cloud. Release Notes: - N/A
Marshall Bowers created
4d229f8
cloud_api_types: Add more data to the `GetAuthenticatedUserResponse` (#35384)
This PR adds more data to the `GetAuthenticatedUserResponse`. We now return more information about the authenticated user, as well as their plan information. Release Notes: - N/A
Marshall Bowers created
3d8a3a4
client: Don't fetch the authenticated user once we have them (#35385)
This PR makes it so we don't keep fetching the authenticated user once we have them. Release Notes: - N/A
Marshall Bowers created
2aac7b2
Use the user from the `CloudUserStore` to drive the user menu (#35375)
This PR updates the user menu in the title bar to base the "signed in" state on the user in the `CloudUserStore` rather than the `UserStore`. This makes it possible to be signed-in—at least, as far as the user menu is concerned—even when disconnected from Collab. Release Notes: - N/A
Marshall Bowers created
0369349
client: Add `CloudUserStore` (#35370)
This PR adds a new `CloudUserStore` for storing information about the user retrieved from Cloud instead of Collab. Release Notes: - N/A
Marshall Bowers created
35ea2ac
Add `cloud_api_client` and `cloud_api_types` crates (#35357)
This PR adds two new crates for interacting with Cloud: - `cloud_api_client` - The client that will be used to talk to Cloud. - `cloud_api_types` - The types for the Cloud API that are shared between Zed and Cloud. Release Notes: - N/A
Marshall Bowers created
f14a814
lsp: Correctly serialize errors for LSP requests + improve handling of unrecognized methods (#35738)
We used to not respond at all to requests that we didn't have a handler for, which is yuck. It may have left the language server waiting for the response for no good reason. The other (worse) finding is that we did not have a full definition of an Error type for LSP, which made it so that a spec-compliant language server would fail to deserialize our response (with an error). This then could lead to all sorts of funkiness, including hangs and crashes on the language server's part. Co-authored-by: Lukas <lukas@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me> Closes #ISSUE Release Notes: - Improved reporting of errors to language servers, which should improve the stability of LSPs ran by Zed. --------- Co-authored-by: Lukas <lukas@zed.dev> Co-authored-by: Remco Smits <djsmits12@gmail.com> Co-authored-by: Anthony Eid <hello@anthonyeid.me>
Piotr Osiewicz , Lukas , Remco Smits , and Anthony Eid created
52a60e5
ci: Switch to Namespace (#35835)
Follow-up to: - https://github.com/zed-industries/zed/pull/35826 Release Notes: - N/A
Peter Tripp created
8b25b81
ci: Switch from BuildJet to GitHub runners (#35826)
In response to an ongoing BuildJet outage, consider migrating CI to GitHub hosted runners. Also includes revert of (causing flaky tests): - https://github.com/zed-industries/zed/pull/35741 Downsides: - Cost (2x) - Force migration to Ubuntu 22.04 from 20.04 will bump our glibc minimum from 2.31 to 2.35. Which would break RHEL 9.x (glibc 2.34), Ubuntu 20.04 (EOL) and derivatives. Release Notes: - N/A
Peter Tripp created
09845c0
zed 0.198.3
Joseph T. Lyons created
a6b9668
Use gpt-4o tokenizer for gpt-5 for now
Richard Feldman created
d5b6a4d
Update GPT-5 input/output token counts
Richard Feldman created
bf6f715
Add GPT-5 support through OpenAI API
Richard Feldman created
1934e5c
v0.198.x stable
Joseph T. Lyons created
295da07
Respect paths' content masks when copying them from MSAA texture to drawable (#35688)
Fixes a regression introduced in https://github.com/zed-industries/zed/pull/34992 Paths are rendered first to an intermediate MSAA texture, and then copied to the final drawable. Because paths can have transparency, it's important that pixels are not copied repeatedly if paths have overlapping bounding boxes. When N paths have the same draw order, we infer that they must have disjoint bounding boxes, so that we can copy them each individually (as opposed to copying a single rect that contains them all). Previously, the bounding box that we were using to copy paths was not accounting for the path's content mask (but it is accounted for in the bounds tree that determines their draw order). This cause bugs like this, where certain path pixels spuriously had their opacity doubled: https://github.com/user-attachments/assets/d792e60c-790b-49ad-b435-6695daba430f This PR fixes that bug. * [x] mac * [x] linux * [x] windows Release Notes: - Fixed a bug where a selection's opacity was computed incorrectly when it overlapped with another editor's selections in a certain way.
Max Brunsfeld created
85261bb
assistant_tool: Fix rejecting edits deletes newly created and accepted files (#35622)
Closes #34108 Closes #33234 This PR fixes a bug where a file remained in a Created state after accept, causing following reject actions to incorrectly delete the file instead of reverting back to previous state. Now it changes it to Modified state upon "Accept All" and "Accept Hunk" (when all edits are accepted). - [x] Tests Release Notes: - Fixed issue where rejecting AI edits on newly created files would delete the file instead of reverting to previous accepted state.
Smit Barmase created
8c159d0
zed 0.198.2
Joseph T. Lyons created
25f3f88
Add Claude Opus 4.1 (#35653)
<img width="348" height="427" alt="Screenshot 2025-08-05 at 1 55 35 PM" src="https://github.com/user-attachments/assets/52af17a5-0095-4ad9-9afe-ff27aab90e03" /> Release Notes: - Added support for Claude Opus 4.1 Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Richard Feldman and Marshall Bowers created
0c24950
ci: Double Buildjet ARM runner size (24GB to 48GB ram) (#35654)
Release Notes: - N/A
Peter Tripp created
900fe32
Fix escape in terminal with JetBrains keymap (#35585)
Closes https://github.com/zed-industries/zed/issues/35429 Closes https://github.com/zed-industries/zed/issues/35091 Follow-up to: https://github.com/zed-industries/zed/pull/35230 Release Notes: - Fix `escape` in Terminal broken in JetBrains compatability keymaps
Peter Tripp created
863e39b
Cherry-pick #35513 onto v0.198.x (#35591)
Release Notes: - N/A
Michael Sloan created
7d58eb2
zed 0.198.1
Joseph T. Lyons created
87c9f6a
debugger: Send initialized event from fake server at a more realistic time (cherry-pick #35446) (#35447)
Cherry-picked debugger: Send initialized event from fake server at a more realistic time (#35446) The spec says: > :arrow_left: Initialized Event > This event indicates that the debug adapter is ready to accept configuration requests (e.g. setBreakpoints, setExceptionBreakpoints). > > A debug adapter is expected to send this event when it is ready to accept configuration requests (but not before the initialize request has finished). Previously in tests, `intercept_debug_sessions` was just spawning off a background task to send the event after setting up the client, so the event wasn't actually synchronized with the flow of messages in the way the spec says it should be. This PR makes it so that the `FakeTransport` injects the event right after a successful response to the initialize request, and doesn't send it otherwise. Release Notes: - N/A Co-authored-by: Cole Miller <cole@zed.dev>
gcp-cherry-pick-bot[bot] and Cole Miller created
059a409
Fix panic with completion ranges and autoclose regions interop (cherry-pick #35408) (#35414)
Cherry-picked Fix panic with completion ranges and autoclose regions
interop (#35408)
As reported [in
Discord](https://discord.com/channels/869392257814519848/1106226198494859355/1398470747227426948)
C projects with `"` as "brackets" that autoclose, may invoke panics when
edited at the end of the file.
With a single selection-caret (`ˇ`), at the end of the file,
```c
ifndef BAR_H
#define BAR_H
#include <stdbool.h>
int fn_branch(bool do_branch1, bool do_branch2);
#endif // BAR_H
#include"ˇ"
```
gets an LSP response from clangd
```jsonc
{
"filterText": "AGL/",
"insertText": "AGL/",
"insertTextFormat": 1,
"kind": 17,
"label": " AGL/",
"labelDetails": {},
"score": 0.78725427389144897,
"sortText": "40b67681AGL/",
"textEdit": {
"newText": "AGL/",
"range": { "end": { "character": 11, "line": 8 }, "start": { "character": 10, "line": 8 } }
}
}
```
which replaces `"` after the caret (character/column 11, 0-indexed).
This is reasonable, as regular follow-up (proposed in further
completions), is a suffix + a closing `"`:
<img width="842" height="259" alt="image"
src="https://github.com/user-attachments/assets/ea56f621-7008-4ce2-99ba-87344ddf33d2"
/>
Yet when Zed handles user input of `"`, it panics due to multiple
reasons:
* after applying any snippet text edit, Zed did a selection change:
https://github.com/zed-industries/zed/blob/55379876301bd4dcfe054a146b66288d2e60a523/crates/editor/src/editor.rs#L9539-L9545
which caused eventual autoclose region invalidation:
https://github.com/zed-industries/zed/blob/55379876301bd4dcfe054a146b66288d2e60a523/crates/editor/src/editor.rs#L2970
This covers all cases that insert the `include""` text.
* after applying any user input and "plain" text edit, Zed did not
invalidate any autoclose regions at all, relying on the "bracket" (which
includes `"`) autoclose logic to rule edge cases out
* bracket autoclose logic detects previous `"` and considers the new
user input as a valid closure, hence no autoclose region needed.
But there is an autoclose bracket data after the plaintext completion
insertion (`AGL/`) really, and it's not invalidated after `"` handling
* in addition to that, `Anchor::is_valid` method in `text` panicked, and
required `fn try_fragment_id_for_anchor` to handle "pointing at odd,
after the end of the file, offset" cases as `false`
A test reproducing the feedback and 2 fixes added: proper, autoclose
region invalidation call which required the invalidation logic tweaked a
bit, and "superficial", "do not apply bad selections that cause panics"
fix in the editor to be more robust
Release Notes:
- Fixed panic with completion ranges and autoclose regions interop
---------
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
gcp-cherry-pick-bot[bot] , Kirill Bulatov , and Max Brunsfeld created
5c45069
jetbrains: Unmap cmd-k in Jetbrains keymap (#35443)
This only works after a delay in most situations because of the all chorded `cmd-k` mappings in the so disable them for now. Reported by @jer-k: https://x.com/J_Kreutzbender/status/1951033355434336606 Release Notes: - Undo mapping of `cmd-k` for Git Panel in default Jetbrains keymap (thanks [@jer-k](https://github.com/jer-k))
Peter Tripp created
910507d
linux: Fix caps lock not working consistently for certain X11 systems (cherry-pick #35361) (#35365)
Cherry-picked linux: Fix caps lock not working consistently for certain X11 systems (#35361) Closes #35316 Bug in https://github.com/zed-industries/zed/pull/34514 Turns out you are not supposed to call `update_key` for modifiers on `KeyPress`/`KeyRelease`, as modifiers are already updated in `XkbStateNotify` events. Not sure why this only causes issues on a few systems and works on others. Tested on Ubuntu 24.04.2 LTS (initial bug) and Kubuntu 25.04 (worked fine before too). Release Notes: - Fixed an issue where caps lock stopped working consistently on some Linux X11 systems. Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
gcp-cherry-pick-bot[bot] and Smit Barmase created
3d48f14
v0.198.x preview
Joseph T. Lyons created
45af1fc
Always double reconnection delay and add jitter (#35337)
Previously, we would pick an exponent between 0.5 and 2.5, which would cause a lot of clients to try reconnecting in rapid succession, overwhelming the server as a result. This pull request always doubles the previous delay and introduces a jitter that can, at most, double it. As part of this, we're also increasing the maximum reconnection delay from 10s to 30s: this gives us more space to spread out the reconnection requests. Release Notes: - N/A --------- Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Antonio Scandurra and Marshall Bowers created