Skip to content

chore(coil): merge upstream/main 83bbfa7e87 (90 commits) - #158

Merged
radroid merged 95 commits into
mainfrom
coil/sync-20260922
Sep 22, 2026
Merged

radroid merged 95 commits into
mainfrom
coil/sync-20260922

Conversation

@radroid

@radroid radroid commented Sep 22, 2026

Copy link
Copy Markdown
Owner

The daily sync had been failing since 09-21 (issue #156) on conflicts in apps/desktop/src/ipc/channels.ts and pnpm-lock.yaml. This merges upstream 83bbfa7e87: 66 commits, plus a 24-commit second pass that landed upstream while the first was being verified. It lands as merge commits, so the merge-base advances.

Conflicts

  • .github/workflows/ci.yml: kept deleted. It is a retired upstream workflow, per scripts/coil/sync-upstream.sh.
  • apps/desktop/src/ipc/channels.ts: kept both sides. Upstream's PREVIEW_RECORDING_INPUT_CHANNEL goes above the fork's appended coil update block, so the seam stays +10/-0.
  • pnpm-lock.yaml: seeded from the fork's lock and regenerated with --lockfile-only. Every resolved version that moved went up (vite-plus 0.3.0 → 0.3.3, oxlint, oxfmt, @shadcn/lint). The security sweep's pins are unchanged.

The second pass had no conflicts.

Fix made during the sync

  • The offline queue now releases the attachment uploads it drops (2041766bee). Queued messages are text-only, so handleQueueComposerSubmission discards the composer's images and files. It never released their uploads. Upstream fix(web): retry failed attachment uploads after reconnect pingdotgg/t3code#10338 now keeps a failed upload alive and retries it on reconnect, and the queue runs mostly while disconnected. So every dropped attachment would have re-uploaded later and left an orphan pending upload. It now goes through releaseDraftAttachments, as upstream's own discard paths do. This is registered in the SEAMS parallel-paths table.

Seam review

  • Every code seam kept its exact pre-sync footprint through both passes. Only the retired ci.yml and the regenerated lock moved in the merge.
  • The ledger is re-baselined to 78 files, +2557/-5012, against 83bbfa7e87, with churn and risk remeasured. It also fixes stale pnpm-workspace.yaml totals (+23 → +29) that chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved #155 and fix(deps): patch Nanoid zero-size advisory #157 never updated.
  • Two read-only reviewers checked the web and the server/contracts/desktop/mobile semantics. No other breaks.
    • Checked and clean: the threadEnvMode export removal, message-sent events without a turnId, t3.json submodule settings, the OTLP settings refactor, and the attachment limit going from 8 to 100.
    • No apps/marketing changes to port to coil-home, and no new upstream workflows.

Verification (local)

  • vp run typecheck: all 17 packages pass, including scripts.

  • vp run lint: passes, warnings only.

  • Tests, run per package:

    Package Result
    web 415 files / 5652 tests, re-run after the second pass
    server 373 files
    desktop 116 files
    mobile 183 files
    all other packages pass
    • Server: 9 upstream-owned files failed only because of macOS /var → /private/var tmpdir symlinks. With TMPDIR resolved, all 286 of their tests pass. They are byte-identical to upstream and pass on Linux CI.
    • Mobile: 2 files need swiftc, which this Mac can't run until the Xcode license is accepted.
  • Built the desktop and server bundles (vp run --filter @t3tools/desktop --filter t3 build, which includes the web build and its license plugin).

    • Ran the bundle gate's collectRequiredPackages over them. The required native externals are unchanged, and none is excluded by the fork's packaging globs.
    • The full .app was not packaged locally, because the Xcode license blocks clang and iconutil.

Deferred (not sync fixes)

Closes #156

🤖 Generated with Claude Code — Claude Opus 5.5 (1M context), running in T3 Code

flamboh and others added 30 commits September 20, 2026 18:25
…10831)

Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
…tgg#12657)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…ion (pingdotgg#10098)

Co-authored-by: shivamhwp <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
…g#12808)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…off (pingdotgg#12807)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…s page (pingdotgg#12536)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…2243)

Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
…2805)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
pingdotgg#12833)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
radroid and others added 28 commits September 22, 2026 15:08
Queued messages are text-only, so handleQueueComposerSubmission clears the
composer's images and files without sending them. It never released their
uploads. Upstream pingdotgg#10338 now keeps a failed upload's job alive and retries it on
reconnect, and the queue path runs mostly while disconnected, so every discarded
attachment would silently re-upload later and leave an orphan pending upload.
Route the discard through releaseDraftAttachments like upstream's own discard
paths.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Measured against merge-base 17e3477: 78 files, +2557/-5012. Every code seam
kept its pre-sync footprint; only the retired ci.yml, the regenerated lock, the
pnpm-workspace overrides row (stale since #155/#157) and ChatView's queue fix
moved. Churn and risk remeasured; the queue path's attachment release is
registered as a parallel path.

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

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ve (pingdotgg#13033)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…s a Textarea (pingdotgg#13036)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Second pass: upstream moved while the first merge was being verified. No
conflicts; the range is web restyle refactors of components/ui.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@radroid
radroid merged commit c76b8b8 into main Sep 22, 2026
2 of 3 checks passed
@radroid
radroid deleted the coil/sync-20260922 branch September 22, 2026 19:33
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.

[coil-sync] daily sync needs attention (conflict)