Releases: fluttersdk/magic
Releases · fluttersdk/magic
v1.0.0-alpha.13
✨ New Features
- Routing: Add
currentPathgetter toMagicRouter— returns the current route path without query string, complementing the existingcurrentLocationproperty
🐛 Bug Fixes
- Routing: Use
GoRouter.pop()instead ofNavigator.pop()inback()— syncs router state and preserves custom page transitions on reverse animation. AddStateErrorguard when router is not initialized, consistent withto()andreplace()
🔧 Improvements
- Skill: Optimize
magic-frameworkskill for Claude Code progressive disclosure — split frontmatter, extract templates to references, compress sections (669 → 416 lines). Add version frontmatter and source-to-skill mapping in release command - Deps: Bump magic version constraint in example app
Full Changelog: 1.0.0-alpha.12...1.0.0-alpha.13
v1.0.0-alpha.12
✨ New Features
- Broadcasting: Client-side activity monitor — detects silent connection loss using Pusher protocol
activity_timeoutandpusher:ping/pusher:pong. Automatically reconnects when the server stops responding - Broadcasting: Random jitter (up to 30%) on reconnection backoff delay — prevents thundering herd when many clients reconnect simultaneously after a server restart
- Broadcasting: Configurable connection establishment timeout (default 15s) — prevents indefinite hang when server doesn't complete the Pusher handshake. Automatically triggers reconnect on timeout
Full Changelog: v1.0.0-alpha.11...1.0.0-alpha.12
v1.0.0-alpha.9
🐛 Bug Fixes
- Broadcasting: Auth failures in private/presence channels now surface via
Log.error()and interceptoronError()chain instead of being silently swallowed. Reconnect resubscribes all channels withawait—onReconnectstream emits only after completion. Per-channel error handling ensures one auth failure does not block other channels. (#45) - Database:
sqlite3.wasmnow loads via absolute URI (/sqlite3.wasm) instead of relative — fixes 404s on deep routes when using path URL strategy. (#46)
Full Changelog: 1.0.0-alpha.8...1.0.0-alpha.9
v1.0.0-alpha.11
🐛 Bug Fixes
- Routing: Fix intermittent page title loss on web — Flutter's
Titlewidget was overwriting TitleManager's route-level title ondidChangeDependencies()rebuilds. UseonGenerateTitleto keep both in sync
⚠️ Breaking Changes
- file_picker: Upgrade from
^10.3.10to^11.0.2— migrates to static API (FilePicker.platformremoved). Consumers usingFilePicker.platformdirectly (viamagic.dartre-export) must switch to static calls (FilePicker.pickFiles(),FilePicker.getDirectoryPath(),FilePicker.saveFile()). Includes Android path traversal security fix (CWE-22) and WASM web support
Full Changelog: 1.0.0-alpha.10...1.0.0-alpha.11
v1.0.0-alpha.10
✨ New Features
- Routing: Route-level page title management with
TitleManagersingleton. Per-route titles viaRouteDefinition.title(), automatic suffix pattern viaMagicApplication(titleSuffix:), declarativeMagicTitlewidget for data-dependent titles, and imperativeMagicRoute.setTitle()/MagicRoute.currentTitleAPI. Title resolution: MagicTitle > setTitle > RouteDefinition.title > MagicApplication.title. (#49)
🔧 Improvements
- Dependencies: Bump
magic_clito^0.0.1-alpha.6(scaffold templates now include.title()andtitleSuffix)
Full Changelog: 1.0.0-alpha.9...1.0.0-alpha.10
1.0.0-alpha.6
✨ Features
- Http Faking:
Http.fake()— Laravel-style HTTP faking for testing with URL pattern stubs, callback stubs, and assertion methods (#18) - Facade Faking:
Auth.fake(),Cache.fake(),Vault.fake(),Log.fake()— in-memory fakes with assertion helpers (#19) - Fetch Helpers:
fetchList()/fetchOne()onMagicStateMixin— auto state management with defensive type guards (#20) - MagicTest:
MagicTest.init()/MagicTest.boot()+package:magic/testing.dartbarrel (#21)
🐛 Bug Fixes
- Log.channel(): Returns
LoggerDriverinstead ofLogManager(#27) - Http.response() null data: Sentinel pattern for null vs omitted distinction (#26)
- URL pattern escaping:
RegExp.escape()for stub patterns (#26) - fetchList/fetchOne defensive guards: Type-check response data, filter non-Map elements (#28)
- Publish fix: Move
flutter_testto dependencies for pub.dev validation (#30)
Full Changelog: 1.0.0-alpha.5...1.0.0-alpha.6
v1.0.0-alpha.5
🐛 Bug Fixes
- Route Back Navigation:
MagicRoute.back()now works aftergo()-based navigation (cross-shell). Maintains lightweight history stack with automatic fallback. Optionalfallbackparameter for explicit control. (#11)
Full Changelog: 1.0.0-alpha.4...1.0.0-alpha.5
v1.0.0-alpha.4
🔧 Improvements
- Localization Hot Restart: Translation JSON changes now reflect on hot restart during development. Uses fetch with cache-busting on web and best-effort disk reads on desktop, bypassing Flutter's asset bundle cache. Zero impact on release builds.
Full Changelog: 1.0.0-alpha.3...1.0.0-alpha.4
v1.0.0-alpha.3
🐛 Bug Fixes
- Logo on pub.dev: Use absolute URL for logo image so it renders correctly on pub.dev
🔧 Improvements
- TDD Development Flow: Added strict TDD rules and verification cycle to CLAUDE.md
Full Changelog: 1.0.0-alpha.2...1.0.0-alpha.3
v1.0.0-alpha.2
⚠️ Breaking Changes
- Pub.dev Migration: Replaced git submodule path dependencies with pub.dev hosted packages (
fluttersdk_wind: ^1.0.0-alpha.4,magic_cli: ^0.0.1-alpha.3). Removedplugins/directory entirely. - SDK Bump: Dart
>=3.11.0 <4.0.0, Flutter>=3.41.0(previously Dart >=3.4.0, Flutter >=3.22.0)
✨ New Features
- Launch Facade: URL, email, phone, and SMS launching via
url_launcher - Form Processing:
process(),isProcessing, andprocessingListenableonMagicFormData - Reactive Auth State:
stateNotifieron Guard contract and BaseGuard - Query Parameters:
Request.query(),Request.queryAll,MagicRouter.queryParameter() - Localization Interceptor: Automatic
Accept-LanguageandX-Timezoneheaders on HTTP requests - Theme Persistence: Auto-persist dark/light theme preference via Vault
- Validation Helpers:
clearErrors()andclearFieldError()onValidatesRequests - Route Names: Route name registration on
RouteDefinition
🐛 Bug Fixes
- Auth default config now properly wrapped under
'auth'key - Session restore guards against missing
userFactory FileStoreexported from barrel file- Renamed internal references from
fluttersdk_magictomagic
🔧 Improvements
- Dependency upgrades: go_router ^17.1.0, sqlite3 ^3.2.0, share_plus ^12.0.1, file_picker ^10.3.10, flutter_lints ^6.0.0
- Rewrote Magic CLI documentation with all 16 commands
- Wind UI docs moved to wind.fluttersdk.com
- Example app rebuilt with fresh
flutter createandmagic install - CI pipeline: upgraded GitHub Actions, added validate gate to publish workflow
- Claude Code: path-scoped
.claude/rules/for 8 domains, auto-format/analyze hooks
Full Changelog: v1.0.0-alpha.1...1.0.0-alpha.2