Changelog
[0.1.1-alpha.15] - 2026-08-11
Fixed
- Smart trainers now report power in free sessions. A smart bike (e.g. MagneticDays JARVIS) freewheels at 0 W until the app puts it under load, so free rides showed no power even while pedalling. The trainer now enters simulation mode (flat road) on connect, so power reflects your real effort — just like a free ride in Zwift. Workouts with watt targets still use ERG as before.
[0.1.1-alpha.14] - 2026-08-11
Added
- Bluetooth debug mode (Settings → Developer). When enabled, connected power meters and smart trainers show a small diagnostic button that reports the device's Bluetooth services and live data flow — for troubleshooting trainers that connect but don't show power. Off by default.
[0.1.1-alpha.13] - 2026-08-11
Added
- Smart trainer support (FTMS). Bluetooth smart trainers now work as a full power source, not only for automatic resistance. Trainers that expose only the Fitness Machine Service — with no separate power-meter service — are now discovered and read correctly (e.g. MagneticDays Jarvis). Power and cadence come straight off the trainer.
- Automatic ERG watt targets. When a protocol stage sets a target power, the trainer is driven to that wattage automatically and released again when the session ends. A small "ERG" badge on the power tile shows when the trainer is under app control.
Fixed
- Trainers that don't advertise a power-meter service are no longer invisible. Device detection now recognises a trainer by its Fitness Machine Service as well, and checks for a power source before treating a device as a heart-rate strap.
- Rest stages now really drop the load. A 0 W target (rest / baseline stages) is sent to the trainer instead of being ignored, so it no longer holds the previous stage's resistance through your rest.
Notes
- Requires a Bluetooth smart trainer or power meter for the new features; everything else works as before.
[0.1.1-alpha.12] - 2026-05-09
Fixed
- Auto-update check no longer crashes with "Cannot read private member from an object whose class did not declare it." Two underlying issues addressed: the dependency graph was pulling in two versions of
@tauri-apps/api (a Resource class identity mismatch), and the Vue ref holding the pending update was deeply reactive, which broke private-field access on Tauri's Update class.
Notes
- If you're stuck on alpha.11, the auto-updater can't help — download alpha.12 manually from the website.
[0.1.1-alpha.11] - 2026-05-09
Added
- Per-device metabolic models. Calculation strategy adapts to the connected analyzer — Calibre Bio uses wet-basis Haldane bookkeeping matching the official app, VO2 Master uses its on-device values. Active model shown as a badge next to the session timer.
- Help page in the sidebar explaining how values are calculated, what affects readings, and the academic references.
- Metabolic model recorded with each saved session and tagged in CSV / JSON exports.
Changed
- VO2 / VCO2 for Calibre now matches the official Calibre app. The previous formula treated wet-basis sensor readings as if they were dry — the missing humidity correction inflated VO2 by 20–50 % and pushed RER below physiologically possible values.
- VO2 Master uses its on-device VO2 / VCO2 directly instead of being recomputed.
Fixed
- Session timer drift on long sessions. Elapsed time and the stored per-breath index now reflect real seconds (was incrementing per breath, so 30 minutes of wall-clock time was stored as ~6 minutes on the chart).
[0.1.1-alpha.10] - 2026-05-08
Added
- In-app changelog under About → "What's new" so you can see what changed in every release.
- Free tier expanded: you can now create up to 10 athlete profiles on the free plan (was: 1). Larger rosters remain a Pro feature.
- FatMax protocols are now free for both cycling and running. Find your peak fat-oxidation zone without a Pro subscription. (Resting Metabolic Rate was already free.)
Fixed
- "Add Person" in the header switcher now opens the new-person form directly instead of dropping you on the persons list.
Maintenance
- Security update and dependency maintenance.
[0.1.1-alpha.9] - 2026-05-06
Added
- Live data smoothing for breath-by-breath metabolic values. RER, fat %, calories and VO2 are now stable on the dashboard instead of jumping with every breath. Out-of-range breaths (RER below 0.5 or above 1.3) are rejected as sensor artefacts. Raw breath-by-breath values are still preserved in the CSV export for analysis.
Fixed
- Auto-updater now actually restarts the app after installing a new version. Previously the message "Installing… The app will restart." appeared but the app stayed on the old version until you manually quit and reopened it.
[0.1.1-alpha.8] - 2026-05-06
Known issue
- Auto-update download completes but the app does not restart automatically. Workaround: quit and reopen OpenSpiro after the install finishes. Fixed in alpha.9.
[0.1.1-alpha.7] - 2026-04-23
Changed
- Removed the macOS tray icon for a cleaner system bar; OpenSpiro now lives only in the dock during sessions.
[0.1.1-alpha.6] - 2026-04-22
Changed
- Auto-update flow polish: clearer status messages while checking, downloading, and installing.
[0.1.1-alpha.5 and earlier]
Initial alpha series — Calibre Bio and VO2 Master device support over BLE, ANT+ heart rate and power, breath-by-breath metabolic calculations (VO2, VCO2, RER, calories, fat/carb split), session recording, and JSON/CSV export.