Skip to content

0.6.1

Latest

Choose a tag to compare

@AndroidPoet AndroidPoet released this 14 Jul 10:26

A correctness pass over the async-gating, deep-link, and page-memo edges. Still zero dependencies.

  • AsyncRedirect.invalidate() now cancels in-flight checks. A check already awaiting (auth/session lookup) could complete and apply a decision made from the very state invalidate() declared stale. Each check is now pinned to a cache generation; one that resolves after an invalidate() is dropped (not cached, not applied) and any held navigation released, so the next navigation re-checks against fresh state.
  • A deep-link source that errors no longer surfaces as an unhandled async error. Errors from initialLink / linkStream themselves are now caught and dropped — the app stays put and the stream keeps delivering later links — consistent with the existing "bad links don't crash" behavior.
  • Changing the decorators list now invalidates the memoized pages. With a stable builder, existing pages kept their old decorated subtree; the decorator list now participates in memo invalidation (compared element-wise, so stable decorators keep the memo).
  • Raised the Flutter lower bound to >=3.24.0 to match the API surface actually used (Navigator.onDidRemovePage, PopScope.onPopInvokedWithResult).

Fixes #1.