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.