coil: resolve upstream sync (run 31834625372) - #101
Merged
Conversation
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.
Automated daily rebase escalated (run 31834625372) — resolved by hand. Fixes #91.
Upstream range
78f462c4e(v0.0.33, the 2026-08-10 merge-base) →196c8ea0— 95 upstream commits, with the fork's 159 patches replayed on top.Conflicts and how each was resolved
apps/mobile/src/features/threads/ThreadComposer.tsxThreadSettingsSheet/use-thread-settings-sheet-presentationimports (ExistingThreadSettingsRouteSession,NavigationWithFinishTransitioning), re-adding only the fork'sresolveComposerSendLabel.sendLabel: kept the fork's helper call, dropping theactiveThreadBusyargument (see the semantic change below). Toolbar: kept upstream's newComposerInlineControl(withemphasized) in place of the oldComposerToolbarTrigger, and re-attached the fork's "Insert line break" button beside it — the same shape as the previous sync's resolution.apps/web/src/components/ChatView.tsxregisterFaviconProjectForThreadand the fork's three outbox imports.apps/desktop/src/backend/DesktopBackendConfiguration.test.tsdescribeanchor. Both blocks kept — upstream'sserver.asarWSL test first, then the fork's threeNODE_OPTIONSheap-headroom tests.apps/web/src/components/chat/ComposerPrimaryActions.tsxdocs/coil/SEAMS.mdflags. Upstream pingdotgg#6183 (theme-aware environment artwork) brought thestageBackdropVarianttreatment andStageBackdropButtonArtback; both were re-taken from upstream into the hoistedsendButton, keeping only the fork'sisRunningaria-label branch. The stale comment claiming upstream had moved off the stage backdrop was corrected.pnpm-lock.yaml(×2)scripts/build-desktop-artifact.tsserver.asarsidecar and two newDESKTOP_FILE_EXCLUSIONSentries. Took all of upstream's new content and re-appended the fork's...coilExtraFileExclusionsspread as the array's last entry.Semantic changes upstream made to seams the fork hooks into
resolveComposerSendLabel(logic mirror) followed upstream fix(mobile): steer active turns by default pingdotgg/t3code#6543fix(mobile): steer active turns by default. Upstream removedactiveThreadBusyfromThreadComposerPropsentirely and dropped it from thesendLabelternary, so the fork's mirrored helper, its type, its doc comment and its test lost that condition too. Left unchanged this would not have compiled — but that is luck, not a guard: the mirror is exactly the shapeSEAMS.mdwarns about, where a fork call site quietly ignores a changed upstream condition.ComposerPrimaryActionssend-button hoist re-derived against upstream feat(web): make environment artwork theme aware pingdotgg/t3code#6183 (see the table).orchestration/decider.tsandapps/server/src/http.ts(both mirrors byte-stable), and all four steering-allowlist adapters (ClaudeAdapter/CursorAdapter/GrokAdapter/OpenCodeAdaptersendTurn) have zero upstream commits in this range, soSTEERABLE_PROVIDER_DRIVER_KINDSis still accurate.apps/coil-home/:apps/marketing/had zero upstream commits this range — nothing worth porting.__root.tsx(4 components),_chat.$environmentId.$threadId.tsx(AutoResumeOverlay),server.ts(CoilLayerLive/CoilRoutesLive),serverRuntimeStartup.ts(reconcile.interrupted-turns),SettingsPanels.tsx(notifyOnNeedsInput),SidebarChrome.tsx(APP_WORDMARK_SUFFIX, despite 6 upstream commits on that file),build-desktop-artifact.ts(T3X_DESKTOP_APP_ID).Lockfile
Both lock conflicts were resolved to the fork's pre-sync lock, then
pnpm installregenerated it against upstream's new manifests. Every resolution the 2026-08-08 / 2026-08-11 security sweeps depend on survived, re-verified individually: undici 6.28.0 / 7.29.0 / 8.10.0, js-yaml 4.3.1, postcss 8.5.26, svgo 4.0.2, astro 7.2.0, sharp 0.35.3,@modelcontextprotocol/sdk1.30.0,@hono/node-server2.1.0, electron 41.10.3. The 23-lineoverrides:block inpnpm-workspace.yamlapplied cleanly. Net movement is upstream's own manifest churn:@legendapp/list3.3.3 → 3.3.5 (now a catalog entry), newculori/jszip/jsonc-parser/@electron/asar/msgpackr-extractdeps, and re-hashed patch entries.Dropped patches
One, and it is a merge artefact rather than an upstream absorption.
fix(deps): restore the security sweep's resolutions lost in the syncbecame empty: both lock commits in the series resolve to the fork's pre-sync lock, which already contains that repair, so the later commit had nothing left to apply. The behaviour it restored is present in the tree — see the version list above. Fork patch count is 158, was 159.Verify
All three green on this branch.
vp run typecheckdecider.ts,workflowScriptQuery.ts,GitHubPullRequestCli.ts, …).vp run lintpullRequest/**,scripts/lib/cli-external-packages.test.ts).vp run test --testTimeout=120000Reviewer notes
mainis not an ancestor. Land it per Landing a sync PR.server.asarsidecar has its ownWINDOWS_SERVER_ASAR_IGNORE_GLOBS, which mirrorsDESKTOP_FILE_EXCLUSIONSby hand. The fork'sT3X_DESKTOP_FILE_EXCLUSIONShook feeds onlyDESKTOP_FILE_EXCLUSIONS, so the fork's 67 globs do not reach the sidecar. That is arguably correct — the fork's globs target app.asar payload (source maps, Clerk browser SDK, the shiki tree) while the sidecar holds the server tree — but it is a new upstream packing path that the fork's size work has never seen, and it wants its own look before the next Windows release.docs/coil/SEAMS.mdis not re-baselined in this PR: the ledger's own instructions make that a full regeneration against the new merge-base, which is a separate change rather than a sync resolution.