Conversation
# Why To prevent high memory usage as recreating `JSContext` and loading whole bundle on each rerender is pretty expensive. # How Refactored rendering to use a shared JSC runtime instead of creating a new `JSContext` for every widget/live activity render or widget button interaction. This adds a shared `WidgetsJSRuntime` that: - Contains shared `JSContext` - Loads the ExpoWidgets JS bundle once - Caches evaluated layout functions by layout string # Test Plan Widgets and live activities should work as before (but faster) # Checklist - [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why Resolves ENG-11381 <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How Link to https://docs.expo.dev/workflow/ios-simulator/#troubleshooting when opening iOS simulator errors. <!-- How did you build this feature or fix this bug and why? --> # Test Plan Unit test. <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
) # Why https://linear.app/expo/issue/ENG-21273/fix-android-crash-in-frameratemonitor # How Change `mutableListOf` to `CopyOnWriteArrayList` - the recorders array is not muted often. # Test Plan 1. CI - added concurrent access test 2. ObserveTester # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why The banner gates rendering on a post-hydration `localStorage` read, so it pops in late and instantly shoves the page down. Same on dismiss in reverse. https://github.com/user-attachments/assets/c86e8d44-86ec-48aa-b8bf-6f08962b1770 # How CSS `grid-template-rows: 0fr → 1fr` transition — pure CSS, no JS measurement. - After hydration, render at `grid-rows-[0fr]`, flip to `1fr` on the next frame (`requestAnimationFrame`) so the browser actually interpolates. - Inner `min-h-0 overflow-hidden` so the grid item collapses below content size; `mb-6` moves inside so the margin animates with the height. - Entrance is sequenced: 250ms delay → 350ms height → 250ms opacity (starts at 600ms). Dismiss is 400ms simultaneous and `onTransitionEnd` commits the `localStorage` flag once the collapse finishes. - `motion-reduce:transition-none` for `prefers-reduced-motion`. # Test Plan - Hard reload — banner expands smoothly, content fades in after the height settles. - Click X — collapses smoothly, stays dismissed across reloads. - Reduced motion — entrance and dismiss are instant. - Light/dark themes and `max-md-gutters` / `max-sm-gutters` breakpoints. https://github.com/user-attachments/assets/fc00b04b-ec42-4dbe-8816-23253661e0c4
## Why Tailwind v3 leftovers in the docs codebase, plus the Next.js and styleguide bumps that depend on them. Folds in #45612. ## How - **Gutters → standard breakpoints.** `max-{sm,md,lg,xl,2xl}-gutters:` → `max-{sm,md,lg,xl,2xl}:`, `lg-gutters:` → `lg:` across 47 files. Drop the `max-md-gutters:` ignore from `eslint.config.mjs`. Fix `max-md-gutters::flex-col` typo in `Authentication/Box.tsx`. `.diff-code`: `word-break` → `overflow-wrap`. Snapshot updated. - **Next.js 16.2.3 → 16.2.6.** Static-export build-trace patch regenerated against new line numbers; patched conditions unchanged. - **Styleguide bump.** `@expo/styleguide` 14.1.3→14.1.5, `@expo/styleguide-icons` 4.2.3→4.2.4 (now dual ESM/CJS, no more Jest mocks under `--experimental-vm-modules`), `@expo/styleguide-search-ui` 9.1.3→9.1.6 (CMD+K flicker fix). Add `transformIgnorePatterns: ['\\.mjs$']` so `next/jest` SWC stops rewriting native ESM. Two snapshots refreshed for upstream Figma glyph updates. - **Drop `@custom-variant max-{sm,md,lg,xl,2xl}` compat block** from `tailwind-compat.css`. 14.1.5 dropped its v3 `screens` block, so v4 registers the standard min/max variants natively. - **Preserve gutter widths via local `screens` override.** Add `screens: { sm: 468, md: 788, lg: 1008, xl: 1328, 2xl: 1572 }` to `tailwind.config.cjs`. Without it, `max-{breakpoint}:` would resolve to TW4 defaults (640/768/1024/1280/1536), most noticeably widening `max-sm:` from 468px to 640px. Same pattern universe uses (`server/website`, `server/internal`). - **Fix misplaced `!` in arbitrary values.** `leading-[100!%]` → `leading-[100%]!`, `text-[90!%]` → `text-[90%]!` (3 files). Leftovers from the v3→v4 important-syntax flip; TW4 was emitting `line-height: 100!%` / `color: 90!%` and triggering CSS-optimizer warnings. ## Test Plan - [x] `pnpm lint`, `pnpm format`, `pnpm test` (337/337) - [x] `pnpm dev`, CMD+K opens without flicker - [ ] Sidebar, Footer at mobile and tablet - [ ] Home grid sections behave at the original gutter breakpoints - [ ] Search dialog mobile layout - [ ] `.diff-code` long-line wrapping
# Why There is some left over code on Android: - DB entries no longer need to extend `Record` - Some functions are unused on DAO Additionally the `getStoredEntries` function is only used in the observe-tester app, and blocks removal of some of the expo-modules-core annotations from entries. On iOS it fallbacks to `[]` anyway # How <!-- How did you build this feature or fix this bug and why? --> # Test Plan 1. CI 2. Observe tester # Checklist <!-- Please check the appropriate items below if they apply to your diff. --> - [ ] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
jest-expo@56.0.3 expo-widgets@56.0.9 expo-video@56.1.1 @expo/ui@56.0.8 expo-splash-screen@56.0.7 expo-observe@56.0.9 expo-router@56.2.1 expo-modules-jsi@56.0.5 expo-modules-autolinking@56.0.7 expo-modules-core@56.0.9 expo-linking@56.0.8 expo-gl@56.0.4 expo-font@56.0.4 expo-file-system@56.0.5 expo-codemod@56.0.4 expo-brownfield@56.0.10 expo-audio@56.0.7 expo-app-metrics@56.0.9 expo-age-range@56.0.4 expo@56.0.0-preview.12 @expo/require-utils@56.1.1 @expo/metro-file-map@56.0.3 @expo/metro-config@56.0.9 @expo/cli@56.1.5 expo-template-tabs@56.0.12 expo-template-default@56.0.12 expo-template-blank-typescript@56.0.12 expo-template-blank@56.0.12 expo-template-bare-minimum@56.0.12 @expo/log-box@56.0.10 @expo/config@56.0.6 @expo/image-utils@0.9.3 @expo/prebuild-config@56.0.8 @expo/fingerprint@0.18.2 expo-asset@56.0.10 expo-constants@56.0.11 expo-task-manager@56.0.9 expo-build-properties@56.0.9 expo-dev-menu@56.0.10 expo-dev-launcher@56.0.11 patch-project@56.0.11 expo-auth-session@56.0.8 expo-background-task@56.0.9 expo-background-fetch@56.0.9 expo-sharing@56.0.9 expo-processing@56.0.9 expo-notifications@56.0.9 expo-location@56.0.9 expo-insights@56.0.9 expo-image-picker@56.0.9 expo-image-manipulator@56.0.9 expo-dev-client@56.0.11 expo-updates@56.0.12
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )