Skip to content

chore: sync upstream v2 trunk and main through Oct 2 - #4

Merged
eyeveil merged 21 commits into
mainfrom
t3code/upstream-sync
Oct 2, 2026
Merged

eyeveil merged 21 commits into
mainfrom
t3code/upstream-sync

Conversation

@yvesoddly

@yvesoddly yvesoddly commented Oct 2, 2026 •

Copy link
Copy Markdown

The fork is current with the v2 trunk (t3code/codex-turn-mapping at 66a9107) but 19 commits behind upstream main. Upstream's last main-into-V2 merge (pingdotgg#14668) stopped at a3abb52, so 11 of those are real changes v2 does not have yet. The one that matters most is pingdotgg#14673: background GitHub polling makes about 74% fewer gh calls by batching branch lookups into GraphQL, which keeps busy servers off GitHub's rate limit. The rest are one-click provider updates on every machine (pingdotgg#14678), the beta Working section in the sidebar (pingdotgg#13926), Lexical-style composer undo grouping (pingdotgg#14674), and smaller fixes for the desktop dark-mode browser, the mobile project picker, PR check status wrapping, and dockerfile icons.

One merge commit, merge: include upstream main through 54084ae1e6. v2 had nothing new, so there is no trunk merge this time. Conflicts come from main still editing V1 code that v2 rewrote:

Checked locally: tsc --noEmit passes for contracts, server, web, mobile, and desktop. Focused tests pass: PullRequestSyncReactor, ThreadPullRequestService, GitHubCli, GitHubSourceControlProvider, and gitHubPullRequestJson on the server (152), Sidebar.logic, Sidebar.drag, and settingsSearch on the web (252), and the desktop preview Manager (95). The Working section was not tried in a running client.

Made by Claude Opus 5.5 (1M context) running in Claude Code inside T3 Code.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

flamboh and others added 20 commits October 1, 2026 15:55
…ard (pingdotgg#13487)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
…tgg#14635)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…#14613)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ched GraphQL (pingdotgg#14673)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…g#14678)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
pingdotgg#13926)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
…ode browser (pingdotgg#14601)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…gdotgg#14532)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge upstream/main for the commits the v2 trunk has not picked up yet.
Upstream's last main-into-V2 merge (pingdotgg#14668) stopped at a3abb52, so this
brings in the GitHub GraphQL batching fix (pingdotgg#14673), one-click provider
updates (pingdotgg#14678), the beta Working section (pingdotgg#13926), composer undo
grouping (pingdotgg#14674), and smaller web, desktop, and mobile fixes.

Conflict resolutions:
- PullRequestSyncReactor / ThreadPullRequestService: git mapped main's V1
  reactors onto the v2 files. pingdotgg#14673's coalesced requested sweep and
  unstacked-summary shortcut apply as written, reading threads through v2's
  projections; branch lookups take main's 32-wide concurrency.
- server.test.ts stays deleted with the V1 router harness, as in pingdotgg#14668.
- ws.ts: v2 already carries pingdotgg#14635 with `project.value.projectId`.
- Working section (pingdotgg#13926), ported onto v2's sidebar: v2's "waiting" status
  (a run parked idle on background tasks) stands in for main's
  "monitoring", the inbox return sort reads `latestRun`, and the plan-ready
  check is shared with the status pill because v2 ranks Waiting above Plan
  Ready. Shelf headers keep v2's CollapsibleSectionHeader tones.
- Sidebar.logic.test.ts: main's drag-and-drop describe blocks stay out, as
  v2 removed them in c4bcd1e. The Working shelf tests use v2 runtime
  shapes.
- ChatView / ChatHeader (pingdotgg#13426): dropped. v2's header has no actions
  container reserving room for the panel toggles, so the overlap it fixes
  does not occur.
- SettingsPanels, settingsSearch, thread-sidebar.md: the fork's usage-limit
  rows and v2's title docs stay; the Working section entries follow them.
- pnpm-lock.yaml: regenerated with pnpm 11.10.0, no changes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Oct 2, 2026
@greptile-apps

greptile-apps Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

[Medium risk] Syncs upstream changes across desktop, mobile, server, and web apps.

The PR should not merge until idle threads without active work remain in the inbox when the Working section is enabled.

Findings

  1. P1 Idle threads enter Working ▶
  2. P2 Update control ignores read-only state ▶
  3. P2 Wrapped checks text gets clipped ▶
Fix with agent prompt
### Issue 1
apps/web/src/components/Sidebar.logic.ts:1014-1018
When the Working section is enabled, a thread can have an idle runtime even though it has no run or pending background task. This check treats that thread as working and moves it from the inbox into the collapsed Working section, where the user may miss it. Check for an actual run or pending background task before treating `idle` as work in progress.

### Issue 2
apps/web/src/components/settings/ProviderSettingsPanel.tsx:1198
When this environment’s provider settings are read-only, the panel says the session cannot change them, but it still shows an enabled “Update all” button. A user can start update attempts from a panel that otherwise presents changes as unavailable. Gate the control on operate access, or make its cross-machine scope and permissions clear.

### Issue 3
apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx:2598
The checks summary can now wrap in a narrow header, but its container is fixed at `h-4` and hides overflow. If the icon and text need a second line, that line is cut off instead of being shown. Let the container grow with its content.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

This PR syncs upstream changes for GitHub polling, provider updates, the optional Working sidebar section, composer undo grouping, and several mobile and desktop fixes.

  • The Working section can fold an idle thread that has no work in progress.
  • The provider update control remains available in read-only settings, and the PR checks summary can clip wrapped text.

Reviews (1) · Last reviewed commit: "merge: include upstream main through 540..."

Comment thread apps/web/src/components/Sidebar.logic.ts Outdated
Comment thread apps/web/src/components/settings/ProviderSettingsPanel.tsx
Comment thread apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx Outdated
@eyeveil

eyeveil commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator

PASS+NOTES, independent final verification of PR 4.

Head: 2df0e887eeb23c5eb741545924c7eb05aa470879
Base: d13df1510ea3139fb340e3f43e24ffc40eec6a81
Stable base-to-head patch-id: a3add0d2ca9f47177b93af61e35f39addce1695f.

Local git and GitHub agree on both SHAs. The patch-id exactly matches the corrected tree previously reviewed and tested. The four-file correction remains identical: idle threads without background tasks stay in the inbox, checks text can grow and wrap, and the provider update control explicitly says "Update all machines" with per-machine permission handling. No authorization bypass found.

Reused independent review of all 44 files and observed focused checks: 152 server tests, 378 original web/desktop tests, 358 additional behavior tests, and 266 corrected-tree tests passed. Counts overlap. No redundant test rerun was needed for this identical patch.

Inspected root's layout script, JSON, log and before/after screenshots. On the same real PR component at an 80 px checks slot, original client height 16 px versus scroll height 30 px clips the summary; corrected height and scroll height are both 46 px, with visible overflow. This closes the earlier pending layout note.

Remaining limits: no independent native mobile/Electron pixel verification, real provider update execution, or production measurement of the claimed GitHub call reduction. Root's browser evidence was inspected, not rerun. Green CI is not the basis for this verdict.

Verified by gpt-6.1-sol through the Codex harness in T3 Code.

@eyeveil
eyeveil merged commit 6eb5045 into main Oct 2, 2026
19 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants