Repository navigation
#1189 A T3 checkout update shows in the sidebar's update pill, like the desktop and harness updates - #27
Merged
Tevin2119 merged 1 commit intoOct 10, 2026
Conversation
…ktop and harness updates Web only. The T3 checkout update now shows in the v2 sidebar's update area as a SidebarCheckoutUpdatePill placed next to SidebarProviderUpdatePill in SidebarChromeFooter, reusing the T3 sidebar update pill's tones, icons, small dismiss button and tooltip. One root-mounted controller (CheckoutUpdateProvider in CheckoutUpdateNotification.tsx, wrapping the app shell in __root.tsx) feeds both the pill and the retained toast. The toast is kept only for the legacy sidebar and Settings routes. Both are hidden until client settings load and when the server lacks the checkoutUpdate capability. CheckoutUpdate.logic.ts works out the states: phase titles (installing/building/restarting) that stay even when the server sends a message, undone vs could-not-update told apart even when an earlier undo is still on record, reason fallback to lastOutcome.reason, the pill view (available/starting/not-started notice/progress/undone/failed/reload/none) and the presentation choice. The controller blocks a second start before React re-renders and holds 'Starting…' until the server moves on (or passes on the request). A failed start says it did not start and allows retry. Start requests still in flight from a previous primary environment are ignored. The initiating tab reloads by itself and other tabs offer Reload. The loaded commit and initiating tab survive Settings navigation and a reconnect where the server briefly reports nothing. Offered-commit dismissal shares the existing t3code:checkout-update-dismissed:v1 key, outcome notices close locally, and a toast closed by the code no longer remembers a dismissal (this also fixes a failure toast that reopened after closing). Desktop updater files are unchanged; mobile is not changed because it has no checkout update screen. Task task-96df4b2119, revision 2, run run-f8807ae82d.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task pingdotgg#1189, run run-f8807ae82d. Approved by T for commit f9891a9, which passed its checks and the QA gate.
What was asked
apps/web/src/components/sidebar/SidebarUpdatePill.tsx and SidebarChrome.tsx, apps/web/src/components/CheckoutUpdateNotification.tsx and CheckoutUpdate.logic.ts. A T3 run from a git checkout under the checkout supervisor offers its update (Update and restart, progress, undone) as a toast (CheckoutUpdateNotification), while the v2 sidebar, now the default, shows desktop updates in SidebarUpdatePill and harness updates in SidebarProviderUpdatePill. Show the checkout update in the sidebar's update area the same way: when the server is checkout-supervised and a newer commit is available, the update pill offers it with its subject and how many commits, Update and restart starts it, the pill shows installing, building and restarting, and how it ended (updated, or undone and why). Keep the toast only where the sidebar is not shown, or drop it, and say which. Keep the logic in CheckoutUpdate.logic.ts and its tests.
Done when
Opened by the delivery engine after a person's approval. Merging is a separate step.