Skip to content

feat(ui): improve provider update feedback - #1258

Merged
skevetter merged 3 commits into
mainfrom
feat/provider-update-feedback
Sep 22, 2026
Merged

skevetter merged 3 commits into
mainfrom
feat/provider-update-feedback

Conversation

@skevetter

Copy link
Copy Markdown
Contributor

Summary

  • render cached provider update state immediately, then refresh in the background
  • show last-checked state, manual Check now, and visible stale/error feedback
  • stream provider update phases and logs into the provider sheet
  • keep failures in place with structured details, expandable logs, and Retry
  • explain that an update re-initializes the provider

Scope

Desktop provider update UX only. No CLI changes, page redesign, changelogs, update-all, auto-update, or provider-add changes.

Validation

  • npm run check
  • npm test (46 files, 423 tests)
  • npm run electron:build
  • changed-file pre-commit hooks
  • every changed branch file byte-verified against the tested local source

Draft for independent self-review. Do not trigger Greptile or CodeRabbit yet.

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 14 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 7bb46108-c704-4ddf-9382-7cef37d49665

📥 Commits

Reviewing files that changed from the base of the PR and between f8f50c3 and d6c2744.

📒 Files selected for processing (13)
  • desktop/src/main/__tests__/ipc-provider-jobs.test.ts
  • desktop/src/main/__tests__/provider-jobs.test.ts
  • desktop/src/main/ipc.ts
  • desktop/src/main/provider-jobs.ts
  • desktop/src/renderer/src/lib/components/provider/ProviderSheet.svelte
  • desktop/src/renderer/src/lib/components/provider/ProviderSheet.test.ts
  • desktop/src/renderer/src/lib/components/provider/UpdateConfirmDialog.svelte
  • desktop/src/renderer/src/lib/ipc/commands.ts
  • desktop/src/renderer/src/lib/ipc/mock.ts
  • desktop/src/renderer/src/lib/stores/providerVersions.test.ts
  • desktop/src/renderer/src/lib/stores/providerVersions.ts
  • desktop/src/renderer/src/lib/types/index.ts
  • desktop/src/renderer/src/pages/ProvidersPage.svelte

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Sep 21, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev canceled.

Name Link
🔨 Latest commit d6c2744
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6ab1c25eb4006f0008f6c036

@netlify

netlify Bot commented Sep 21, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit d6c2744
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6ab1c25e7dc63f00087a63ba

{#if $providerVersions.refreshError}
<div class="mt-0.5 flex items-center gap-1 text-destructive">
<AlertCircle class="size-3.5 shrink-0" />
<span>Couldn't check for updates. Cached results may be out of date.</span>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

change couldn't to Could not

@skevetter
skevetter marked this pull request as ready for review September 21, 2026 20:04
@skevetter

Copy link
Copy Markdown
Contributor Author

@greptileai review

@greptile-apps

greptile-apps Bot commented Sep 21, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR is not yet safe to merge because “Refresh status” can falsely report recovery while provider version data remains stale.

Findings

  1. P1 Refresh Clears Stale Warning

Summary

This PR improves desktop provider-update feedback by streaming progress and logs, retaining structured failures, adding refresh recovery, and loading cached update checks before background refresh.

  • Adds streaming provider update IPC and persistent job logs.
  • Shows update phases, failures, recovery controls, and cached-update freshness.
  • Fixes the previously reported provider-identity and unhandled-refresh paths, but the renderer-side refresh retry does not repeat the operation that failed.
Diagram
sequenceDiagram
  participant UI as Provider sheet
  participant IPC as Main IPC
  participant Jobs as ProviderJobs
  participant CLI as Provider CLI

  UI->>IPC: provider_update_streaming(name)
  IPC->>Jobs: start(name)
  IPC->>CLI: set-source, init
  CLI-->>UI: command-progress events
  IPC->>Jobs: finish(name)
  Jobs-->>IPC: provider state refreshed
  IPC-->>UI: terminal progress
  UI->>UI: reload provider list and versions
  alt renderer version reload fails
    UI->>UI: show "Status may be out of date"
    UI->>IPC: provider_refresh_state(name)
    IPC->>Jobs: retryRefresh(name)
    Jobs-->>IPC: no-op when successful job was removed
    UI->>UI: reload list only and clear warning
  end
Loading

Reviews (2) · Last reviewed commit: "test(desktop): cover update completion o..."

Comment thread desktop/src/renderer/src/lib/components/provider/ProviderSheet.svelte Outdated
Comment thread desktop/src/renderer/src/lib/components/provider/ProviderSheet.svelte Outdated
@skevetter

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Comment on lines +284 to +286
await providerRefreshState(provider.name)
providers.set(await providerList())
updateError = null

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Refresh Clears Stale Warning

If the post-update loadVersionsFor call fails, the sheet records a refresh failure. By then, the successful main-process job has already been removed, so providerRefreshState returns successfully without refreshing anything. This handler then reloads only the provider list and clears the error without retrying the failed version load, causing “Refresh status” to dismiss the warning while the displayed version data remains stale.

@skevetter
skevetter force-pushed the feat/provider-update-feedback branch from e2fa79a to 402c054 Compare September 21, 2026 22:58
@github-actions

Copy link
Copy Markdown

⚠️ This PR contains unsigned commits. To get your PR merged, please sign those commits (git rebase --exec 'git commit -S --amend --no-edit -n' @{upstream}) and force push them to this branch (git push --force-with-lease).

If you're new to commit signing, there are different ways to set it up:

Sign commits with gpg

Follow the steps below to set up commit signing with gpg:

  1. Generate a GPG key
  2. Add the GPG key to your GitHub account
  3. Configure git to use your GPG key for commit signing
Sign commits with ssh-agent

Follow the steps below to set up commit signing with ssh-agent:

  1. Generate an SSH key and add it to ssh-agent
  2. Add the SSH key to your GitHub account
  3. Configure git to use your SSH key for commit signing
Sign commits with 1Password

You can also sign commits using 1Password, which lets you sign commits with biometrics without the signing key leaving the local 1Password process.

Learn how to use 1Password to sign your commits.

Watch the demo

@skevetter
skevetter force-pushed the feat/provider-update-feedback branch from 402c054 to 56bbcf2 Compare September 21, 2026 23:00
@mergify

mergify Bot commented Sep 21, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@skevetter
skevetter force-pushed the feat/provider-update-feedback branch from d22c713 to d6c2744 Compare September 21, 2026 23:48
@skevetter skevetter changed the title feat(desktop): improve provider update feedback feat(ui): improve provider update feedback Sep 22, 2026
@skevetter
skevetter merged commit cecf8d1 into main Sep 22, 2026
31 checks passed
@skevetter
skevetter deleted the feat/provider-update-feedback branch September 22, 2026 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant