Skip to content

sync(upstream): merge upstream/main 064041072 into fork/dev - #381

Merged
patroza merged 14 commits into
fork/devfrom
sync/upstream-064041072
Aug 8, 2026
Merged

sync(upstream): merge upstream/main 064041072 into fork/dev#381
patroza merged 14 commits into
fork/devfrom
sync/upstream-064041072

Conversation

@omegent-app

@omegent-app omegent-app Bot commented Aug 8, 2026

Copy link
Copy Markdown

Adopts upstream through 064041072 — the thirteen commits after #379, headlined by
pingdotgg#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

Commit
064041072 fix(desktop): zoom shortcuts no longer die when the preview browser has focus (pingdotgg#5691)
2c7267ad4 fix(server): stop the reaper from silently killing live background subagents (pingdotgg#5677)
daf8ee0b2 fix(web): inherit terminal size in simple typography (pingdotgg#5628)
ed886fe18 fix(web): delay transient reconnect warnings (pingdotgg#5670)
4eaf5ef8b fix(server): stop PR status lookups amplifying GitHub rate limits (pingdotgg#5673)
0de954073 feat: sidebar v2 is now the default sidebar (pingdotgg#5672)
31891a1a0 feat(web): fold plan mode and token-by-token output into Legacy features (pingdotgg#5664)
45d9aa90b fix(web): show Stop button while input is pending (pingdotgg#5554)
7a84f6cf1 fix(web): reconnect the composer seam for remote non-Git projects (pingdotgg#5633)
f0fb406ac feat(web): make sidebar artwork theme-aware (pingdotgg#5636)
72d673a85 feat(desktop): remember recently used sites in the Browser panel (pingdotgg#5270)
82406bce9, e2cd2383c chore: vouch contributors

The hard part: a rename git could not follow

pingdotgg#5672 is a file-level restructure — upstream renamed the classic sidebar to
LegacySidebar.tsx, moved SidebarV2.tsx's content into Sidebar.tsx, and deleted
SidebarV2.tsx. Because this fork had heavily modified both files, git saw a
modify/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:

Result = fork content + upstream delta
Sidebar.tsx the fork's SidebarV2.tsx (multi-env + ownership filters, identity marks, budgeted listStatus, pin ordering, copy-thread-id, unread + regenerating-title chrome, settled shelves) pingdotgg#5672's rename sweep — SidebarV2*Sidebar*, group/v2-rowgroup/sidebar-row, sidebar-v2-* test ids — plus aria-busy on rows
LegacySidebar.tsx the fork's old Sidebar.tsx upstream's rename + settings-nav hoist

AppSidebarLayout now renders SettingsSidebarNav for both sidebars, so neither renders it
itself — 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 17
assertions still run against the renamed files and ids, and they are what caught my first attempt
shipping upstream's v1 as LegacySidebar.tsx instead of the fork's (which would have silently
dropped the settled-shelf chrome, composer draft marks and provider usage dots from the legacy
sidebar).

Other resolutions

Where Situation Resolution
GitManager pingdotgg#5673 replaces the flat 20s failure TTL with per-branch exponential backoff, because a rate-limited poller was re-asking faster than a healthy one upstream's backoff adopted; the fork's terminal-state PR freeze kept alongside it
ComposerPrimaryActions pingdotgg#5554 shows Stop while input is pending — precisely what the fork's shouldShowComposerInterruptAction suppressed upstream's behaviour adopted; the superseded predicate and its tests retired, not merged
PreviewView the fork's resolveNavigableUrl asks the environment about tailnet routing; upstream adds browser history (pingdotgg#5270) fork resolution kept, history recorded only on successful navigation
settings keys sidebarV2Enabled/sidebarV2ConfiguredByUserlegacySidebarEnabled; enableAssistantStreamingenableLegacyTokenStreaming; mobile threadListV2EnabledlegacyThreadListEnabled. All are deliberately fresh keys so decoding drops the old ones and prior opt-ins reset adopted; consumers migrated to the new resolvers
.github/VOUCHED.td upstream's contributor-vouching file, deleted by this fork deletion kept

Adversarial review

grok-4.5 reported the sidebar hand-merge, settings migrations, settings-nav hoist, GitManager,
composer, preview and forkSurfaceExistence all clean — and found one HIGH:

Finding Disposition
HIGH — the mobile ThreadNavigationSidebar still gated v2 on the retired threadListV2Enabled. I migrated HomeScreen but missed this one, so the iPad/split list would have stayed on the legacy layout with no setting able to change it, disagreeing with Home Fixed. It now reads through resolveThreadListV2Enabled exactly like HomeScreen

Verification

  • Full recursive typecheck clean across 17 packages.
  • 2,288 tests pass; the only failure is the pre-existing CodexTextGeneration launch-args one,
    which reproduces on unmerged fork/dev.

Note

#376 (PR-badge fallback for prNNNN checkouts) touches findLatestPrForHeadContext in
GitManager.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

t3-code Bot and others added 14 commits August 7, 2026 14:29
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>
@patroza
patroza merged commit 9bbb0a0 into fork/dev Aug 8, 2026
4 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants