NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Complete app update lifecycle manager for Flutter. Store version checks, force update walls, A/B rollout, rich changelogs, skip with cooldown, analytics hooks, maintenance mode, and remote config from any JSON API.
Last release 5 months ago
23 Apr 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
6 months old
7 releases · first in 2026
One column per month.
Yield to event loop after checkForUpdate so pushReplacement / pushAndRemoveUntil completes before dialog is shown on root navigator
check() is called in a screen that also navigates away (e.g. pushReplacement, pushAndRemoveUntil), the dialog was dismissed by the in-flight navigation. Fixed by yielding to the event loop after checkForUpdate completes so any pending navigation settles before the dialog is pushed onto the root navigator.UpdatePilotGuard timing — deferred _performCheck() to addPostFrameCallback so the widget is fully settled in the navigator tree before showing any UI.Capture ModalRoute before the async checkForUpdate gap. If the calling screen is no longer the active route when the check completes (user navigated a
Capture ModalRoute before the async checkForUpdate gap. If the calling
screen is no longer the active route when the check completes (user
navigated away during Play Store scrape), skip showing any UI.
Fixes fromStore() dialog popping over next screen when called in main.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
_openStore now checks bool return of launchUrl instead of catching exceptions (launchUrl returns false on failure, never throws)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
Store URL changed from https://play.google.com to market:// so the Play Store app opens directly instead of a browser
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
market:// scheme which opens the Play Store app directly instead of a browser. Falls back to https://play.google.com/... if Play Store is not installed.<queries> block to the plugin's AndroidManifest.xml declaring market:// and https://play.google.com intent filters. Without this, launchUrl silently fails on Android 11+ due to package visibility restrictions.launchUrl called directly (drop canLaunchUrl gate that silently failed on Android without https scheme declaration)
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
UpdateConfig.fromUrl(). The button now calls launchUrl directly (no longer gated behind canLaunchUrl, which silently returns false on Android if the https scheme isn't declared in <queries>). Store opens before the dialog dismisses.showForceUpdateWall, showMaintenanceWall, and showUpdatePrompt now use rootNavigator: true. This prevents the force/maintenance wall from being popped or dismissed when called from a splash screen that navigates away while the async update check is in flight.clearStack option — showForceUpdateWall and showMaintenanceWall accept an optional clearStack parameter (default true) for cases where clearing the route stack is not desired.Stable release of app_update_pilot.
Stable release of app_update_pilot.
UpdateConfig.firebase() — replaced with UpdateConfig.fromMap() which works with Firebase Remote Config, Supabase, or any key-value source without requiring a Firebase dependency.UpdateConfig.isFirebase — replaced with isFromMap.UpdateConfig.fromMap() — create config from any Map<String, dynamic>, perfect for Firebase Remote Config, Supabase, or custom backends.checkForUpdate() now catches all errors, fires onCheckFailed analytics callback, and returns safe "up to date" status so the app never crashes./// doc comments on all public API members for pub.dev documentation score.Initial release of app_update_pilot.
Initial release of app_update_pilot.
UpdateConfig.firebase() factory.1.2.3, v1.2.3, 1.2).flutter_markdown.optional, recommended, and critical levels.customBuilder on every widget to replace the entire screen.icon, title, description, button text on all widgets.ColorScheme for automatic dark mode support.UpdateAnalytics — structured callbacks: onPromptShown, onUpdateAccepted, onUpdateSkipped, onRemindLater, onForceUpdateShown, onMaintenanceShown, onCheckFailed.AppUpdatePilot.configure() — set analytics globally once at app start.AppUpdatePilot.check().AppUpdatePilot.check() — one-line setup with auto UI.AppUpdatePilot.checkForUpdate() — headless check returning UpdateStatus.AppUpdatePilot.showForceUpdateWall() / showUpdatePrompt() / showMaintenanceWall() — manual UI display.AppUpdatePilot.showChangelog() — standalone changelog bottom sheet.AppUpdatePilot.openStore() — open platform store listing.AppUpdatePilot.skipVersion() / remindLater() / isVersionSkipped() — programmatic skip/remind control.AppUpdatePilot.isInRolloutGroup() — check rollout eligibility.AppUpdatePilot.checkNativeUpdate() / startNativeUpdate() / completeNativeUpdate() — native Android in-app update flow.AppUpdatePilot.clearPersistedState() — reset all skip/remind state.Your coding agent can read these notes before it upgrades. Set up the MCP server →