Repository navigation
feat(web): choose whether app updates include provider CLIs - #28420
nobottomline wants to merge 3 commits into
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Adds a remembered option to leave provider CLI updates out of app/server updates while preserving default inclusion and separate provider updates. The change narrows execution only through an explicit choice in the existing confirmation flow. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|

The sidebar's combined update action always includes eligible provider CLIs. Users can update the desktop app from About, but cannot leave provider updates for later while updating T3 Code across connected machines.
Add Include provider updates beside the confirmation buttons, enabled by default. Clearing it removes provider updates from the displayed plan and execution while retaining app/server updates. The preference is saved on this client and shared across its tabs; an open confirmation keeps its own selection. If its last app/server target disappears, it closes rather than silently becoming a provider-only operation.
This is a focused configuration option for the existing combined updater under CONTRIBUTING.md. Provider-only sidebar updates, Settings → Providers → Update all, version/catalog checks, and track switches retain their behavior. No server API or contract changes are needed. Web and desktop share this flow; mobile already exposes separate update actions. Managed runtimes may still change with T3 Code itself.
Related: #23982 describes the desire to leave externally managed CLIs alone. This PR does not resolve its MacPorts ownership bug, which is addressed separately by #25208.
Verification
vp run check:changedpassed format, lint, both knip passes, affected typechecks, adjacent browser tests, and React Compiler coverage.UI evidence
The choice wraps above the buttons in a narrow window:
This interaction recording demonstrates exclusion and persistence after a reload. It predates the footer layout adjustment; the behavior is unchanged:
update-choice-demo.mp4
Model: GPT-6.1 Sol (high). Harness: Codex in T3 Code.