Repository navigation
Sync upstream t3code main (2026-11-13): custom themes + 1225 commits - #433
Merged
Merged
Conversation
…ex at the window edges (pingdotgg#35877) Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…started during cleanup (pingdotgg#31038)
… slow (pingdotgg#26127) Co-authored-by: Elliot Drel <elliotdrel@gmail.com>
… read a long thread's whole history (pingdotgg#29521)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#35993) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…etect (pingdotgg#31170) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#31146) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…disk but not loaded (pingdotgg#36490)
…ged revalidation (pingdotgg#23775) Signed-off-by: Shaswat Raj <shaswat340@gmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ell (pingdotgg#33064) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: lyn1dev <lyn1dev@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com>
… local port (pingdotgg#24247) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…pingdotgg#23743) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: only21mil <only21mil@users.noreply.github.com>
Sync 1225 upstream commits, including agent-driven UI restyling (theme colors + custom CSS via t3_theme_read/t3_theme_set, pingdotgg#35247). Conflicts resolved preserving fork features and identity; see PR body. Co-authored-by: Cursor <cursoragent@cursor.com>
…review test, unexport an unused helper Co-authored-by: Cursor <cursoragent@cursor.com>
…eam merge Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This was referenced Nov 14, 2026
Merged
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.
Why
Bring upstream's in-app UI customization into s2 without dropping fork behavior. This merges 1,225 upstream commits through
6bc105f04e(merge commite887ee043c), rather than rebasing the fork.Notable upstream changes
42057b82d0, upstream feat: agents can restyle T3 Code with theme colors and CSS pingdotgg/t3code#35247): theme colors, custom CSS, Appearance editor, live environment-theme publication, andt3_theme_read/t3_theme_set.Conflict resolutions
There were 166 conflicted paths. The appendix inventories all of them. Resolution by area:
Custom-theme status
Validation
vp fmtitself is affected by local ancestor-module/config loading (papercutpc_a14f73980ba6); commits bypassed that broken hook and ran checks explicitly.T3CODE_RENDER_REPORT_DIR(experiments normally usescripts/render-metrics.ts), and seven Nodenode:testsuites mis-discovered by Vitest (suite-collection errors, not additional failed tests). Those seven script suites pass under their correct runner: 61/61 vianode --test .github/scripts/*.test.cjs.Real-state migration upgrade
Used SQLite's backup API with the live source opened
mode=ro, then ran migrations only on the private disk-backed copy. Upgrade 80 → 91 passed; fork track remained 7. A second startup was a no-op;PRAGMA quick_checkreturnedok.Before/after row counts and SHA-256 hashes matched for 43 projects, 1,876 threads, 19,236 messages and all 4 scheduled tasks (including full scheduled-task rows). The database copy was deleted afterward. No server was started against copied real tasks, and no live state/launcher/install/server was modified. Live launcher symlink targets and the nightly service-unit SHA-256 still match the stalled agent's before-snapshot.
Pre-existing failures and other limitations
Both baseline worktrees from the stalled run were inspected. Fork main reproduces eight OpenCode replay failures, so they were left out of scope:
OpenCode2OrchestratorV2.integration.test.ts: six cases (message/thread model switches, mode/rule rewrite, plan-directory restrictions, fork-from-earlier-turn, cancelled queued message).OpenCode2PendingSnapshots.evidence.test.ts:R1 opencode2_nested_background.OpenCodeReplayFixtures.integration.test.ts:opencode2_nested_background/opencode.The full package-by-package initial run passed 6,460 web tests and 3,544 mobile tests. The final normal web-script run passed 6,458/6,460 tests (594/595 files), including all browser files; its two failures were in
src/lib/runtime.test.ts(desktop opt-out timing and duplicate telemetry export). That test and its implementation are byte-identical to upstream; the isolated diagnostic passes 3/3. These are load-sensitive observations, not a claim that a failing upstream baseline was reproduced. The separate root-wide diagnostic also selected render-counter experiments (normally run only viascripts/render-metrics.ts) and had 22 browser failures under cross-package load; those browser files pass in the final normal web-script run. The handoff-compaction diagnostic also passed in isolation (3.2 s). Neither complete final run was fully green.Cursor producer correction and 24-case baseline evidence
Astra found that the consumer hook survived the merge but the SDK producer did not. Ported upstream's producer into the retained 1.3.1 patch for CJS, ESM and bundled builds. Incremental stdout/stderr now carries conversation/tool identity before yielding. Non-output chunks stay untouched; listener exceptions cannot break the SDK stream. Compared the old patch's additions after removing only the new producer: all existing fork CJS/ESM attribution/retry changes and the entire retry module are unchanged.
New test:
packages/provider-cursor/src/server/shellStream.test.ts. It extracts and executes the real private producer from each installed build, supplies native stdout/stderr/exit chunks through its executor, and asserts hook delivery and preserved output even when a listener throws. It never manually invokes the hook. Without the fix: 3/3 fail with zero hook calls. With it: 3/3 pass. The review repro uses static extracted handlers; preserved the original evidence, refreshed only PR handlers and source hashes from the installed fixed SDK, and reran the unchanged repro: upstream/CJS/ESM/bundled each emit one event, exit 0.Fresh detached baselines used their own frozen dependencies and unmodified tracked code/tests: origin/main
2a1cc7ce41, upstream6bc105f04e, and the corrected PR. Ran the containing browser files and both render files, withT3CODE_RENDER_REPORT_DIRset. Main browser: 38/38; upstream and PR browser: 140/140 each, including all 22 named cases. Main renders: 14 pass / 1 fail; upstream and PR: 13 pass / 2 fail each. The twelve missing-directory invocation errors disappear; the additional upstream scenario also passes.Evidence limits: eleven named browser cases exist and pass on main; eleven do not exist there (six cases across five files lack even the containing file). They are marked absent rather than transplanted or called passing. All 22 pass upstream and PR, so their earlier loaded-diagnostic failures are not reproduced, not proven pre-existing failures. A forced assignment to the three requested failure buckets would misstate the evidence. The only reproduced render failures are classified below; no browser merge regression was found in these focused runs. The original cross-package-load condition is not ruled out.
test/appScenarios.renders.tsx> app-stream-assistant-turntest/appScenarios.renders.tsx> app-switch-threadsrc/components/ChatView.browser.test.tsx> a rejected send leaves the timeline when a new draft was typed meanwhilesrc/components/ChatView.browser.test.tsx> Enter on an empty prompt resumes an interrupted threadsrc/components/ChatView.handoffCompaction.browser.test.tsx> sends a Codex follow-up on a cold Claude thread without compacting firstsrc/components/CommandPalette.composition.browser.test.tsx> tells screen readers how to submit the permission-blocked destination stepsrc/components/CommandPalette.composition.browser.test.tsx> keeps the caret in place when an edit briefly makes the folder path not a pathsrc/components/DiffPanel.browser.test.tsx> expands an unloaded file on the first click with default collapse falsesrc/components/files/AttachmentFilePreview.office.browser.test.tsx> keeps spreadsheet dates on their calendar day west of UTCsrc/components/pullRequest/useInlineActionConfirm.browser.test.tsx> keeps a blocked merge action reachable without arming or performing itsrc/components/chat/ExpandedImageDialog.browser.test.tsx> ExpandedImageDialog > scrolling pans the image while Ctrl+wheel zooms around the pointersrc/components/settings/AddEnvironmentDialog.browser.test.tsx> AddEnvironmentDialog > reopens on Remote link after adding an SSH environmentsrc/components/settings/AddEnvironmentDialog.browser.test.tsx> AddEnvironmentDialog > clears the form after dismissing it on SSHsrc/components/settings/CloudVoiceConfiguration.browser.test.tsx> enables the chosen provider only after a successful setupsrc/components/settings/ProviderInstanceCard.environment.browser.test.tsx> ProviderEnvironmentSection saved secrets > requires a replacement before renaming or unlocking a stored secretsrc/components/settings/SecretSourceInput.browser.test.tsx> SecretSourceInput > moves a reference to another provider only once one is committed for itsrc/components/settings/SecretSourceInput.browser.test.tsx> SecretSourceInput > removes the reference when its field is clearedsrc/components/settings/SecretSourceInput.browser.test.tsx> SecretSourceInput > rejects a reference 1Password cannot readsrc/components/settings/StorageSettings.browser.test.tsx> switching an edited saved rule off never saves its age afterwardssrc/components/settings/TelemetryExportSettings.browser.test.tsx> TelemetryExportSettings > does not resend a field the user restored after another client changed itsrc/components/files/office/sheet-resize.browser.test.ts> reflows preview tracks through sheet switches, frozen and hidden tracks: truesrc/components/files/office/sheet-resize.browser.test.ts> requests current dimensions after resizing and scrolling away and back before a frame arrivessrc/components/files/office/slide-fonts.browser.test.ts> lays slide text out with heavy stand-ins and script fallbacks, and draws text no bundled face covers wholesrc/components/files/office/word-document.browser.test.ts> draws list numbers with the document's faces, and text no bundled face covers with the system'sCorrective
vp run check:changed HEAD --concurrency 4: 42/42 typechecks, changed-file lint, both knip passes, unused-patch check and selected tests 5/5 pass. The formatter wrapper alone still fails on the known ancestor-module resolution issuepc_a14f73980ba6; explicit local oxfmt with the exported repositoryconfig.fmtpasses. No global tooling config was changed. No full suite or production rebuild was rerun for this correction.Detailed local evidence:
/home/shuv/.cache/agent-ws/pr433-fix/results.mdandlogs/(including before-fix failure, installed-source hashes, JSON per-case results, checks). No paid agent turns, real provider credentials, live install/launcher/state/server access, merge or release.Agent context budget / reviewer risks
The measured budget is committed and its test passes. The maintainer-applied
agent-context-increaselabel now accepts the documented upstream growth (the later budget workflow on the previous head passed):All three deltas exactly match upstream's growth over the previous shared base. No fork tool was removed or description cut just to hide that growth; model-facing text changes require the corresponding evals. This corrective implementation did not add or change labels.
Previous-head snapshot (
d98b0ed796): CI, Windows shim/archive and Socket Security passed; the later label-triggered Agent context budget run also passed. Correction head:07bf274580dbec3b49d8a3a8d07246f0aee6754e. New-head checks/review are pending; older successful checks are not evidence for the correction. No merge/release performed. Cleanup verified: both temporary baselines removed; no installed node_modules, build output or typecheck artifacts remain outside untouched vendored reference fixtures. Tracked PR working tree is clean.Please concentrate review on migration-track coexistence, ownership/legacy paths, Cursor pool/failover and the SDK patch, MCP toolkit exposure/access, and the broad upstream orchestration changes. This is an unusually large merge; green focused tests are not a substitute for that review. Final source checks/builds passed, but broad-suite baseline failures and load sensitivity remain; no clean full-suite result is claimed. Do not merge or release automatically.
All 166 conflicted paths
Implementation: GPT-6.1 Sol via pi (shuvpi), continuing the prior Opus/Cursor merge work; Cursor producer correction and fresh baseline evidence also by GPT-6.1 Sol via pi (shuvpi).