Skip to content

chore(coil): merge upstream/main ba79610d16 (192 commits) - #160

Merged
radroid merged 200 commits into
mainfrom
coil/sync-20260928
Sep 28, 2026
Merged

radroid merged 200 commits into
mainfrom
coil/sync-20260928

Conversation

@radroid

@radroid radroid commented Sep 28, 2026

Copy link
Copy Markdown
Owner

The daily sync failed five days running (issue #159), on conflicts in channels.ts, ComposerPrimaryActions.tsx and __root.tsx. This merges upstream ed57bed8e7 (191 commits), plus a one-commit second pass (ba79610d16) that landed during verification. It lands as merge commits, so the merge-base advances.

Conflicts

  • Six retired workflows (ci, deploy-relay, mobile-eas-preview, mobile-showcase-screenshots, release-desktop, release): kept deleted, per scripts/coil/sync-upstream.sh. No new upstream workflows arrived.
  • apps/desktop/src/ipc/channels.ts: kept both. Upstream's TRACKPAD_SCROLL_END_CHANNEL sits above the fork's notification channels. Still +10/-0.
  • apps/web/src/routes/__root.tsx: kept both imports, upstream's RunningThreadKeepAlive beside the fork's coordinators. Still +9/-0.
  • ComposerPrimaryActions.tsx: kept the fork's split stop-button base class, and moved upstream's new inset-shadow tokens (fix(web): appearance classes use theme tokens and scale values pingdotgg/t3code#13397) into filledStopEmphasis.

The lockfile merged textually and installs with --frozen-lockfile. The security sweep's pins are unchanged (sharp, nanoid, tar, undici, astro).

Fixes made during the sync

Seam review

  • Four read-only reviewers covered web chat/queue, server, desktop/packaging, and settings/sidebar/mobile. The only findings are the fixes above.
  • Checked and clean:
    • Server: ClaudeAdapter's new interrupt() Stop path vs. the loop hooks, and upstream's T3 Connect tunnel rewrite in server.ts vs. CoilLayerLive.
    • Desktop: the new boot.cjs / compile-cache entry, and the .deb self-update path, which stays unreachable because the fork's update feed is disabled.
    • Settings: fork sections registered in nav and search. notifyOnNeedsInput follows upstream's new settings-field pattern.
  • Accepted: upstream's queued sends no longer pass through onSend, so the fork's logComposerDispatchNow breadcrumb does not log them. This is diagnostics only and is noted in SEAMS.
  • Ledger re-baselined: 78 files, +2553/-5111 against ba79610d16, with churn and risk regenerated for every row. The code footprint moved by six lines.

Verification (local)

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

  • vp run lint: 0 errors.

  • Tests, run per package:

    Package Result
    web 426 files / 5737 tests
    server 391 files / 6051 tests
    desktop 120 files / 1469 tests
    mobile 191 files / 1727 tests
    client-runtime 98 files / 1689 tests
    relay 344 tests
    all other packages pass
    • web: 2 fork toggle tests pinned the old class spelling of the transition. They were updated, and 11/11 now pass.
    • mobile: 1 file needs swiftc, which this Mac can't run until the Xcode license is accepted.
    • desktop: 1 file first failed only on a racing lazy Electron download in the fresh worktree. It passes 26/26 on a re-run.
    • scripts: 1 upstream-owned test fails only on Apple Silicon: the cross-arch Windows probe targets arm64, which is not cross on this host. The fork's edits in that file are unrelated env hatches.
    • Second pass: typecheck and lint pass. The web settings/clerk tests and mobile state tests pass (479 + 254).
  • Built the desktop and server bundles. The bundle gate's collectRequiredPackages still requires 4 native externals, and none is excluded by the fork's packaging globs.

Not in this PR

  • There are 6 open Dependabot image-size alerts, opened 09-24/25 before this sync.
  • The undo-archive vs loop-guard one-way door recorded at the last sync is still open.

Closes #159

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

juliusmarminge and others added 30 commits September 22, 2026 12:48
…g#13104)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
pingdotgg#13144)

Co-authored-by: Apex by Callstack <noreply@callstack.com>
…tgg#13175)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…13189)

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
t3dotgg and others added 28 commits September 26, 2026 02:50
…th failed repacks (pingdotgg#13812)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…al (pingdotgg#13491)

Co-authored-by: eshaan Sood <eshaansood@192.168.1.14>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#13736)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…otgg#13935)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
…ncy improvement (pingdotgg#13884)

Co-authored-by: GPT-6 Astra <noreply@openai.com>
Conflicts resolved:
- .github/workflows/{ci,deploy-relay,mobile-eas-preview,mobile-showcase-screenshots,release-desktop,release}.yml:
  retired upstream workflows, kept deleted (scripts/coil/sync-upstream.sh policy).
- apps/desktop/src/ipc/channels.ts: upstream's TRACKPAD_SCROLL_END_CHANNEL above the fork's
  notification channels; both kept.
- apps/web/src/routes/__root.tsx: upstream's RunningThreadKeepAlive import beside the fork's
  coordinator imports; both kept.
- apps/web/src/components/chat/ComposerPrimaryActions.tsx: kept the fork's split stop-button base
  class and carried upstream's new inset-shadow tokens (pingdotgg#13397) into filledStopEmphasis.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Upstream pingdotgg#13210 turned shadcn/no-restyle, no-arbitrary-values, no-raw-colors and
no-unknown-classes into errors, and 45 findings in fork-owned web UI failed lint.

- Off-scale text sizes move to the theme scale (text-2xs, text-3xs, text-xs).
- The loop console's raw amber icon uses the theme's warning color.
- Queue becomes a composer-owned message-action pill, like upstream's Submit and Refine (pingdotgg#13209).
- Loop answer options use Button's sm-multiline size instead of hand-set padding.
- The two overlay Collapsibles space their panel with a margin instead of a gap.
- The auto-resume toggle's spring curve has no theme token, so it moves to an inline style.

The auto-resume capsule and loop console also still referenced
chat-composer-horizontal-inset, which upstream deleted in pingdotgg#6381, and a fixed max-w-3xl. They
now follow the composer's current geometry: --workspace-gutter-* padding and the Chat width
setting's --chat-max-width (pingdotgg#11594), so they stay aligned on wide chat layouts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Ports upstream pingdotgg#13611 and pingdotgg#13365 from apps/marketing. Upstream's new Linux .deb download card
is not ported: Coil does not publish Linux builds.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Upstream pingdotgg#13764 moved its in-memory queue's sender to the app root, so it now runs for every
thread, not just the open one. After a reconnect it and the fork's outbox drain can both find a
thread idle in the same tick. A message saved to the outbox while offline could then start its
turn ahead of a message queued earlier, during the running turn. The drain's hasQueuedTurnStart
check cannot see the earlier message while it is still preparing, because the server has no
record of it yet.

The drain now treats a thread as busy while upstream's queue holds a message that will leave on
its own. This is the rule upstream's onSend already applies to a new send. A message held for the
user after a failed send does not block. The change is entirely in fork-owned files.

Also drops a stale comment above the send button: it described a fork aria-label branch that no
longer exists, and the button is now byte-identical to upstream's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Remeasured against merge-base ed57bed: 78 files, +2553/-5111. Churn and risk regenerated for
every row. Records the design-system lint gate, the logic mirror that had been dead since pingdotgg#6381,
and the new parallel path between the outbox drain and upstream's root-level queue sender.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… account registration (pingdotgg#14127)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The spring curve moved from an arbitrary-value class to an inline style to pass upstream's
design-system lint, so the rendered markup spells it with spaces instead of underscores.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@radroid
radroid merged commit 6ffa75a into main Sep 28, 2026
2 of 3 checks passed
@radroid
radroid deleted the coil/sync-20260928 branch September 28, 2026 20:07
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 (verify-failed)