Skip to main content
Version: 1.1.x

Changelog

All notable changes to the Coryn AI Android SDK are documented here. This project follows Keep a Changelog and Semantic Versioning.


[Unreleased]​

Added​

  • Coryn.acceptToast(context, textOrResource, duration, show = true) to show and record standard Toasts.
  • Coryn.acceptToast(context, toast, text, show = true) for configured Toasts. Replay uses the supplied text, never the custom layout. For sensitive content, provide safe replacement text, pass show = false, and show the real Toast yourself.
  • Coryn.onHiddenPositionWillChange() for exceptional manual geometry changes. Call it before temporary drawing-position changes or attached Popup/Overlay elevation or surface-inset changes. Normal scrolling and layout changes need no notification.
  • Automatic Screen Text collection for Views and Compose, respecting Coryn hiding. Identical text is collected once and unchanged text is not repeated.
  • Coryn.addApiRequest() and an optional OkHttp interceptor with configurable header and URL-parameter redaction.
  • Coryn.setZOrderOnTop(), Coryn.setZOrderMediaOverlay() and Kotlin extensions for SurfaceView ordering.
  • network.isUploadOnMeteredNetworkAllowed and the Java builder equivalent. Uploads require an unmetered network by default.
  • Recording-time overscrollStrategy: Reject, None, AdditionalPaddingDp and AdditionalPaddingPercent, with 5% directional padding by default.
  • memoryLeakCodePackages to extend Fragment and ViewModel diagnostic coverage.
  • “Frame unavailable” placeholders and capture failure codes for troubleshooting.
  • ScreenOff application state, including Always-On Display. UI capture and State collection pause while the device is non-interactive.

Changed​

  • Recording now starts and stops through Coryn.startRecording() / Coryn.stopRecording(), separately from initialisation.
  • Added network.baseUrl for self-hosted deployments.
  • Renamed CorynStateProviderView to CorynStateProviderRoot.
  • Renamed privacy masking APIs to hideFromUiCapture / corynHideFromUiCapture.
  • Raised the State/Event size budget from 100 KB to 200 KB per 15-second recording segment.
  • Required CorynOverscrollFactoryWrapper around hidden Compose content using a non-null overscroll factory.
  • Updated build requirements: Compose minimum 1.8.0, recommended 1.9.3+; AGP 8.6+, Kotlin 2.1+, and compileSdk 35+.
  • Expanded built-in context and error reporting with jank, freezes, potential memory leaks and ANRs on API 30+.
  • CorynStateMap copies its outer input map. Nested values must remain stable; invalid State/Event JSON is reported as an integration error.
  • Recordings and storage limits are separate per process. Initialise each recording process consistently; processes can upload concurrently.
  • Reorganised integration guides into UI Captures, States and Events sections.

Fixed​

  • Improved privacy masking for moving and recycled Views.
  • Improved capture updates for popups.
  • Improved recovery from temporary State Provider failures.
  • Preserved project feature flags in release builds using R8.
  • Improved recording reliability under storage and payload limits.

[1.0.0] — 2026-06-01​

Added​

  • Initial release of the Coryn AI Android SDK.
  • Session recording for XML View-based applications (recorder artifact).
  • Session recording with Jetpack Compose support (recorder-compose artifact).
  • Screen registration via Coryn.registerScreen() and CorynScreenRoot Composable.
  • State Provider API: CorynStateProvider, CorynStateProviderRoot, CorynScreenStateProviderRoot.
  • Map-based States via CorynStateMap with Gson and Moshi backends.
  • Event recording via Coryn.addEvent().
  • Privacy masking: Coryn.hideFromUiCapture(), Modifier.corynHideFromUiCapture().
  • Overlay Root Touch Listener integration via Coryn.setRootOnTouchListener().
  • In-app Log Viewer with configurable indicator visibility.
  • Kotlin DSL and Java-friendly CorynConfiguration.Builder for initialisation.