Version 1.2.0
New Features
- Sleep score: Compute a per-night sleep score with
SleepScoring.compute(result, history, dateOfBirthSecondsUtc, chronoType), which returns aSleepScorewithtotal,duration,quality, androutinesubscores (each 0.0–1.0). Build history entries from a completed result viaAnalysisResult.toSleepScoreHistoryEntry()and derive the user’sChronoTypewithSleepScoring.identifyChronoType(history). - Extended audio events: New
extendedAudioEventsfeature flag exposes additionalEventTypevalues beyond the standard set. - Real-time sleep staging in results:
AnalysisResultnow includesrealTimeSleepStageIntervals, the sleep stages emitted live during the session (in addition to the post-sessionsleepStageIntervals).
API Changes
AudioEventListener.onAudioAnalysisBatchCompleted()now receivesaudioProbability: Map<EventType, Float>, the per-batch probability for each event type. Therms: FloatArrayparameter has been replaced bydbSpl: FloatArray, providing A-weighted sound volume in dB SPL.EventEndedInfonow includes aneventType: EventTypeproperty.AnalysisResultnow includestimeZoneId: String(the IANA time zone captured at session start) andrealTimeSleepStageIntervals: List<SleepStageInterval>.
Version 1.1.1
New Features
- Smart alarm: Configure a wake-up window via
SmartAlarmConfigand observe alarm lifecycle events (Armed,Triggered) through the newsmartAlarmFlow: SharedFlow<SmartAlarmEvent>. Trigger reasons includeOPTIMAL_WAKE_UP,USER_INTERACTION, andWINDOW_END. Smart alarm is gated behindSleepAnalysisFeatures.smartAlarmand only supported on the primary channel. - Stereo channel separation: New
ChannelSeparationConfigcontrols how stereo audio channels are assigned to analysis channels, with built-in presetsBED_SIDE_MICS,CENTERED_MIC_ARRAY, andDETECTION_STRENGTH_ONLY.
API Changes
- Added
smartAlarmConfig: SmartAlarmConfig?parameter tostartAnalysis()andstartMultiChannelAnalysis(). - Added
channelSeparationConfig: ChannelSeparationConfigparameter tostartAnalysis(),startDataSource(), andresumeAnalysis(). - Added
forceTokenRefresh: Booleanparameter toinitialize()to force a fresh token fetch even if a cached token exists. resumeAnalysis()now returnsList<ResumedSession>instead ofBoolean, providing session ID, channel, and smart alarm config for each resumed session.createLiveDataSource()now enables the gyroscope when the accelerometer is enabled.stopDataSource()andstopAnalysis()no longer throw when the SDK is not initialized; they return gracefully instead.
Version 1.1.0
New Features
- Multi-channel analysis: Analyze two channels simultaneously using stereo audio. New
startDataSource()/stopDataSource()methods separate the data source lifecycle from session lifecycles, with per-channel start viastartMultiChannelAnalysis(channel:)and per-session stop viastopAnalysis(sessionId:). - Audio health monitoring: New
audioHealthFlow: SharedFlow<AudioHealthUpdate>emits real-time audio input health status changes (HEALTHY,FLATLINE,MISSING_INPUT).AudioStatisticsandAudioHealthIntervalare included in the analysis result. - Session IDs on all public types:
Event,BreathingRate,SleepStageInterval,AudioClip, andAudioHealthUpdatenow include asessionId: UUIDproperty to identify which session they belong to.
API Changes
startAnalysis()now returns aUUIDidentifying the session.- Added
tag: String?parameter tostartAnalysis()for labeling sessions. AudioEventListener.onAudioAnalysisBatchCompleted()now includes asessionId: UUIDparameter.AnalysisResultnow includessleepStageIntervals,audioStatistics, andsessionIdproperties.- Added
multiChannelAnalysistoSleepAnalysisFeatures.
Version 1.0.10
Released: January 26, 2026New Features
- Disk space checking: The SDK now checks for sufficient disk space before starting analysis and throws
SdkNotEnoughDiskSpaceExceptionif there is insufficient space available.
API Changes
- Added
SdkNotInitializedExceptionexception thrown when SDK methods are called before initialization. - Added
@throwsdocumentation forSdkNotInitializedExceptionandSdkNotEnoughDiskSpaceExceptiononstartAnalysis().
Bug Fixes
- Improved error handling when writing to the database to prevent crashes on low disk space.
Version 1.0.9
Released: January 15, 2026New Features
- Preferred audio device: Added ability to specify a preferred audio input device via the
preferredDeviceparameter increateLiveDataSource().
API Changes
- Added support for stereo audio input.
- The
dataSourceparameter instartAnalysis()andresumeAnalysis()is now mandatory (non-nullable) with a default value ofcreateLiveDataSource(). - Added
createLiveDataSource()factory method for creating a live data source that captures from device sensors. - Made
LiveDataSourceclass public, allowing direct instantiation for custom configurations. - Extended
DataSourceinterface with new methods:audioOutputEnabled()- Check if audio output is enabledaccelerometerOutputEnabled()- Check if accelerometer output is enabledgetAudioFormat()- Returns the audio channel configuration (MONO or STEREO)
- Published artifact now includes source files (excluding internal package) for easier debugging.