Skip to content

chore(sync): merge pingdotgg/t3code main - #380

Merged
Yarden-zamir merged 17 commits into
mainfrom
fork-sync/2026-10-27-0110
Oct 27, 2026
Merged

Yarden-zamir merged 17 commits into
mainfrom
fork-sync/2026-10-27-0110

Conversation

@Yarden-zamir

Copy link
Copy Markdown
Owner

Cause

Fork Sync run 40430754579 stopped on merge conflicts in 9 files. The batch has 13 upstream commits, up to becf853 "fix(web): PDF search finds phrases that wrap across lines (pingdotgg#25702)". The conflicts come from 4 of them:

pingdotgg#24635 also adds an evals package that imports taskPrompt from OrchestratorMcpService.ts.

Conflicts and resolution

Web

  • ThreadRouteView.tsx: upstream file, with the fork changes applied again:
    • A terminal thread renders ForkTerminalThreadScreen, and never ChatView. This also holds for a promoted draft on its way to a terminal thread.
    • useSettleNavigationTraverse stays.
    • Back and forward history: upstream now renders <Navigate to="/"> for a missing draft. The fork needs leaveMissingRoute, so that back and forward skip a missing entry. A small effect runs leaveMissingRoute around the same redirect. The missing server thread redirect also goes through leaveMissingRoute, as before.
  • QueuedRunsControl.tsx: upstream's new "Up next" list, with the fork behaviour applied again:
    • The "Queue paused" row with "Resume queue", under the list heading.
    • Resume after a usage limit (onResumeLimitedThread), and no resume during a queued message edit.
    • ShortcutHint in the edit and steer tooltips. The fork keeps no shortcut label props.
  • ThreadActivityBanners.tsx: upstream's ThreadNowItem and new dot colors. The fork background work details (BackgroundWorkIcon, BackgroundWorkText) still wrap the icon and title.
  • appInit.tsx: the fork navigation history import next to upstream's subscribeDraftThreadPromotion.
  • ChatComposer.tsx: upstream dropped the ReactNode import. The fork forkLeadingControl prop needs it, so it is back.

Server

Mobile

  • App.tsx, Stack.tsx, AssistantPanel.tsx: upstream starts the outbox delivery and attachment uploads as module services in App.tsx. index.ts imports App.tsx for both the app and the Android assistant panel, so the services run once per JS runtime. thread-outbox-worker.tsx wrapped the deleted hooks, so it becomes app-services-host.tsx. That file only keeps the singleton host for the relay sign-in (CloudAuthProvider), which the panel mounts on a cold start until the app root mounts. ReadAloudWorker stays.
  • SettingsServerControlsRouteScreen.tsx, ThreadSettingsSections.tsx: upstream merges New threads and Thread behavior into one Threads page. ForkMobileNewThreadsServerSection follows "Default permissions", and ForkMobileThreadsSection follows auto-settle there. Thread behavior became Labs, without fork rows.

Upstream merge

Merges pingdotgg/t3code main at becf853.

Adopted upstream pull requests

Upstream changes in fork areas

27 files changed on both sides. Besides the conflicts above:

  • Composer (feat(web): thread state lives at the end of the timeline, not stacked on the composer pingdotgg/t3code#25401): the tasks badge, activity row and queue attachment leave the composer. The fork Terminal mode toggle, citations without a note anchor and alternate send hint do not use them.
  • System banners: banners get a group, and the version mismatch banner moves to the sidebar pill. The fork quiet reconnect delay still sets the reconnect grace.
  • Mobile threads and new task flow: the pending-task editor and the inspector sync effects are removed. The fork terminal thread and card layout code merges cleanly.

Docs

  • docs/fork/features.md: the mobile "Thread behavior" and "Server settings > New threads" are now "Threads".
  • Fork comments: two fork comments use the new names.
  • Adopted list: the reason line in scripts/fork-adopted-upstream-prs.json names Settings > Environments.

Checks

  • checks.py: typecheck, migration check, adopted pull request check, format, lint and knip pass.
  • fork_tests.py: 181 fork test files pass locally (119 root and 62 web). The apps/server fork test files are left to Fork CI.
  • SettingsServerControlsRouteScreen.test.tsx and both QueuedRunsControl browser tests pass.

Fork repair skill changes

None.

juliusmarminge and others added 17 commits October 26, 2026 16:19
…ft's insert point (pingdotgg#25681)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ke on CI (pingdotgg#25664)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…er-picker listener (pingdotgg#25667)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ender loop (pingdotgg#25678)

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ask drafts (pingdotgg#25684)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… on the composer (pingdotgg#25401)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…fects (pingdotgg#25615)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25682)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… synchronizing effects (pingdotgg#25614)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…25702)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
RemoteDelegation.start resumes every open remote task at once, and each
follower read its parent's whole subagent list to find one task, then held
it across a wait of up to ten minutes. A parent with 1,441 tasks (35 MB of
payload) and 122 open ones made every restart decode ~170k records and hold
8 GB, so the server ran out of heap seconds after starting and crash-looped.

getThreadRecords now takes a subagentIds filter. Followers, and task_status
waits that re-read on every parent subagent.updated, read just their task.
Against a copy of the affected database the startup fan-out drops from 8.2 GB
retained over 21.6 s to 8 MB over 61 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…7-0110

# Conflicts:
#	apps/mobile/src/App.tsx
#	apps/mobile/src/Stack.tsx
#	apps/mobile/src/features/settings/SettingsServerControlsRouteScreen.tsx
#	apps/mobile/src/features/settings/ThreadSettingsSections.tsx
#	apps/server/src/mcp/OrchestratorMcpService.ts
#	apps/web/src/appInit.tsx
#	apps/web/src/components/ThreadRouteView.tsx
#	apps/web/src/components/chat/QueuedRunsControl.tsx
#	apps/web/src/components/chat/ThreadActivityBanners.tsx
@Yarden-zamir
Yarden-zamir merged commit 8eb1359 into main Oct 27, 2026
20 of 21 checks passed
@Yarden-zamir
Yarden-zamir deleted the fork-sync/2026-10-27-0110 branch October 27, 2026 02:15
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.

3 participants