Skip to content

chore: sync fork with upstream main (1295 commits) - #20

Merged
deanjstone merged 1297 commits into
mainfrom
chore/sync-upstream-main-2026-09
Sep 5, 2026
Merged

deanjstone merged 1297 commits into
mainfrom
chore/sync-upstream-main-2026-09

Conversation

@deanjstone

Copy link
Copy Markdown
Owner

Summary

  • Merges pingdotgg/t3code@main into the fork after six weeks of drift (merge-base 2026-07-23, upstream tip 2026-09-04): 1295 commits behind, 12 ahead.
  • All 12 fork commits preserved. Three resolutions changed shape because upstream solved the same problem differently, or removed the ground a fork patch stood on.
  • Adds the previously-missing upstream remote (the clone only had origin).

Why

The fork had drifted far enough that it no longer picked up upstream fixes, and every conflict-prone file was one the fork had customized. Syncing now — rather than at 2000+ commits — keeps the PWA, theme, and CI customizations rebasable at all.

Notable resolutions

File Resolution
CLAUDE.md Upstream's regular file containing @AGENTS.md wins over the fork's symlink (#12). Same intent, and it survives checkout on Windows.
apps/web/src/index.css Upstream built a runtime theming system (data-theme-id, --app-theme-*) and added token roles the fork's palette never defined. Took upstream's structure whole; Dimidium reapplied as an appended default-palette override, so new roles resolve and a theme picked in Settings → Appearance still wins on specificity.
apps/web/src/index.css Dropped the [data-sidebar-version] overrides — upstream removed those selectors, so the rules were dead code.
ClaudeProvider.ts Upstream moved the capabilities probe from timeoutOption to Effect.timeout, so a timeout is now a failure rather than Option.none; the fork's two-branch warning collapses to one. The behavioural fix in providerInstances.ts merged cleanly.
manifest Merged both: upstream's id/scope/dark background_color + the fork's 192/512/maskable icons (upstream ships only 32px/180px, which is not installable on Android). Duplicate manifest.json removed.
10 CI workflows Blacksmith→GitHub-hosted runner swap reapplied across upstream's five new workflows; release.yml tag/schedule triggers re-disabled.
7 brand assets Regenerated from upstream's updated .icon sources via the fork's own no-macOS pipeline (37 assets), rather than picking a side.

Upstream added its own PWA manifest in this window but still ships no service worker, so the fork's vite-plugin-pwa integration continues to do real work.

Test plan

  • typecheck — exit 0, 0 TS errors, 15/15 packages (output was Effect language-service suggestions only)
  • Targeted tests — 61/61 passed across providerInstances.test.ts, brand-assets.test.ts, icon-composite.test.ts; providerInstances.test.ts specifically covers the warning-status fix, confirming it survived behaviourally
  • @t3tools/web build — exit 0, emits dist/sw.js + workbox with 2194 precache entries
  • Build output inspected directly: manifest.webmanifest + all PWA icons shipped to dist/; Dimidium values (#f5f3f1/#1a8e46 light, #141414/#37e57b dark) compiled into the CSS; display-mode: standalone inset rule present
  • Not verified: runtime behaviour on a real iPhone PWA install (needs a device)

Merge note

Merge this with a real merge commit, not a squash. Squashing 1295 upstream commits would make them non-ancestors of main, so the next sync would re-conflict on everything resolved here.

🤖 Generated with Claude Code

Lucenx9 and others added 30 commits September 3, 2026 09:35
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…9466)

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

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…9492)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
juliusmarminge and others added 22 commits September 4, 2026 19:23
…en reader (pingdotgg#5521)

Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…gg#4685)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Long runs display total minutes, such as `419m 50s`, which is hard to read.

Show `6h 59m 50s` instead. Web, desktop, and mobile use the shared formatter for long live, completed, and stopped runs.

## Verification

- 210 tests pass with `vp test run packages/shared/src/orchestrationTiming.test.ts apps/web/src/components/chat/MessagesTimeline.logic.test.ts apps/mobile/src/lib/threadActivity.test.ts`.
- Shared, web, and mobile typechecks pass.
- Changed-file lint and formatting pass, with existing lint warnings.
- Browser verification and screenshots skipped at Theo's request.

Created with GPT-6 Astra (preview) in Codex.
…s the binary (pingdotgg#9325)

Co-authored-by: Claude Code <noreply@anthropic.com>
Press ArrowUp in an empty composer to get the last prompt sent in this thread. ArrowUp again goes further back, ArrowDown comes forward, and going past the newest prompt clears the composer.

History is per thread and derived from the thread's user messages on the keypress, so nothing new is stored or synced. Send-time appends (terminal and element context, preview annotations, review comments, the ultrathink prefix) and app-composed sends are stripped. With text in the composer, arrows move the caret unless the caret is on the first or last visual line of an unedited recalled prompt. Modifiers, IME composition, menus, approvals, and pending questions take priority. Attachments are not restored.

Prior art: pingdotgg#1778 by @PratyushChauhan, pingdotgg#4336 by @mfazekas, pingdotgg#7952 by @sethwebster.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sync the fork with pingdotgg/t3code after six weeks of drift. All 12
fork commits are preserved; three resolutions changed shape because
upstream solved the same problem differently or removed the ground the
fork patch stood on.

- CLAUDE.md: take upstream's regular file containing `@AGENTS.md`. It
  achieves what the fork's symlink repair (#12) intended and does not
  break on Windows, where symlinks do not survive checkout.
- index.css: upstream built a runtime theming system (`data-theme-id`,
  `--app-theme-*`) and expanded the token set with roles the fork's
  palette never defined. Take upstream's structure whole and append
  Dimidium as a default-palette override, so every new role resolves and
  a theme selected in Settings still wins on specificity.
- index.css: drop the `[data-sidebar-version]` overrides. Upstream
  removed those selectors, so the rules were dead.
- ClaudeProvider.ts: upstream moved the capabilities probe from
  `timeoutOption` to `Effect.timeout`, making a timeout a failure rather
  than `Option.none`. The fork's two-branch warning collapses to one.
- manifest: merge both. Upstream's `id`/`scope`/dark background plus the
  fork's 192/512/maskable icons, which upstream's 32px/180px set lacks
  for installability. Drop the now-duplicate manifest.json.
- workflows: reapply the Blacksmith -> GitHub-hosted runner swap across
  upstream's five new workflows, and re-disable release.yml's tag and
  schedule triggers.
- brand assets: regenerate from upstream's updated icon sources via the
  fork's own no-macOS pipeline rather than picking a side.

Verified: typecheck exit 0 across 15 packages; 61/61 targeted tests
including providerInstances.test.ts, which covers the warning-status fix;
web build exit 0 emitting dist/sw.js and the merged manifest, with the
Dimidium palette and the standalone-mode inset present in the built CSS.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Sep 5, 2026
The upstream merge brought in ModelPickerContent.test.ts, a test added
during the six-week gap that asserts a provider collapses to its active
synthetic row in both "error" and "warning" status. It merged cleanly as
text but conflicts semantically with 1b96885, which deliberately stopped
hiding a provider's models while it is merely in warning status.

Drop the two "warning" rows from that table, leaving "error" as the only
status that still collapses the picker. This is the same migration
1b96885 applied to the fixtures it touched at the time; this test did
not exist yet to receive it.

Also fix formatting in index.css flagged by `vp check`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.