Skip to content

merge: sync upstream through 0a7c662d3 (10 commits) - #392

Merged
omegent-app[bot] merged 12 commits into
fork/devfrom
sync/upstream-0a7c662d3
Aug 10, 2026
Merged

merge: sync upstream through 0a7c662d3 (10 commits)#392
omegent-app[bot] merged 12 commits into
fork/devfrom
sync/upstream-0a7c662d3

Conversation

@omegent-app

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

Copy link
Copy Markdown

Adopts upstream through 0a7c662d3 — the 10 commits after 3d74474f6, headlined by pingdotgg#4849, the
multi-provider pull requests page with in-app reviews
, plus themed confirmation dialogs (pingdotgg#5624),
built-in theme contrast (pingdotgg#6000) and the v0.0.33 release prep.

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
0a7c662d3 fix(web): improve built-in theme contrast (pingdotgg#6000)
b91a000a1 feat(web): add duplicate action to the T3 Code default theme (pingdotgg#6013)
8de0aa24d perf(desktop): probe the Windows shell environment concurrently (pingdotgg#5878)
cad2c9361 feat: multi-provider pull requests page with in-app reviews (pingdotgg#4849)
78f462c4e chore(release): prepare v0.0.33
3b72d17cb fix(mobile): parse EAS fingerprint JSON (pingdotgg#5991)
d440442db fix(mobile): stop Android user bubbles with code blocks from overlapping (pingdotgg#5659)
67ef189d8 fix(mobile): detect PowerShell cmdlet errors in work log rows (pingdotgg#5726)
fbcae59ef fix(web): use import/export-appropriate icons for theme buttons (pingdotgg#5964)
9821bca1c fix(web): use themed confirmation dialogs (pingdotgg#5624)

Resolutions

12 conflicted files. The two that actually mattered:

Where Situation Resolution
ElectronDialog.ts the real weld — and my first resolution of it was wrong. The fork owns an owner-aware confirm (Option<BrowserWindow>); pingdotgg#5624 added showMessageBox next to it. The auto-merge kept the fork's confirm implementation while dropping its interface declaration, its ElectronDialogConfirmError class, its ElectronDialogConfirmInput, the CONFIRM_BUTTON_INDEX constant and its entry in the ElectronDialogError union — leaving a method that existed but could not be called I first restored all five faithfully from HEAD^1. Review then showed the whole surface was dead — pingdotgg#5624 removed the bridge, preload API and IPC channel — so it is removed instead, and confirmations run through upstream's themed dialog. See the review section
LegacySidebar.tsx upstream re-rendered the whole Projects group unwrapped; the fork wraps it in showProjectGroups and puts a flat/recency list above it. Upstream's copy would have rendered the group twice, since the shared region below already completes the fork's fork's structure kept; upstream's new required openPullRequestsInRightPanel prop threaded to the two fork-only call sites, and pingdotgg#6000's contrast change (text-muted-foreground/60text-icon-muted) applied by hand rather than lost

The rest were additive unions — the fork's identity.* RPCs beside upstream's 13 new pullRequests.*
ones, fork props beside onOpenPullRequest, fork-owned release workflow and desktop dialog tests
kept whole. routeTree.gen.ts was regenerated with the router plugin, not hand-merged.

Two consequences of upstream's new feature that needed fixing rather than resolving: fork test
helpers gained upstream's new ProcessRunOutput invalid-UTF-8 fields, and upstream's new
StyledDiffCodeView.test.tsx joined the fork's isolatedUnitTestFiles — it uses vi.mock and fails
under the fork's isolate: false, which is the documented fork-only case that list exists for.

Checks I ran on the two riskiest unions

Rather than trust the unions:

  • Every RPC method has an authorization scope. 101 methods, 98 scoped; the 3 that are not
    (projects.add / list / remove) are identical on HEAD^1 and on upstream/main, so they
    are pre-existing and not something this merge introduced. Method count 88 (fork) → 101 confirms
    upstream's 13 arrived intact.
  • onOpenPullRequest is genuinely wired, not a prop nothing supplies: ChatView.tsx:6697
    ChatHeader.tsx:494GitActionsControl.tsx:1240 invokes it. Upstream's in-app PR opening
    works on the fork.

Adversarial review

Both reviewers went through all 12 resolutions. Neither found a HIGH. Two findings were real and
are fixed in 46200ae7d; the rest confirmed sound.

Finding Disposition
gpt-5.6-sol, MEDIUM — the restored native ElectronDialog.confirm is dead production code. pingdotgg#5624 removed confirm from DesktopBridge, the preload API and the IPC channel/handler, so the fork's owner-aware implementation had no caller left but its own tests, competing with the themed dialog that actually runs Fixed by removing the whole surface rather than keeping it. My faithful restore was the wrong instinct: I checked that the pieces were consistent, not that anything still called them. Verified on HEAD^1 that its one production caller (ipc/methods/window.ts:231) is gone. Declaration, implementation, error class and union entry, input type, button-index constant and tests all removed; confirmations run through LocalApi.dialogs.confirmConfirmDialogHost
grok-4.5, MEDIUM — the fork's flat/recency sidebar list never received pingdotgg#4849's right-panel PR opening. Its rows called openPrLink without a thread ref and always fell out to the browser Fixed. Threading the required prop into the project rows was enough to make the merge typecheck, which is exactly why this stayed invisible. The recency rows now take openPullRequestsInRightPanel and use the same contract as the project rows
both, LOWWS_METHODS.projects{List,Add,Remove} have no scope entry Not a bypass. They have no Rpc.make, no handler and no caller — dead legacy names, identical on both parents. The real invariant (registered WsRpcGroup requests vs RPC_REQUIRED_SCOPES) is complete and test-enforced
grok-4.5, LOW — remaining text-muted-foreground/60 chrome elsewhere in the legacy sidebar Cosmetic, left alone

Confirmed sound by both: the LegacySidebar Projects group renders once with the prop threaded and
routeThreadRef !== null preserved; onOpenPullRequest is live end-to-end; the route tree matches
all 22 route files with /board, /jump and /pull-requests present; the invalid-UTF-8 fixture
additions track a real upstream decode change rather than masking one; isolating
StyledDiffCodeView.test.tsx preserves its assertions rather than weakening them; and the fork's PR
badges and upstream's PR page are distinct surfaces — branch-scoped VCS status versus
repository-wide PullRequestService — with no competing state or dead fetching path.

Verification

  • Recursive typecheck clean across all 18 packages.
  • vp build of the web app passes — it caught a duplicate useComposerDraftStore import my union
    left behind, which typecheck did not.
  • 2,751 tests pass; the only failure is the pre-existing CodexTextGeneration launch-args one,
    which reproduces on unmerged fork/dev.
  • pnpm-lock.yaml regenerated rather than hand-merged.

Co-authored by @patroza

opened by Patrick Roza in chat thread Discord · Discord · T3

StiensWout and others added 12 commits August 10, 2026 02:23
…ing (pingdotgg#5659)

Co-authored-by: Rodrigo Brechard <rodrigo@clubtidy.fr>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…g#4849)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria <maria@kuuro.net>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…dotgg#5878)

Co-authored-by: tsouth89 <tsouth89@users.noreply.github.com>
Adopts the 10 upstream commits that landed after 3d74474, headlined by the
multi-provider pull requests page with in-app reviews (pingdotgg#4849), themed
confirmation dialogs (pingdotgg#5624), built-in theme contrast (pingdotgg#6000) and the v0.0.33
release prep.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
pingdotgg#5624 replaced the desktop's native confirmation with a themed React dialog: it
removed `confirm` from DesktopBridge, the preload API and the IPC channel and
handler. The auto-merge had dropped the fork's `confirm` declaration while
keeping its implementation, and restoring it faithfully — as I first did — left
a service whose only remaining callers were its own tests, competing with the
themed dialog that actually runs. The whole surface goes: declaration,
implementation, error class and union entry, input type, button-index constant
and the tests. All confirmations now go through LocalApi.dialogs.confirm and
ConfirmDialogHost, which is upstream's intent.

The fork's flat/recency sidebar list never received pingdotgg#4849's right-panel PR
opening. Threading the required prop into the project rows was enough to make
the merge typecheck, so the gap was invisible: the recency rows called
openPrLink without a thread ref and always fell out to the browser. They now
take openPullRequestsInRightPanel and use the same contract as the project
rows — open in the panel, and navigate to the thread so the panel has something
to sit beside.

Found by the gpt-5.6-sol and grok-4.5 adversarial reviews respectively.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-app Bot merged commit bd5fac7 into fork/dev Aug 10, 2026
6 checks passed
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.

8 participants