Skip to content

Fix Expo widget asset wiring order#3763

Merged
juliusmarminge merged 1 commit into
mainfrom
t3code/fix-widget-embed
Jul 7, 2026
Merged

Fix Expo widget asset wiring order#3763
juliusmarminge merged 1 commit into
mainfrom
t3code/fix-widget-embed

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Jul 7, 2026

Copy link
Copy Markdown
Member

Summary

  • Reordered the mobile Expo plugins so withWidgetLogoAsset registers before expo-widgets, ensuring its Xcode mods run after the widget target is created.
  • Made widget asset wiring fail loudly when the target is missing instead of silently skipping, which prevents shipping a widget without its logo assets.
  • Updated the widget asset-catalog script and plugin comments to reflect the new ordering and failure behavior.

Testing

  • Not run (PR description only).
  • Existing project checks should still be run before merge: vp check and vp run typecheck.
  • For mobile changes, also run vp run lint:mobile.

Note

Medium Risk
Changes only mobile iOS prebuild/plugin wiring, but incorrect ordering or a thrown error could block releases until fixed; the fix directly affects widget extension assets in production builds.

Overview
Fixes iOS widget branding by reordering Expo config plugins so withWidgetLogoAsset is registered before expo-widgets. Same-type mods run last-registered-first, so this makes the logo plugin run after expo-widgets creates ExpoWidgetsTarget and after its dangerous mod clears ios/ExpoWidgetsTarget/—the previous order caused a fresh prebuild to no-op and ship widgets without the T3 mark (prod build 8).

Fails loudly instead of silently skipping: addWidgetAssetCatalog now throws if the widget Xcode target is missing, and the actool shell phase errors if Assets.xcassets is absent. Comments and the one-off wire-widget-asset-catalog script message were updated to match.

Reviewed by Cursor Bugbot for commit 89ae300. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Expo widget asset wiring by registering withWidgetLogoAsset before expo-widgets

  • Reorders plugins in app.config.ts so withWidgetLogoAsset is listed before expo-widgets, ensuring its mods run after expo-widgets' mods (same-type mods execute in reverse registration order). This prevents expo-widgets from wiping the asset catalog and ensures the widget target exists before asset wiring.
  • Changes addWidgetAssetCatalog in addWidgetAssetCatalog.cjs to throw an error when the PBXNativeTarget is missing instead of silently returning false, causing prebuild to fail fast on misconfiguration.
  • The Xcode shell-script build phase now exits with code 1 (error) instead of 0 (warning) when the widget asset catalog is missing at build time.

Macroscope summarized 89ae300.

- Register the widget asset plugin before expo-widgets so its mods run after target creation
- Fail fast when the widget catalog or target is missing instead of silently skipping
- Update the wiring script log to reflect the new behavior
@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 78e68d09-c9fa-4024-b337-40395ba2d95f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/fix-widget-embed

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Jul 7, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Build configuration fix that corrects Expo plugin ordering for widget asset wiring. Changes are limited to build-time behavior, making error handling stricter rather than silently failing. Self-contained bug fix with clear intent.

You can customize Macroscope's approvability policy. Learn more.

@juliusmarminge
juliusmarminge merged commit bdf5aed into main Jul 7, 2026
16 checks passed
@juliusmarminge
juliusmarminge deleted the t3code/fix-widget-embed branch July 7, 2026 09:00
znoraka pushed a commit to znoraka/t3code that referenced this pull request Jul 7, 2026
znoraka added a commit to znoraka/t3code that referenced this pull request Jul 7, 2026
The pingdotgg#3759/pingdotgg#3762/pingdotgg#3763/pingdotgg#3768 rebuild changes the native binary (widget
asset catalog, splash launch screen, widget-extension JS bundle), so it
must serve OTA updates under a fresh runtimeVersion. Reusing 1.0.0 would
let the self-hosted expo-updates-go server hand this build's bundles to
older 1.0.0 installs (and vice versa). Monotonic bump; 1.1.0 has never
been published for t3-code.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
adamfgr pushed a commit to agriffiths-bots/t3code that referenced this pull request Jul 9, 2026
* Improve live activity routing and diagnostics (pingdotgg#3685)

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

* Use variant-specific splash icons in mobile app (pingdotgg#3762)

* Fix Expo widget asset wiring order (pingdotgg#3763)

* Extend Done display to 15 minutes and show up to 5 Live Activity banner rows (pingdotgg#3761)

* Lead with the outcome when no agents are active in the Live Activity (pingdotgg#3768)

* Add T3 Connect onboarding for mobile and web (pingdotgg#3765)

* Revert "Add T3 Connect onboarding for mobile and web" (pingdotgg#3776)

* Expose Clerk Google sign-in env vars to Expo (pingdotgg#3772)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Revert "Revert "Add T3 Connect onboarding for mobile and web"" (pingdotgg#3777)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Use rounded depth logo for production splash screen (pingdotgg#3780)

Co-authored-by: Cursor Agent <cursoragent@cursor.com>

* Upgrade Clerk toolchain to latest versions (pingdotgg#3785)

* fix(release): bump electron-builder so pnpm 11 deduped deps land in the asar (pingdotgg#3790)

* chore: regenerate pnpm-lock after upstream sync (20260709)

Reconcile the lockfile with the fork's package.json set (croner, web-push,
hast-util-*, etc.) after cherry-picking upstream's Clerk toolchain and
electron-builder bumps. Frozen-lockfile install verified.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Rowan <rowan@cardow.co>
Co-authored-by: wizzoapp[bot] <254688279+wizzoapp[bot]@users.noreply.github.com>
tarik02 added a commit to tarik02/t3code that referenced this pull request Jul 13, 2026
* Add middle-click close for right panel tabs (pingdotgg#3161)

Co-authored-by: Julius Marminge <jmarminge@gmail.com>

* fix: warm WSL before preflight in WSL-only backend mode (pingdotgg#3588)

* Add Claude Sonnet 5 as the default Claude model (pingdotgg#3620)

* Restore the ultrathink frame border effect (pingdotgg#3625)

* fix(dev): Fix electron dev launch and add test (pingdotgg#3662)

* Add adaptive split-view layout for iPad/mobile workspace (pingdotgg#3514)

Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(mobile): compile patched native pods from source on EAS (pingdotgg#3667)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Make the thread composer read as elevated liquid glass (pingdotgg#3668)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Upgrade Vite Plus and enable bundled dev opt-in (pingdotgg#3679)

* Surface pending tasks in mobile home and draft flow (pingdotgg#3670)

* fix(mobile): combined test branch — scroll, back-swipe, thread lists, computer switching (pingdotgg#3687)

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

* Add repo-root favicon.svg so t3 code shows its own icon (pingdotgg#3683)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Load thread snapshots over HTTP before live sync (pingdotgg#3719)

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

* Fix mobile legend anchor under automatic iOS insets (pingdotgg#3684)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Improve live activity routing and diagnostics (pingdotgg#3685)

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

* Prevent Add Project sheet from collapsing on relayout (pingdotgg#3759)

* Use variant-specific splash icons in mobile app (pingdotgg#3762)

* Fix Expo widget asset wiring order (pingdotgg#3763)

* Extend Done display to 15 minutes and show up to 5 Live Activity banner rows (pingdotgg#3761)

* Clear VCS presentation state on finish (pingdotgg#3764)

* Lead with the outcome when no agents are active in the Live Activity (pingdotgg#3768)

* Add T3 Connect onboarding for mobile and web (pingdotgg#3765)

* Revert "Add T3 Connect onboarding for mobile and web" (pingdotgg#3776)

* Expose Clerk Google sign-in env vars to Expo (pingdotgg#3772)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Set up Cursor Cloud dev environment (web + Android toolchain) (pingdotgg#3755)

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Theo Browne <t3dotgg@users.noreply.github.com>

* Revert "Revert "Add T3 Connect onboarding for mobile and web"" (pingdotgg#3777)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Use rounded depth logo for production splash screen (pingdotgg#3780)

Co-authored-by: Cursor Agent <cursoragent@cursor.com>

* fix(release): stage pnpm 11 allowBuilds for desktop installs (pingdotgg#3781)

Co-authored-by: Cursor Agent <cursoragent@cursor.com>

* Upgrade Clerk toolchain to latest versions (pingdotgg#3785)

* fix(release): bump electron-builder so pnpm 11 deduped deps land in the asar (pingdotgg#3790)

* Fix desktop native optional dependency packaging (pingdotgg#3816)

* [codex] Upgrade Clerk stack (pingdotgg#3821)

Co-authored-by: codex <codex@users.noreply.github.com>

* [codex] Preserve worktree metadata during branch sync (pingdotgg#3822)

Co-authored-by: codex <codex@users.noreply.github.com>

* feat(client): persist offline environment data and mobile preferences (pingdotgg#3795)

Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: codex <codex@users.noreply.github.com>

* [codex] Label max and ultra reasoning (pingdotgg#3824)

Co-authored-by: codex <codex@users.noreply.github.com>

* fix(mobile): embed fonts and render project favicons reliably (pingdotgg#3823)

Co-authored-by: codex <codex@users.noreply.github.com>

* Show compact PR number badges in mobile thread rows (pingdotgg#3827)

Co-authored-by: codex <codex@users.noreply.github.com>

* Expose mobile PR indicator labels to accessibility (pingdotgg#3828)

Co-authored-by: codex <codex@users.noreply.github.com>

* Fix truncated chat error alert layout (pingdotgg#3899)

* fix(marketing): show platform-appropriate commit shortcut on the website (pingdotgg#3644)

* [codex] Add Android mobile support (pingdotgg#3579)

Co-authored-by: Horus Lugo <horusgoul@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius@mac.lan>

---------

Co-authored-by: Hugo Blom <6117705+huxcrux@users.noreply.github.com>
Co-authored-by: Julius Marminge <jmarminge@gmail.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Theo Browne <t3dotgg@users.noreply.github.com>
Co-authored-by: Rowan <rowan@cardow.co>
Co-authored-by: Patricio Gómez Meneses <107218376+Prgm-code@users.noreply.github.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Vedank Purohit <VedankPurohit2@gmail.com>
Co-authored-by: Horus Lugo <horusgoul@gmail.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). 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.

1 participant