Repository navigation
chore: sync with upstream (2026-10-27) - #70
Merged
Merged
Conversation
…e crash (pingdotgg#25345) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…nstall them by URL agent-device install-from-source picks the archive type from the download's filename, and the cache URL has no extension. Device pool workers can now fetch the dev client straight from the cache instead of the caller uploading it through the gateway. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Android clients are cached as the bare APK, not a tarball. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#24912) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
…24618) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dotgg#25358) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… instead of effect timers (pingdotgg#25363) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
`vp run mobile:e2e` now leases iOS and Android devices from the Simlock pool (SIMLOCK_AGENT_DEVICE_URL + AGENT_DEVICE_DAEMON_AUTH_TOKEN) instead of booting local simulators, and walks each of 12 poses (phone sizes, iPads, a fold, a tablet, dark mode, largest text) through the app: thread list, a thread, scrolling, typing, back, settings, then rotation or folding. Every screen gets generic layout checks that need no per-screen code: app in front, no error screen or launch dialog, no fixed control cut off by the screen edge, no sibling controls stacked, nothing under a system bar, no input under the keyboard. Transitions keep the video check for tabs lagging the screen, now measured against the recording's own first and last frames. Afterwards a headless Claude reviews each pose's screenshots for what the checks cannot see, and the findings land in the same report grid. `mobile:install --session` now has the session's host download the dev client from the shared cache with the read-only key, instead of uploading it through the gateway (13 s instead of 10+ minutes for an APK). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25409) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…by up to 10s (pingdotgg#25368) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…, iOS on EAS (pingdotgg#25390) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…allback (pingdotgg#25412) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#25415) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…e, not on every open (pingdotgg#25377) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…failing (pingdotgg#25371) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…provider and cwd (pingdotgg#25370) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…aft, not by the composer (pingdotgg#25376) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Poses now cover iPhone SE, iPhone 18 Pro, iPhone Duo folded and unfolded, iPad Pro 13" in both orientations, Pixel 10 Pro, Pixel 10 Pro Fold folded, unfolded and unfolded landscape, and Pixel Tablet in both orientations. Landscape poses rotate once the app is up (a rotation during launch is lost) and check that the screen really is wider than tall. Taps fall back to the element's centre when agent-device refuses a covered ref, and a gateway whose workers briefly reconnect is retried. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The --prepare flag from pingdotgg#25390 had no default, so effect/cli made it required and every mobile:install failed with "Missing required flag". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
agent-device names rotations relative to the device's natural orientation, which is landscape on the Pixel Tablet and an unfolded Fold, so "landscape-left" turned them portrait. The runner now asks for a shape and tries each rotation until the screen has it. It also prepares each platform's dev client before leasing, rides out longer worker drops, and skips the Duo poses by default until agent-device can fold Simlock's simulators. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dotgg#25714) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#25710) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25704) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…fter render (pingdotgg#25706) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#21383) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… reconnect (pingdotgg#25712) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25731) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s refetch by construction (pingdotgg#25732) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…5753) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…idget stops re-rendering on every presentation change (pingdotgg#25740) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…achable environment (pingdotgg#25703) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… pickers drop timer and sync effects (pingdotgg#25733) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
pingdotgg#25766) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25759) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…utton's focus ring and tooltip (pingdotgg#25774) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…elow the header (pingdotgg#25765) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s send Max Mode (pingdotgg#21074) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…e charts (pingdotgg#25776) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gg#25660) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25672) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#24942) Co-authored-by: maria-rcks <maria@kuuro.net>
…ingdotgg#25782) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…25785) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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.
Merges 126 commits from
upstream/main(up to394929af76) into the fork.Conflicts and resolutions
SettingsSidebarNav.tsx,settingsSearch.ts, mobileSettingsRouteScreen.tsx): upstream added Threads, Browser, Devices, Worktrees, Access, Maintenance, Labs and About, and renamed Integrations to Browser (old links redirect). Kept the fork's Tools and MCP servers pages and dropped the fork's/settings/integrationsentries, which now redirect. On mobile, the fork's MCP servers row now sits under Agents next to Providers.routeTree.gen.ts: regenerated with the TanStack router generator. It includes both upstream's new routes and the fork'sai-pm,settings/toolsandsettings/mcp-servers._chat.tsx: upstream moved the global shortcuts intoshortcuts/chatRouteCommands.ts(refactor(web): chat route shortcuts register once instead of rebuilding on every store change pingdotgg/t3code#25366). Took upstream's file and ported the fork's project-scoped "new thread" behaviour (from the multi-project sidebar filter, feat(web): filter the sidebar by several projects at once #67) intochatRouteCommands.ts.ChatView.tsx: upstream removeduseAgentOpenedPreviews(fix(web): devices agents open in background threads now show up pingdotgg/t3code#25714, the logic moved intouseRightPanelActions). Kept the fork'suseAgentOpenedDocscall and import, plus upstream's new import.ChatComposer.tsx: kept the fork'smergeProjectDisabledSkillsimport. Dropped the now-unuseduseDelayedStatusimport.CodexAdapterV2.ts: kept both sides' imports.McpHttpServer.ts: upstream split outlayerTools, which the newAgentContextBudget.test.tsuses.layerToolskeeps upstream's toolkits only. The fork's toolkits (Docs, AI PM, MCP servers, skill trash, skill library) and the upstream MCP route are merged intolayer.T3_MCP_TOOLKITSis unchanged.composer.md,project-settings.md): took upstream's new settings page names and kept the fork's Tools references.Judgment calls
effectFnOpportunitydiagnostic from a suggestion to an error. That flagged 30 sites in fork-only server code: DocCommentsService, McpServerOAuth, McpServerRegistry, McpUpstreamClients, McpServerTools, SkillLibrary, the tools toolkit handlers and McpHttpServer. All were rewritten to namedEffect.fn("Module.op"). In McpServerOAuth, three functions had a manualwithSpanwith the same name, so it was removed to avoid a duplicate span.AgentContextBudget.test.ts(new upstream test) fails on the fork by design. The fork's own instructions and its additions to the tools toolkit make agent context larger than upstream's committed budget: the Claude system append is 6294 bytes, the Codex context 6842 and the MCP tool list 57676, versus upstream's lower values. I added aSkillLibrarymock so the test can build its layer at all. I leftagentContextBudget.jsonat upstream's values, so the file won't conflict on every sync. The CI workflow that enforces the budget is disabled on the fork. Decision for Riccardo: keep it as a known fork failure, or commit fork budget values and accept occasional conflicts in that JSON.Verification
node scripts/fork-brand.ts --check: applies cleanly to 179 files.vp run typecheck: clean inapps/server,apps/web,apps/mobileandpackages/contracts.apps/serverfork tests (mcpHub, mcpServers, skills, docs, aipm, ForkSchema, McpHttpServer, MCP toolkits, CodexAdapterV2): 259 passed. The 1 failure is the AgentContextBudget test above.apps/web: settingsSearch, sidebarProjectGrouping, docs, chatThreadActions andchatRouteCommands.browser.test.tsall pass.vp ilockfile churn was discarded.Model and harness: Claude Opus 5.5 in Claude Code (T3 Code daily upstream sync task).
🤖 Generated with Claude Code