Releases
Release history for the IntelliJ plugin and compiler plugin.
Latest on Maven Central1.1.0
Latest
2026-03-27
Structural Hot Reload
- Dramatically improved structural hot reload: adding remember{}, new composable calls, forEach loops, and Card{} content now preserves navigation and state.
- Fixed navigation loss when making structural changes like adding mutableStateOf or new @Composable function calls.
- Partial reload now succeeds even when some internal classes fail to update.
- Trailing lambda content (e.g., Card{}, Surface{}) now hot reloads correctly.
- Extreme body replacements with new captured variables are now handled gracefully.
License & Activation
- New License tab in tool window showing license status and plugin version.
- Start Free Trial and Manage License dialogs now open directly from the plugin.
- Improved activation UX with step-by-step guide and redeem code support.
Fixes
- Preview Runner no longer crashes when preview dependencies are missing.
2026-03-26
Preview Runner
- Preview Runner now supports @PreviewParameter: provider values are resolved automatically via reflection.
- Fixed Preview Runner not working on projects with product flavors (NowInAndroid, etc.): package name is now resolved from running process.
- Fixed Preview Runner showing the same preview regardless of which gutter icon was clicked.
Fixes
- Fixed Gradle processes failing on systems without system Java: plugin now passes JAVA_HOME from Android Studio's bundled JDK.
- Removed deprecated IntelliJ API usage (AnActionEvent.createFromDataContext, addBrowseFolderListener).
2026-03-25
Preview Runner
- Run individual @Preview composables on device via gutter play icon. Component isolation without navigating through the full app.
- K2 mode compatible: text-based @Preview detection, no Kotlin PSI dependency.
- Crash recovery: UncaughtExceptionHandler catches mid-composition errors and restarts the preview Activity with error display.
captureAllPreviews Gradle Task
- New Gradle task automatically captures screenshots of all @Preview functions across the project and generates a browsable HTML catalog.
- SDK Documentation mode (sdkModeEnabled): extracts KDoc and parameter info from inner composables for rich API documentation.
- Configuration cache compatible with Property<T> types.
- HTML catalog features: dark mode default, search, module grouping toggle, fullscreen modal, expand/collapse for large parameter lists.
- HotSwan branding with favicon and link to hotswan.dev.
- DSL: hotSwanCompiler { preview { sdkModeEnabled.set(true); renderDelayMs.set(3000L) } }
MCP
- New tools: hotswan_run_preview and hotswan_capture_previews.
Fixes
- Fixed performFullRebuild() not returning to WATCHING state, stuck in COMPILING after rebuild completes.
- Fixed FileChangeWatcher suppression not resetting after reload, causing file changes to be silently ignored.
- Added 15-second max guard on suppressUntil to prevent stale suppression.
2026-03-25
- Fixed compile error when non-composable suspend extension functions are present in the same file as composables.
- Fixed "Cannot run Project.afterEvaluate(Action) when the project is already evaluated" crash in projects using convention plugins.
- Improved onboarding experience for first-time users.
2026-03-24
- Hot reload now broadcasts to all connected devices simultaneously. Edit once, see changes on phone, tablet, and emulator at the same time.
- New chip-based device selector UI replaces the single-device dropdown.
- Parallel DEX push with per-device error handling and independent reconnection.
- New Inspector tab in the tool window visualizes the live Composition tree from the running app.
- Source-Linked Reload Summary: after hot reload, shows which composables in the changed file were recomposed with blast radius statistics.
- Full Rebuild Diagnostic: when a full rebuild occurs, displays the reason and a tip for avoiding it.
- Double-click any composable in the Inspector to navigate to its source file and line.
- Framework composables (remember, Layout, CompositionLocalProvider, etc.) automatically filtered out in Inspector.
- Fixed lateinit var + isInitialized pattern causing IllegalArgumentException in ViewModels.
- Fixed app-first workflow: starting HotSwan after the app is already running no longer triggers an unnecessary full rebuild.
- Fixed stale device serials causing ADB errors after IDE restart.
- Hot reload log messages now include the target device serial for multi-device clarity.
2026-03-22
- Fixed device detection on Windows: plugin now correctly resolves adb.exe and uses platform-appropriate lookup commands.
2026-03-22
- Improved license activation UX: first-time users see "Start Free Trial", returning users see "Activate License".
- Improved device detection: resolves Android SDK from Android Studio's internal settings with additional platform fallbacks.
2026-03-21
- Fixed NoSuchMethodError crash on Kotlin 2.3.20+ caused by an internal ABI change in the Kotlin compiler.
- Compiler plugin is now forward-compatible with Kotlin 2.1.x through 2.3.20+ without recompilation.
2026-03-21
- Fixed NoSuchMethodError crash on Kotlin 2.3.0 and other versions where an internal IR API was removed.
2026-03-21
- Fixed build failure on projects with warningsAsErrors=true caused by deprecated generateFunctionKeyMetaClasses Compose compiler flag.
- Fixed kotlin-reflect not found in Gradle cache startup error on Kotlin 2.x projects (especially KMP).
2026-03-20
- Fixed hot reload not applying composable argument changes (fontSize, text, color) in library modules.
- Synced annotation keys with stabilized ordinal-based keys, enabling targeted invalidation in library modules.
2026-03-20
- Fixed compiler plugin applying full-phase transformation to library modules, which broke remember{} state, animations, and callback references in composables defined in project library modules.
- Library modules now only receive safe key stabilization without structural changes.
- Resolves: ProgressBar animations not playing, Coil image loading failures, broken event handlers in library composables.
2026-03-17
- Adding new lambda expressions (remember, LaunchedEffect, event handlers) to existing composables now hot reloads without full rebuild.
- Targeted compositional graph invalidation with scope-level resolution for minimal recomposition overhead.
- Adaptive composition table capacity management for deeply nested layout hierarchies.
- Extended runtime class transformation pipeline with broader structural mutation support.
- Improved recovery from nested closure evolution in complex UI trees.
2026-03-15
- Extension functions, suspend functions, and vararg parameters are now fully supported for hot reload.
- Functions with more than 8 parameters are now hot reloadable via overflow array packing.
- ViewModel method isolation: business logic changes in ViewModel classes are instantly hot reloaded without full class redefinition.
- Data class property addition: adding new properties to data classes no longer triggers a full rebuild on API 30+.
- ART structural redefinition: method and field additions are handled natively via ART extensions on supported devices.
- Lambda method index remapping reduces unnecessary full rebuilds when editing lambda expressions.
- Proactive disposal of paused subcompositions prevents ArrayIndexOutOfBoundsException in LazyColumn, LazyGrid, and LazyStaggeredGrid during structural hot reload.
- Improved crash guard coverage for structural changes that can trigger delayed scroll crashes.
- ChangedFlagCleaner now handles isolated function bodies, fixing stale value reads after body only edits.
- MCP server: AI coding assistants can now trigger hot reload, capture snapshots, and read device logs via MCP protocol.
- License activation panel: streamlined in plugin license setup with clear activation flow.
- Snapshot timeline: improved slider controls and gallery layout.
2026-03-12
- Compiler plugin: stable group key generation eliminates slot table mismatches caused by source level edits.
- Compiler plugin: granular function level hot reload enables adding or removing composable functions without full rebuild.
- Compiler plugin: same file call optimization reduces structural changes when composables reference each other.
- Compiler plugin: automatic detection of value only vs structural edits for optimal state preservation.
- Improved compatibility with Navigation 3 and other framework level subcompositions.
- Snapshot panel: compact icon only toolbar for Start/Stop, Clear, and Export actions.
- Console panel: added Clear button to quickly reset the log view.
2026-03-10
- Faster reload cycles: skip unnecessary recompilation for unchanged classes.
- Improved state preservation: body only edits no longer reset remember{} or scroll positions.
- Better error recovery: reduced ANR risk during hot reload of complex layouts (LazyColumn, Scaffold, etc.).
- Smarter structural change detection: automatically distinguishes body only vs structural edits for optimal recovery strategy.
- Compiler plugin: position independent remember{} keys prevent state corruption across reloads.
2026-03-08
- Instant code reload: save a .kt file and see UI changes on the device in under a second.
- Resource hot reload: edit strings, colors, drawables, and dimensions without restarting the app.
- Screenshot snapshot: auto capture device screenshots after each reload with code diff tracking and gallery view.
- Multi module support with automatic module and build variant detection.
- State preservation: scroll positions, navigation, and rememberSaveable survive reloads.
- Auto recovery: detects stale APK or structural changes and rebuilds automatically.
- Live progress panel with device selector, connection indicator, and log export.
- Configurable settings under Tools > Compose HotSwan.
- Keyboard shortcut: Ctrl+Shift+F10.