Download Latest Version 0.33.1 source code.tar.gz (4.3 MB)
Email in envelope

Get an email when there's a new version of Circuit

Home / 0.33.0
Name Modified Size InfoDownloads / Week
Parent folder
0.33.0 source code.tar.gz 2026-02-11 4.3 MB
0.33.0 source code.zip 2026-02-11 4.8 MB
README.md 2026-02-11 6.1 kB
Totals: 3 Items   9.1 MB 0

New Navigation Architecture

Circuit now supports bidirectional navigation with browser-style forward/backward capabilities!

:::kotlin
val navStack = rememberSaveableNavStack(root = HomeScreen)
val navigator = rememberCircuitNavigator(navStack)
navigator.backward() // Move back without removing history
navigator.forward()  // Move forward to a previously visited screen

Navigation changes:

  • Navigator.forward(): Move forward in navigation history
  • Navigator.backward(): Move backward in navigation history
  • Navigator.peekNavStack(): Immutable snapshot of the current navigation stack state
  • NavigableCircuitContent is aware of the full navigation stack and provides NavStackList to decorations, enabling them to render forward stack records.

SaveableNavStack:

  • New implementation in circuit-foundation providing full bidirectional navigation state
  • The existing SaveableBackStack implementation has been updated to extend NavStack

New circuit-runtime-navigation artifact:

  • NavStack: Core navigation stack supporting push/pop and forward/backward traversal
  • NavStackList: Immutable snapshot of navigation state

circuitx-navigation:

  • InterceptingNavigator now supports forward() and backward() navigation methods
  • Updated to use NavStack and NavStackList instead of BackStack and List<Screen>
  • Rewrite interceptors can now rewrite to any NavEvent (not just specific navigation types like InterceptedGoToResult.Rewrite or InterceptedResetRootResult.Rewrite)
  • FailureNotifier interface updated with forwardFailure() and backwardFailure() methods with default implementations

Updates

New

  • Add mingwX64() target to circuit-codegen-annotations.

Fixes

  • Fix an issue where AnsweringResultHandler was not correctly parceling pending results.

Changes

  • Compile against kotlin-inject-anvil 0.1.7.
  • NavigationEventHandler usage is now disabled by default when no NavigationEventDispatcherOwner is available, preventing crashes in environments with dynamic navigation event support. This behaviour can be configured with the Circuit.lenientNavigationEventDispatcherOwner option.
  • BottomSheetOverlay now exposes contentWindowInsets, mirroring ModalBottomSheet

Contributors

Special thanks to the following contributors for contributing to this release!

What's Changed

New Contributors

Full Changelog: https://github.com/slackhq/circuit/compare/0.32.0...0.33.0

Source: README.md, updated 2026-02-11