Skip to main content

Release Notes — February 20, 2026

This release focuses on the CADENSA Mobile app — improving the startup experience, fixing authentication edge cases, and cleaning up technical debt.


Mobile App

Improvements

Splash Screen Redesigned

The app startup sequence has been overhauled for a smoother experience:

  • Before: The native Android/iOS splash (with a bare icon) appeared briefly before the app loaded, sometimes showing a flash of white or the icon circle on Android 12+.
  • After: A clean white native splash transitions instantly to the branded CADENSA splash screen (logo + wordmark) which is displayed for a minimum of 1.8 seconds while the app state is restored in the background. No more icon circle on Android.

Faster State Restoration

App state (authentication, workspace selection) is now restored via Redux Persist with a dedicated bootstrap phase. The branded splash covers the entire rehydration period — users never see a loading spinner or blank screen on startup.

Improved Password Reset Flow

The "Forgot Password?" email link now opens directly in the CADENSA mobile app via deep link (cadensa://reset-password?token=…) and displays an in-app password reset screen. Previously, the documentation incorrectly stated that resets must be done on the web app.


Bug Fixes

Android Adaptive Icon Circle Eliminated

On Android 12+, a circular crop artifact appeared over the app icon on cold start. Fixed by configuring expo-splash-screen to manage the adaptive icon layer correctly.

Token Expiry No Longer Causes Logout Loop

When an authentication token expired, a previous bug caused the app to enter a repeated logout/login cycle. The app now performs a single, clean logout with a "Session expired" toast notification.

Auth Screen Flash After Login Removed

After a successful login, the authentication screen briefly flashed before the main app appeared. The skipAuth navigation flag has been removed and navigation now transitions cleanly directly to the Timer tab.


Internal / Technical

  • Removed 14 unused static assets (old splash variants, SVG duplicates, backup icons)
  • Fixed tintColor deprecation warning in the login screen (moved from StyleSheet to Image prop)
  • SplashScreen.preventAutoHideAsync() + persistor.subscribe() used for bootstrap — no PersistGate component required

See Also