Skip to content

edit_prediction: Skip cloud Zeta requests when not signed in#57615

Merged
osyvokon merged 5 commits into
zed-industries:mainfrom
seth-wood:prediction-error
May 29, 2026
Merged

edit_prediction: Skip cloud Zeta requests when not signed in#57615
osyvokon merged 5 commits into
zed-industries:mainfrom
seth-wood:prediction-error

Conversation

@seth-wood

@seth-wood seth-wood commented May 25, 2026

Copy link
Copy Markdown
Contributor

Self-Review Checklist:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content is consistent with the UI/UX checklist
  • Tests cover the new/changed behavior
  • Performance impact has been considered and is acceptable

Closes #57962

What

When a user is not signed in to their Zed account, the edit prediction system was still attempting a cloud API request on every keystroke. The request would fail deep in the credential check (CloudApiClient::build_request) with a ClientApiError::NotSignedIn error, which propagated back up and was logged at ERROR level via .log_err() at line 2389 of edit_prediction.rs.

Why

The sign-in check was happening too late — only discovered after async tasks were already spawned and the full request pipeline entered. This fix gates the request at the top of request_prediction_internal, returning Task::ready(Ok(None)) immediately before any inputs are built or tasks spawned.

The guard mirrors the existing is_cloud provider check already used elsewhere in the same file, and only applies to the Zeta model on the cloud provider path. Local providers (Ollama, OpenAiCompatibleApi) and other models (Mercury, Fim) are unaffected.

Note: I haven't added a test for this — testing the early-return would require mocking auth state, which I wasn't sure was worth the complexity for a one-liner guard. Happy to add one if preferred.

Release Notes:

  • Fixed noisy not signed in error log on every keystroke when not signed in to Zed

When the user is not signed in, the edit prediction system was attempting
a cloud API request on every keystroke, failing deep in the credential
check with a noisy ERROR log. Return early before building inputs or
spawning any tasks.
@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label May 25, 2026
@zed-community-bot zed-community-bot Bot added the first contribution the author's first pull request to Zed. NOTE: the label application is automated via github actions label May 25, 2026
@seth-wood seth-wood marked this pull request as ready for review May 25, 2026 02:50
@smitbarmase smitbarmase added the area:ai/edit prediction Umbrella label for Copilot, Supermaven, etc. inline completions (non-Zeta-specific) label May 25, 2026
The previous guard used current_user() which is None in tests even when
credentials are set directly on the cloud client. has_credentials() is
the accurate check for whether a cloud request can proceed.

@osyvokon osyvokon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@osyvokon osyvokon enabled auto-merge May 26, 2026 10:47
Co-authored-by: David3u <3udavid@gmail.com>
@MrSubidubi

Copy link
Copy Markdown
Member

/cherry-pick stable
/cherry-pick preview

@osyvokon osyvokon added this pull request to the merge queue May 29, 2026
Merged via the queue into zed-industries:main with commit 46845bf May 29, 2026
33 checks passed
zed-zippy Bot added a commit that referenced this pull request May 29, 2026
… (cherry-pick to stable) (#58044)

Cherry-pick of #57615 to stable

----
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #57962

## What

When a user is not signed in to their Zed account, the edit prediction
system was still attempting a cloud API request on every keystroke. The
request would fail deep in the credential check
(`CloudApiClient::build_request`) with a `ClientApiError::NotSignedIn`
error, which propagated back up and was logged at `ERROR` level via
`.log_err()` at line 2389 of `edit_prediction.rs`.

## Why

The sign-in check was happening too late — only discovered after async
tasks were already spawned and the full request pipeline entered. This
fix gates the request at the top of `request_prediction_internal`,
returning `Task::ready(Ok(None))` immediately before any inputs are
built or tasks spawned.

The guard mirrors the existing `is_cloud` provider check already used
elsewhere in the same file, and only applies to the `Zeta` model on the
cloud provider path. Local providers (Ollama, `OpenAiCompatibleApi`) and
other models (Mercury, Fim) are unaffected.

Note: I haven't added a test for this — testing the early-return would
require mocking auth state, which I wasn't sure was worth the complexity
for a one-liner guard. Happy to add one if preferred.

Release Notes:

- Fixed noisy `not signed in` error log on every keystroke when not
signed in to Zed

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: MrSubidubi <finn@zed.dev>
Co-authored-by: David3u <3udavid@gmail.com>

Co-authored-by: Seth Wood <sethlwood@me.com>
Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: MrSubidubi <finn@zed.dev>
Co-authored-by: David3u <3udavid@gmail.com>
zed-zippy Bot added a commit that referenced this pull request May 29, 2026
… (cherry-pick to preview) (#58045)

Cherry-pick of #57615 to preview

----
Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #57962

## What

When a user is not signed in to their Zed account, the edit prediction
system was still attempting a cloud API request on every keystroke. The
request would fail deep in the credential check
(`CloudApiClient::build_request`) with a `ClientApiError::NotSignedIn`
error, which propagated back up and was logged at `ERROR` level via
`.log_err()` at line 2389 of `edit_prediction.rs`.

## Why

The sign-in check was happening too late — only discovered after async
tasks were already spawned and the full request pipeline entered. This
fix gates the request at the top of `request_prediction_internal`,
returning `Task::ready(Ok(None))` immediately before any inputs are
built or tasks spawned.

The guard mirrors the existing `is_cloud` provider check already used
elsewhere in the same file, and only applies to the `Zeta` model on the
cloud provider path. Local providers (Ollama, `OpenAiCompatibleApi`) and
other models (Mercury, Fim) are unaffected.

Note: I haven't added a test for this — testing the early-return would
require mocking auth state, which I wasn't sure was worth the complexity
for a one-liner guard. Happy to add one if preferred.

Release Notes:

- Fixed noisy `not signed in` error log on every keystroke when not
signed in to Zed

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: MrSubidubi <finn@zed.dev>
Co-authored-by: David3u <3udavid@gmail.com>

Co-authored-by: Seth Wood <sethlwood@me.com>
Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: MrSubidubi <finn@zed.dev>
Co-authored-by: David3u <3udavid@gmail.com>
@seth-wood seth-wood deleted the prediction-error branch May 30, 2026 03:39
TomPlanche pushed a commit to TomPlanche/zed that referenced this pull request Jun 2, 2026
…ustries#57615)

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes zed-industries#57962

## What

When a user is not signed in to their Zed account, the edit prediction
system was still attempting a cloud API request on every keystroke. The
request would fail deep in the credential check
(`CloudApiClient::build_request`) with a `ClientApiError::NotSignedIn`
error, which propagated back up and was logged at `ERROR` level via
`.log_err()` at line 2389 of `edit_prediction.rs`.

## Why

The sign-in check was happening too late — only discovered after async
tasks were already spawned and the full request pipeline entered. This
fix gates the request at the top of `request_prediction_internal`,
returning `Task::ready(Ok(None))` immediately before any inputs are
built or tasks spawned.

The guard mirrors the existing `is_cloud` provider check already used
elsewhere in the same file, and only applies to the `Zeta` model on the
cloud provider path. Local providers (Ollama, `OpenAiCompatibleApi`) and
other models (Mercury, Fim) are unaffected.

Note: I haven't added a test for this — testing the early-return would
require mocking auth state, which I wasn't sure was worth the complexity
for a one-liner guard. Happy to add one if preferred.

Release Notes:

- Fixed noisy `not signed in` error log on every keystroke when not
signed in to Zed

---------

Co-authored-by: Oleksiy Syvokon <oleksiy@zed.dev>
Co-authored-by: MrSubidubi <finn@zed.dev>
Co-authored-by: David3u <3udavid@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ai/edit prediction Umbrella label for Copilot, Supermaven, etc. inline completions (non-Zeta-specific) cla-signed The user has signed the Contributor License Agreement first contribution the author's first pull request to Zed. NOTE: the label application is automated via github actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

edit_prediction leaks memory on every failed attempt when not signed in (12 GB MALLOC_SMALL after 30 h, macOS arm64, Zed 1.4.2)

5 participants