Skip to content

hrm: v0.30.0

Choose a tag to compare

@arii arii released this 20 May 07:26
ff408fe

0.30.0 (2026-03-27)

Features

  • audit vrt tools (#9592) (f8ec2ee)
  • large: [REFACTOR] Centralize Redundant Heart Rate and Workout Type Definitions (#5677) (aeeacd8)
  • large: Consolidate Redundant Hooks and Components (#8887) (35e421d)
  • large: Consolidate redundant TypeScript types (#8615) (f5b4160)
  • large: Enable VRT for WorkoutTableHeader and Refactor Workout Table Model (#8956) (c8e300c)
  • large: Expand VRT Coverage for Dashboard Layout and Component States (#8900) (5e766e8)
  • large: Improve Code Quality: Resolve Knip-Reported Unused Code and Dependencies (Partial) (#8878) (5ec61fa)
  • large: Improve Timer Visibility and Centering (#8924) (4fcc58f)
  • large: Inconsistent HR Zone Calculation (Client vs. Dashboard) - Implement Zone-Aware Streaming (#6747) (d057be4)
  • large: Refactor Bluetooth HRM reconnection to use linear backoff (ADR-0007) and simplify UI (#9114) (a219e94)
  • large: Refactor HR zone info pre-calculation (#7791) (b009581)
  • large: Refactor Max HR Calculation to Shared Utility (#8885) (f47056e)
  • large: Refactor: Implement Unified Spotify Service Bus (#6044) (afc28cf)
  • large: Refactor: Reduce Knip max-issues threshold and resolve code quality issues (#8386) (293e3a8)
  • large: Refactor: Split vrt.spec.ts into Component-Specific Files (#5476) (c8e826c)
  • large: Unified Spotify Service Bus Refactor (#8387) (a6da921)
  • large: Unify Persistent Footers for Mobile Optimization (#9321) (00f714d)
  • medium: [BUG] Remove hardcoded Google Doc URLs in DashboardClient (#9162) (e761ae6)
  • medium: [REFACTOR] Standardize Duration Formatting Utilities (#5676) (f7de43a)
  • medium: Add GitHub Actions variables to control Gemini API usage (#9408) (8c5bf02)
  • medium: Clarify 'Reset Permissions & Settings' button text (#9039) (5e94e24)
  • medium: Document and Standardize Next.js Service Singleton Pattern (#9199) (4045968)
  • medium: Enhance and Stabilize Unit Test Coverage for Core HRM Logic (#5458) (ce3bce4)
  • medium: Enhance Bluetooth HRM Connection Resilience and Background Continuity (#9163) (4a9ca8d)
  • medium: Enhance HR Zone Distribution Component with Donut Chart and Improved UX (#8335) (37e428f)
  • medium: Extract HRM Stats Calculation Logic from HrmSessionManager (#8334) (3777732)
  • medium: Fix Authentication Thrashing with Circuit Breaker (#6068) (2d06a36)
  • medium: Fix Critical State Management and Data Recording Issues (#5417) (a1a84b1)
  • medium: Fix knip errors and enable CI check (#9171) (e2852f8)
  • medium: Fix Lint Issues in FIT Export Refactor (#8914) (03f6d1d)
  • medium: Fix Spotify Playlist Track Selection (#6076) (4a8db60)
  • medium: Fix Spotify Volume Control Race Condition and 204 Noise (#9235) (bf08594)
  • medium: Fix Spotify Web Playback SDK Re-initialization and Token Sync Race Conditions (#8940) (e2f5ad0)
  • medium: Fix Stale HR Tile Persistence and Align TTL (#6657) (888897a)
  • medium: Gender-Inclusive Calorie Estimation (#5433) (fb52bf0)
  • medium: Improve Bluetooth Connection Retry & State Management (#9136) (9904e6a)
  • medium: Improve SignalQualityIndicator responsiveness for BLE failure detection (#9317) (38c82a6)
  • medium: Refactor and Test useWorkoutSessionManager (#6094) (c041273)
  • medium: Refactor and Validate Calorie Calculation Logic (#6104) (d1d431f)
  • medium: Refactor Bluetooth Connection Retry Logic (#9134) (82d2dec)
  • medium: Refactor ConnectView user profile state management (#9130) (2610e51)
  • medium: Refactor ErrorFallback VRT to trigger error client-side (#9159) (faf4228)
  • medium: Refactor HrmDataStore for Memory Efficiency and Stats Tracking (#7814) (5860a8c)
  • medium: Refactor HrTile & Stabilize CI Tests (#8370) (c7e2630)
  • medium: Refactor WorkoutSummary Component (#6226) (5d1589c)
  • medium: Refactor: Harmonize HrZone interface with HeartRateZone type (#8401) (2f88e50)
  • medium: Remove redundant clear icons in Spotify search inputs (#9453) (c594559)
  • medium: Resolve Hardcoded Spotify Token Fields and Improve Refresh Logic (#8396) (90d25e1)
  • medium: Restore improved HR tile colors and Zone 6 display (#7651) (3d6de7a)
  • medium: Standardize Spotify track playback command dispatch (#9546) (094fc9c)
  • small: Add data-testid to SpotifyDeviceSelector (#9548) (ce3fec4)
  • small: Enable Automatic Workout Data Persistence on /client/connect Page (#5659) (a7644c9)
  • small: Enhance Spotify Volume Slider UX: Length, Touch Target, and Layout (#9316) (c690ada)
  • small: Enhance Timer Display Legibility: Refine Opacity and Glow Effects (#8948) (31038f7)
  • small: Extract ResetSection component from ConnectView.tsx (#8955) (2e7236e)
  • small: Fix Bluetooth Auto-Connect Infinite Loop (#6042) (de7e903)
  • small: Fix Native Table configuration and API routing (#9137) (5c6ac4a)
  • small: Fix Spotify Playlist Track Crash (#5413) (d716cbf)
  • small: Improve Page Management and Navigation (#8851) (ec45772)
  • small: Move Refresh Button to Improve Vertical Spacing (#6238) (ec67c69)
  • small: Optimize HR Tile for High-Visibility Dashboards (#7798) (0c80e85)
  • small: Optimize Visual Regression Test Suite Performance (#8833) (bae702b)
  • small: Refactor Spotify Token Delivery to Event-Driven Singleton Pattern (#7808) (b22964b)
  • small: Refactor: Harden Spotify Service Initialization and Error Handling (#9132) (7d6e56c)
  • small: Restore HR Tile Fixed Height and Typography Prominence (#8894) (1d4b9a9)
  • small: Security: Remove/Disable app/api/debug/* Routes in Production Build (#7813) (722d97b)
  • testing: add unit tests for core utility functions (#5435) (d68649f)

Bug Fixes

  • bluetooth: Prevent race condition in GATT connection (#6075) (8442db7)
  • ci: ensure tests and config changes trigger CI pipeline (#8801) (0666e9b)
  • ci: handle missing --numstat flag in gh pr diff (#8780) (ee40107)
  • ci: resolve BASE_SHA/HEAD_SHA crash on issue_comment triggers (#9489) (10f99d8)
  • critical: Ensure verdict field always present in Gemini review results (#5837) (c2d9302)
  • spotify: Volume control failures on /client/control - duplicate player and snap-back (#9282) (55f65cc)