Skip to content

WorkoutResult

Defined in: console-sdk/src/session/types.ts:728

The reconciled workout result (SDK_PLAN.md §3.6.6) — a value, not a record. end() resolves it and session.result carries it, complete with the full metric sample series. The SDK persists nothing (re-scope, §1.1): rendering, storing, or uploading it is the consuming app’s business.

devices: readonly DeviceResult[]

Defined in: console-sdk/src/session/types.ts:740

Per-device attribution (N=1 ⇒ one entry).


flags: object

Defined in: console-sdk/src/session/types.ts:749

Terminal-state flags.

aborted: boolean

partial: boolean


heartRate: readonly HeartRateSample[]

Defined in: console-sdk/src/session/types.ts:742

Heart-rate track recorded via useHeartRateBroadcast (row 41).


id: WorkoutId

Defined in: console-sdk/src/session/types.ts:730

Stable id assigned at session start — a key for the consumer’s own storage.


metrics: WorkoutMetrics

Defined in: console-sdk/src/session/types.ts:747

The full capture: 0.5 s samples per device, in memory, complete at phase 'completed'. Nothing to fetch, reconstruct, or decompress.


performedAt: object

Defined in: console-sdk/src/session/types.ts:732

When the workout ran.

endedAt: number

startedAt: number


plan: ResolvedPlan

Defined in: console-sdk/src/session/types.ts:736

What was programmed (the normalized input).


reconciliation: object

Defined in: console-sdk/src/session/types.ts:751

Provenance: which totals came from firmware records vs app estimates.

source: "console-records" | "app-estimated"

splitsMatched: boolean


timing: TimingSnapshot

Defined in: console-sdk/src/session/types.ts:734

The timing spine.


totals: PerformanceTotals

Defined in: console-sdk/src/session/types.ts:738

Merged, firmware-reconciled session totals.