4.0.0
·
75 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
- Fix: Remove stray tag by @martin-ro in #158
- SuperNative by @shanerbaner82 in #173
- fix(android): generate APP_KEY locally instead of booting PHP by @buseduran in #177
- Restore Android SDK versions config items by @unlocdavid in #171
- feat(testing): plugin-extensible test suite via FakeBridge macros by @shanerbaner82 in #182
- Handle target=_blank / window.open in the Android WebView by @shanerbaner82 in #180
- Fix fresh-install build failure with zero plugins by @shanerbaner82 in #179
- Fix navigation transition flicker and rebuild exit animations (two-layer swap) by @shanerbaner82 in #181
- fix: stale stack root shown during back transitions after leaving native chrome by @shanerbaner82 in #184
- feat(edge): @pressdown / @pressup — touch-down and touch-up events by @shanerbaner82 in #185
- feat(edge): @pressDown/@pressup events + fix Compose BOM 2025.12 compile break by @shanerbaner82 in #186
- Apply opacity before other modifiers so it fades the whole box by @shanerbaner82 in #192
- Bump Gradle wrapper to 8.14.5 in the Android template by @shanerbaner82 in #191
- Native-first boot: no WebView until a web route actually renders (Android + iOS) by @shanerbaner82 in #201
- Fix permanent re-extraction loop — bundle re-extracted on every cold boot by @shanerbaner82 in #195
- Fix persistent-boot corruption from concurrent extraction/artisan races by @shanerbaner82 in #196
- Fix crash when the app is backgrounded during deferred boot by @shanerbaner82 in #197
- Force R8 minification for profileable builds by @shanerbaner82 in #198
- Regenerate the Android baseline profile against the plugin-era dex layout by @shanerbaner82 in #199
- Fix silent install failure on version downgrade in native:run android by @shanerbaner82 in #200
- Move Firebase/google-services ownership from core template to plugins by @shanerbaner82 in #190
- Fix dropped plugin events on iOS native-direct boots (main) by @shanerbaner82 in #205
- LaravelBridge.localSend: dispatch-time local event channel by @shanerbaner82 in #206
- Android: Jump webview-forward session (port of iOS JumpWebViewSession) by @shanerbaner82 in #207
- feat(ios): dedicated PHP runtimes for embedded php-mode webviews by @simonhamp in #204
- Fix Pint 1.29 code style failures in CI by @simonhamp in #209
- fix(plugins): clean generated plugin copies before compiling by @simonhamp in #188
- feat(edge): raw-slot capture for + @navigated event wiring by @simonhamp in #189
- feat(edge): @tap alias family for @press events by @shanerbaner82 in #212
- Remove duplicate runtime blocks from nativephp config by @martin-ro in #208
- Fix release bundle cache handling by @WesWeCan in #194
- Add content transitions for in-place Text changes (numericText on iOS) by @simonhamp in #213
- fix: Windows and Linux compatibility across all CLI commands by @shanerbaner82 in #214
- fix: keep rapid tab re-taps from reverting to a stale slow render by @simonhamp in #216
- fix: iOS hot reload dropped in native-direct boots by @shanerbaner82 in #218
- docs: design-system guidance (theme tokens, font aliases, layouts) + parser regression tests by @shanerbaner82 in #219
- docs: teach the fonts 'default' alias as the app-wide font default by @shanerbaner82 in #220
- docs: fix self-referential @tap alias line in the migration table by @shanerbaner82 in #222
- chore: finish the @tap standardization across source, tests, and docs by @shanerbaner82 in #223
- IDE helper stub for the Route::native / nativeGroup / ->layout macros by @shanerbaner82 in #225
- Support negative margins and insets in the Tailwind parser by @shanerbaner82 in #230
- Feature/composable chrome and nested components by @shanerbaner82 in #227
- Add a v3 → v4 upgrade skill to the bundled Boost skills by @shanerbaner82 in #231
- Fix native chrome and flex layout bugs on iOS 26 and Android by @shanerbaner82 in #232
- feat(testing): make TestableComponent macroable for element test vocabulary by @shanerbaner82 in #233
- feat(edge): support native:top-bar-title in inline chrome by @shanerbaner82 in #234
- feat(ios): lock the interface style via nativephp.appearance by @shanerbaner82 in #235
- Readable labels for EDGE alignment (plus Concerns rename & comment cleanup) by @simonhamp in #224
- feat(edge): @selectionChange event delivers text-input caret/selection to PHP by @simonhamp in #221
- fix: suspend embedded webview PHP contexts across a runtime reboot by @simonhamp in #229
- Restore and consolidate the app bundle copy on BundleFileManager by @gwleuverink in #217
- Make native:watch interactive: sticky footer and a screen picker by @simonhamp in #240
- Simplify the install command's closing moment by @simonhamp in #242
- Restrict the testing suite's visible-text check to announced-text props by @shanerbaner82 in #244
- feat(plugins): offer a multiselect when native:plugin:uninstall gets no package by @shanerbaner82 in #211
New Contributors
- @martin-ro made their first contribution in #158
- @unlocdavid made their first contribution in #171
- @WesWeCan made their first contribution in #194
- @gwleuverink made their first contribution in #217
Full Changelog: 3.3.6...4.0.0