NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1018 most downloaded on pub.dev
Restart Flutter apps on Android, iOS, web, macOS, Linux, and Windows. Supports app relaunch, iOS engine restart, and bundled AI agent skills.
Last release 15 days ago
23 Sep 2026
Ships unpredictably
gaps range from 9 days to 1.4 years
Nearly every release is documented
notes for 32 of 33 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
34 releases · first in 2021
One column per quarter.
Simplified the README, guides, examples, and changelog; corrected documentation links.
Reload the web document when an absolute or relative restart URL changes only its fragment, including identical URLs and fragment removal
Version 1.9.2 adds bundled package skills and hardens native restarts across Android, iOS, macOS, Linux, and Windows. Overlapping requests are rejecte
Version 1.9.2 adds bundled package skills and hardens native restarts across Android, iOS, macOS, Linux, and Windows. Overlapping requests are rejected, failure paths preserve the running app where possible, and the documentation now describes accepted requests separately from completed restarts. The existing library SDK and OS minimums remain unchanged.
dart run skills@ get restart_appMISSING_PLUGIN result when native registration is absent, and report unavailable capabilities for missing or malformed channel responseswindowProvider that returns nil instead of selecting another scene, and reject unknown native restart modesexecv fails; bound saved command-line arguments by argc and release replaced argument storageInstall the bundled skills from your Flutter project (Dart 3.12+):
flutter pub get
dart run skills@ get restart_appValidation includes real restart applications on Android 5 and Android 17 (16 KB pages), iOS 18.5 and 27, macOS 27, Linux, and Windows; repeated restart and duplicate-request checks; saved versus in-memory state; iOS notification denial and notification-tap reopening; Windows native failure injection; Linux executable failure and recovery; and browser reload/route probes in both JavaScript and Wasm builds. Consumer builds cover selected Flutter versions from 3.22 to 3.47.5, CocoaPods, both SwiftPM generations, and AGP 9 with built-in Kotlin on and off.
These results cover the recorded simulator, emulator, browser, and desktop CI environments. They do not establish behavior on every physical/OEM device, Store/MSIX distribution, Linux distribution, or custom native host. The runtime verification guide provides reproducible checks for the application you ship.
MISSING_PLUGIN when native registration is missing, and handle invalid capability responses.Fixes the AGP 9 build failure in 1.9.0. Projects generated by Flutter 3.44 and later use Android Gradle Plugin 9 with android.builtInKotlin=false , an
Fixes the AGP 9 build failure in 1.9.0. Projects generated by Flutter 3.44 and later use Android Gradle Plugin 9 with android.builtInKotlin=false, and 1.9.0 left that combination with no Kotlin plugin at all, so evaluation failed with Could not find method kotlin(). Upgrading is enough; no app-side change is needed.
Could not find method kotlin(), which hit every project generated by Flutter 3.44 and later (#56)android.builtInKotlin=false gets a Kotlin toolchain like every other combinationnamespace unconditional now that every supported AGP requires itVerified on AGP 8.6, 8.11, 9.0.1, 9.1.0 and 9.3.1, on Flutter 3.44 and 3.47, with built-in Kotlin both off and on.
Could not find method kotlin(), including Flutter 3.44 projects (#56).Upgrade notes: Android minSdk rises from 16 to 21 and the Android toolchain moves to Java 17, AGP 8.1.4 and Kotlin 2.0.21; the iOS CocoaPods minimum r
Upgrade notes: Android minSdk rises from 16 to 21 and the Android toolchain moves to Java 17, AGP 8.1.4 and Kotlin 2.0.21; the iOS CocoaPods minimum rises from 11.0 to 12.0. Apps on older toolchains must update their build setup before upgrading. On web, the default restart now reloads the current page instead of navigating to the site origin root; pass webOrigin to keep the previous behavior.
webOrigin still overrides the targetRESTART_FAILED error instead of a false success; the new instance now starts suspended and only resumes after the result is deliveredplatformDefaultcode, message, and reason values can never throwwebOrigin buttons to the example appurl_launcher link checks pass on Android 11+ (package visibility <queries>)finishAffinity() after the relaunch intent, which made ActivityTaskManager log a "Duplicate finish request" on every default restartUpgrade notes: Android now requires API 21, Java 17, AGP 8.1.4, and Kotlin 2.0.21. The iOS CocoaPods minimum is now iOS 12. Update older build configurations before upgrading.
Web behavior change: a restart now keeps the browser URL instead of opening the website root. Pass webOrigin: '/' to restart at the website root.
Made Restart.restartApp(...) the single Dart restart entry point
Restart.restartApp(...) the single Dart restart entry pointRestart.restartApp(...) to return RestartResult, giving one call with success, resolved mode, code, and messageRestart.restartApp(...): mode, webOrigin, forceKill, notificationTitle, and notificationBodymain.dart shows the restart calls directly, while package survival checks live in focused helper filesRestart.restart(). Use Restart.restartApp(), which now returns Future<RestartResult> instead of Future<bool>.mode, webOrigin, forceKill, notificationTitle, and notificationBody.ci: align example plugin constraints
ci: align example plugin constraints
iosLegacyNotificationFallback; use RestartMode.notificationFallback to request notification relaunch.Patch release focused on restart mode correctness and release stability.
Patch release focused on restart mode correctness and release stability.
RestartMode.process use the full force-kill restart path automatically.beforeRestart hook before creating the replacement FlutterEngine.Validated with flutter analyze, package and example tests, Android/iOS/web example builds, a fresh-template macOS build, native format checks, and dart pub publish --dry-run with 0 warnings.
RestartMode.process use the force-kill path.beforeRestart hook before creating the replacement engine.Added structured restart API with Restart.restart() , RestartResult , RestartMode , and Restart.restartCapability() .
Restart.restart(), RestartResult, RestartMode, and Restart.restartCapability().FlutterEngine creation, Dart re-run, host-owned plugin registration, root FlutterViewController replacement, and old engine teardown.exit(0) behavior as an explicit legacy fallback.flutter analyzeflutter testcd example && flutter testdart pub publish --dry-runNote: Android APK build is blocked locally by the existing Gradle 7.6.3 and Java 21 mismatch on this machine.
RestartResult, RestartMode, and Restart.restartCapability().Fixed the SwiftPM target path causing Xcode build failures (#52).
Fixed SwiftPM file locations for iOS and macOS.
Added Swift Package Manager support for iOS and macOS.
Added Linux and Windows support.
false instead of throwing PlatformException.Added native macOS app relaunch support.
Fixed Android FlutterJNI errors by delivering the result before tearing down the engine.
Breaking change on iOS: denied notification permission now throws PlatformException with code NOTIFICATION_DENIED.
forceKill and fixed iOS notification relaunch.PlatformException with code NOTIFICATION_DENIED.plugin_platform_interface dependency and corrected package metadata and examples.Nothing published for this version
Nothing published for this version
Updated to the stable web package.
web package.Updated JVM, Kotlin, and web dependencies; resolved Firebase dependency conflicts.
Added custom iOS notification titles and messages.
* Added API documentation.
* Added iOS support.
Updated to Flutter 3.10 and refreshed the example.
* Updated to Flutter 3.7.
* Documented iOS support.
* Updated Gradle.
* Updated to Flutter 3.0.
* Added web support.
* Updated the README version.
Updated the package name in examples.
* Updated the package name.
* Added null safety.
Your coding agent can read these notes before it upgrades. Set up the MCP server →