sync(upstream): merge upstream/main 064041072 into fork/dev - #381
Merged
Conversation
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
…res (pingdotgg#5664) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ngdotgg#5673) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
…bagents (pingdotgg#5677) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…as focus (pingdotgg#5691) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Adopts the thirteen upstream commits after #379. The headline is pingdotgg#5672 making sidebar v2 the default, which is a file-level restructure: upstream renamed the classic sidebar to LegacySidebar.tsx and moved v2's content into Sidebar.tsx, deleting SidebarV2.tsx. Git could not follow either rename because both sides had changed both files, so each was merged three-way by hand: - Sidebar.tsx = the fork's SidebarV2.tsx (multi-env and ownership filters, identity marks, budgeted listStatus, pin ordering, copy-thread-id, unread and regenerating-title chrome) with upstream's pingdotgg#5672 delta applied. That delta is a rename sweep — SidebarV2* → Sidebar*, group/v2-row → group/sidebar-row, sidebar-v2-* test ids — plus aria-busy on the rows. - LegacySidebar.tsx = the fork's old Sidebar.tsx with upstream's rename and settings-nav hoist applied. AppSidebarLayout now renders SettingsSidebarNav for both sidebars, so the legacy one no longer renders it itself. forkSurfaceExistence, the fork's anti-stack-drop net, was retargeted at the renamed files and ids rather than relaxed: all 17 assertions still run, and they are what caught LegacySidebar initially being upstream's v1 rather than the fork's. Other resolutions: - GitManager: upstream's per-branch exponential backoff for rate-limited PR lookups (pingdotgg#5673) with the fork's terminal-state freeze helper kept. - Composer: pingdotgg#5554 shows Stop while input is pending, which is exactly what the fork's shouldShowComposerInterruptAction suppressed; the predicate and its tests are retired rather than merged. - PreviewView: the fork's resolveNavigableUrl (asks the environment about tailnet routing) keeps resolving, with upstream's browser-history recording (pingdotgg#5270) layered on the successful-navigation path. - Settings: sidebarV2Enabled / sidebarV2ConfiguredByUser and enableAssistantStreaming are retired in favour of upstream's fresh keys (legacySidebarEnabled, enableLegacyTokenStreaming), which deliberately reset prior opt-ins; the mobile list toggle inverts the same way, so HomeScreen now reads through resolveThreadListV2Enabled. - .github/VOUCHED.td stays deleted: it is upstream's contributor-vouching file. Adversarial review caught one surface the key migration missed: the mobile ThreadNavigationSidebar still gated v2 on the retired threadListV2Enabled, so the iPad/split list would have stayed on the legacy layout with no setting able to change it, disagreeing with Home. It now reads through resolveThreadListV2Enabled like HomeScreen. Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
omegent-app Bot
added a commit
that referenced
this pull request
Aug 8, 2026
Adopts the three upstream commits after #381: a cross-environment usage page reading provider transcripts (pingdotgg#5684), its chart fix (pingdotgg#5697), and one mobile sheet for model and thread settings (pingdotgg#5625). Resolutions: - server.ts / ws.ts / client-runtime state: upstream's UsageService and its usageSummary atom family are additive next to the fork's diagnostics services (HostResourceProbe, ProcessResourceMonitor, TraceDiagnostics, BackgroundPolicy) and hostResourceSnapshot family — unioned. - ThreadComposer: pingdotgg#5625 folds the model picker and provider options into a single settings sheet, replacing the fork's ControlPillMenu. The sheet is adopted, and the fork's usage signal rides on it: the trigger keeps ProviderUsageIcon with the live marker rather than upstream's plain ProviderIcon, so quota state stays visible at a glance. The fork-only collapsed-composer pill (upstream has none) now opens the same sheet instead of the retired menu. Adversarial review caught that retiring the model menu also orphaned the fork's numeric usage note: the marker survived on the trigger icon but the quota percentage the menu rows carried had no home. It now hangs off the trigger label, so both halves of the fork's usage signal survive the consolidation. The plain ProviderIcon import went with upstream's replaced icon. Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
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.
Adopts upstream through
064041072— the thirteen commits after #379, headlined bypingdotgg#5672 making sidebar v2 the default.
Important
Merge with a merge commit, not squash. Squashing collapses the second parent and discards
upstream's commits as ancestors — the thing that keeps "commits behind upstream" honest.
Upstream commits entering the product
0640410722c7267ad4daf8ee0b2ed886fe184eaf5ef8b0de95407331891a1a045d9aa90b7a84f6cf1f0fb406ac72d673a8582406bce9,e2cd2383cThe hard part: a rename git could not follow
pingdotgg#5672 is a file-level restructure — upstream renamed the classic sidebar to
LegacySidebar.tsx, movedSidebarV2.tsx's content intoSidebar.tsx, and deletedSidebarV2.tsx. Because this fork had heavily modified both files, git saw amodify/delete pair and gave up on rename detection, leaving 23 conflict hunks in the wrong file.
Each was therefore merged three-way by hand, against the merge-base:
Sidebar.tsxSidebarV2.tsx(multi-env + ownership filters, identity marks, budgetedlistStatus, pin ordering, copy-thread-id, unread + regenerating-title chrome, settled shelves)SidebarV2*→Sidebar*,group/v2-row→group/sidebar-row,sidebar-v2-*test ids — plusaria-busyon rowsLegacySidebar.tsxSidebar.tsxAppSidebarLayoutnow rendersSettingsSidebarNavfor both sidebars, so neither renders ititself — verified there is exactly one mount on the settings route and none elsewhere.
forkSurfaceExistence— the fork's anti-stack-drop net — was retargeted, not relaxed. All 17assertions still run against the renamed files and ids, and they are what caught my first attempt
shipping upstream's v1 as
LegacySidebar.tsxinstead of the fork's (which would have silentlydropped the settled-shelf chrome, composer draft marks and provider usage dots from the legacy
sidebar).
Other resolutions
GitManagerComposerPrimaryActionsshouldShowComposerInterruptActionsuppressedPreviewViewresolveNavigableUrlasks the environment about tailnet routing; upstream adds browser history (pingdotgg#5270)sidebarV2Enabled/sidebarV2ConfiguredByUser→legacySidebarEnabled;enableAssistantStreaming→enableLegacyTokenStreaming; mobilethreadListV2Enabled→legacyThreadListEnabled. All are deliberately fresh keys so decoding drops the old ones and prior opt-ins reset.github/VOUCHED.tdAdversarial review
grok-4.5 reported the sidebar hand-merge, settings migrations, settings-nav hoist, GitManager,
composer, preview and
forkSurfaceExistenceall clean — and found one HIGH:ThreadNavigationSidebarstill gated v2 on the retiredthreadListV2Enabled. I migratedHomeScreenbut missed this one, so the iPad/split list would have stayed on the legacy layout with no setting able to change it, disagreeing with HomeresolveThreadListV2Enabledexactly likeHomeScreenVerification
CodexTextGenerationlaunch-args one,which reproduces on unmerged
fork/dev.Note
#376 (PR-badge fallback for
prNNNNcheckouts) touchesfindLatestPrForHeadContextinGitManager.ts, which pingdotgg#5673 also rewrites. It will need a rebase after this lands.Co-authored by @patroza
opened by Patrick Roza in chat thread Discord · Discord · T3