Skip to content

provider update advisories#2312

Open
justsomelegs wants to merge 18 commits intopingdotgg:mainfrom
justsomelegs:feature/provider-update-advisories
Open

provider update advisories#2312
justsomelegs wants to merge 18 commits intopingdotgg:mainfrom
justsomelegs:feature/provider-update-advisories

Conversation

@justsomelegs
Copy link
Copy Markdown
Contributor

@justsomelegs justsomelegs commented Apr 23, 2026

What Changed

Compared to main, this PR adds provider update advisories and update-state UI for installed providers.

Server-side:

  • adds provider version lifecycle/update state tracking
  • adds provider updater logic and related contract/RPC plumbing so the UI can know when a provider has an update available, is updating, succeeded, or failed

Web-side:

  • adds provider update toasts with a one-click Update action
  • adds a sidebar provider update pill for in-progress, success, and failure states
  • adds provider-specific success/failure copy
  • updates provider settings status copy to Up to date.
  • smooth-scrolls to the providers section when opening settings from update UI entry points

Also includes tests covering the update lifecycle, updater behavior, notification logic, and the rebased provider registry fixture change.

Why

main does not have provider update advisories or a dedicated way to surface provider update state in the UI.

This PR adds that missing flow so users can:

  • see when an installed provider has an update available
  • trigger the update directly from the UI
  • see update progress and result state in a persistent place
  • get clearer provider status after the update completes

The toast handles the action. The sidebar pill handles ongoing state and final status.

UI Changes

Compared to main:

Before:

  • no provider update advisory UI
  • no provider update progress/status pill
  • provider settings did not show post-update status

After:

  • outdated providers can surface update toasts with an Update action
  • the sidebar shows provider update progress/result state
  • success auto-dismisses after a short timeout
  • failure remains visible until dismissed
  • provider settings show Up to date. after a successful update
TOASTS Screenshot 2026-04-23 140501 SETTINGS Screenshot 2026-04-23 122852
update.demo.vid.mp4

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Add provider update advisories with one-click update support in settings and sidebar

  • Introduces version advisory tracking for providers (Claude, Codex, Cursor, OpenCode): each provider snapshot now carries a versionAdvisory (status, current/latest version, update command) and optional updateState (queued/running/succeeded/failed).
  • Adds providerVersionLifecycle and providerUpdater modules on the server to resolve per-provider update commands (npm-global, bun-global, cursor agent) and execute updates with concurrency locks and output capture.
  • Exposes a new server.updateProvider RPC method over WebSocket and IPC, wired through ProviderRegistry which overlays transient update state onto provider snapshots without persistence.
  • Settings panel (GeneralSettingsPanel) now shows inline Update buttons on eligible provider cards, executes one-click updates, and scrolls to the providers section when navigated to via #providers hash.
  • Adds ProviderUpdateLaunchNotification and SidebarProviderUpdatePill to surface update availability as toasts and a sidebar pill with auto-dismiss and dismissal persistence via dismissedProviderUpdateNotificationKeys in client settings.
  • Risk: writeProviderStatusCache now strips updateState before writing to disk, changing the format of cached provider status files.

Macroscope summarized 58eb8f1.


Open in Devin Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 097ef46c-222b-4010-a2a4-850ff6210d3a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Apr 23, 2026
@justsomelegs justsomelegs changed the title update providers in application provider update advisories Apr 23, 2026
@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp Bot commented Apr 23, 2026

Approvability

Verdict: Needs human review

This PR introduces a significant new feature for provider update advisories with one-click update functionality, including executing shell commands (npm/bun install), fetching versions from npm registry, new RPC endpoints, and UI notification components. The scope and runtime impact warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@juliusmarminge
Copy link
Copy Markdown
Member

just merged a large refactor on how drivers work and is registerred so this will need to be updated, i can review it when it is

@justsomelegs justsomelegs force-pushed the feature/provider-update-advisories branch from aeb88d0 to 9c34d30 Compare April 30, 2026 11:22
@justsomelegs
Copy link
Copy Markdown
Contributor Author

@juliusmarminge this has been rebased now :)

Comment thread apps/server/src/provider/providerUpdater.ts Outdated
Comment thread apps/server/src/provider/providerUpdater.ts Outdated
Comment thread apps/server/src/provider/providerUpdater.ts Outdated
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Apr 30, 2026
@juliusmarminge
Copy link
Copy Markdown
Member

where is the update button?

CleanShot 2026-05-02 at 00 04 20@2x

@juliusmarminge
Copy link
Copy Markdown
Member

and there should be some "dismiss until next update" or something so it doesn't reprompt every load:

CleanShot.2026-05-02.at.00.05.13.mp4

@justsomelegs justsomelegs force-pushed the feature/provider-update-advisories branch from f072e3d to 1179cdc Compare May 4, 2026 10:22
@vercel
Copy link
Copy Markdown

vercel Bot commented May 4, 2026

@justsomelegs is attempting to deploy a commit to the Ping Labs Team on Vercel.

A member of the Team first needs to authorize it.

Comment thread apps/server/src/provider/providerUpdater.ts
Comment thread apps/web/src/components/ProviderUpdateLaunchNotification.logic.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants