3.3.0
tagged this
05 Jul 19:27
Two additive coordinator affordances: - dismissModal(): presenter-side counterpart of present(_:as:), on every coordinator type. Removes the top modal and fires its onDismiss once, including view-only modals with no child coordinator. On a FlowCoordinatable it removes only the topmost modal and is a safe no-op when nothing is presented. - shouldSelect(tab:isReselection:) on TabCoordinatable: intercepts UI-driven tab taps to guard/redirect/pop-to-root on re-tap. Redirects from inside the hook are preserved; programmatic selection bypasses it. Defaults to true — purely additive. Docs (AGENTS.md, web changelog) and tests updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>