github the-momentum/open-wearables 0.5.0
0.5.0 - Product Hunt release!

6 days ago

Highlights

Product Hunt release

Important

We launched our campaign on Product Hunt today and would really appreciate your support in the form of an upvote. Thanks! https://www.producthunt.com/products/open-wearables

Webhooks Ecosystem

A full outgoing webhook infrastracture has been implemented (background processing, managment UI and other improvements since 0.4.3). We have also added more incoming webhooks support for specific providers: Suunto & Whoop. More incoming!

image image

Health Data Precision (Sleep & Heart)

Significant effort went into refining sleep calculations (local time zone grouping, excluding awake time) and heart metrics (HRV-CV precision), greatly increasing the reliability of the analytics.

Developer Experience (DX) Evolution

Improvements of seed data generator and MCP server makes it much easier for developers to build, test and debug applications on top of Open Wearables.

What's Changed

Integrations

  • feat: Add incoming webhook handlers for Whoop by @czajkub in #940
  • feat: Suunto webhooks + provider capabilities reworked by @KaliszS in #942
  • feat(backend): accept Health Connect exercise vocabulary by @kjsteuer in #864
  • fix(backend): fall back to source.app_id / bundle_identifier for original_source_name by @kjsteuer in #863
  • feat(backend): recognize Health Connect power/speed/cadence/total_calories vocabulary by @kjsteuer in #866
  • fix: Oura data extraction improvements by @czajkub in #889
  • chore(backend): align Strava webhook verify token with other providers by @knowald in #977

External Webhooks

  • fix(backend): full sample data in timeseries webhook payloads by @KaliszS in #904
  • fix: svix webhooks improvements by @KaliszS in #923
  • fix: emit webhooks from bulk_create_details for SDK imports by @bartmichalak in #926

Algorithms & Data Processing

  • fix(sleep): group sleep summaries by local start date instead of UTC … by @FBegiello in #852
  • fix: sleep calculation overflow by @FBegiello in #855
  • fix: prevent sleep duration duplication during merge and log skips by @czajkub in #842
  • fix: display sleep duration correctly via endpoint by @czajkub in #883
  • feat: add resilience score celery task by @czajkub in #845
  • fix(backend): align health scores and workout fields with real provider formats by @FBegiello in #892
  • fix: sleep duration excludes awake time, add time in bed column by @bartmichalak in #929
  • fix: align sleep score date to wake-up date via direct record linkage by @FBegiello in #900
  • fix: save sleep efficiency correctly for Apple and Garmin by @czajkub in #944
  • fix: improve HRV-CV storage precision and add 0-100 scoring by @FBegiello in #919
  • fix: improve HRV-CV storage precision and add 0-100 scoring (retry) by @bartmichalak in #958
  • fix(backend): correct peak_expiratory_flow_rate unit to L/min by @bartmichalak in #979

Dashboard & User Experience

Documentation

  • docs: fix e2e guide pagination field + provider list endpoint by @farce1 in #886
  • fix(integrations): subscribe the Celery worker to the webhook_sync queue by @srirsiva in #962
  • docs: trim descriptions to ≤155 chars and separate display title from og:title by @blackbudda in #888
  • docs: add Apple Health integrations list by @bartmichalak in #890
  • docs: document grace-period flag for historical sync on connect by @bartmichalak in #897
  • docs: add Seed Data Generator dev guide by @bartmichalak in #903
  • docs: refresh backend e2e integration guide by @bartmichalak in #909
  • docs: add Health Scores documentation by @anjazych in #908
  • docs: note cloud_only flag for web integration flows by @bartmichalak in #922
  • docs: fix typo "envionment" in Makefile help text by @knowald in #967
  • docs: fix Whoop Developer Dashboard link by @bartmichalak in #982

Infrastructure, Backend & Chores

  • perf(backend): offload webhook processing to background tasks by @sLeeNguyen in #685
  • refactor(backend): move historical sync dispatch into provider strategy by @bartmichalak in #817
  • chore: update sentry-sdk[fastapi] requirement from >=2.42.1 to >=2.57.0 in /backend by @dependabot[bot] in #872
  • feat(mcp): add get_timeseries tool for granular sample queries by @kjsteuer in #882
  • chore: bump jsdom from 28.1.0 to 29.0.0 in /frontend by @dependabot[bot] in #869
  • chore: bump the npm-minor-patch group across 1 directory with 15 updates by @dependabot[bot] in #898
  • chore: bump vite from 7.3.1 to 8.0.0 in /frontend by @dependabot[bot] in #870
  • fix: svix-server railway deployment by @KaliszS in #891
  • chore: deprecate external_user_id in OpenAPI schema by @bartmichalak in #905
  • chore(dashboard): remove legacy seed_data_service module by @FBegiello in #912
  • chore: remove unfinished Python SDK by @bartmichalak in #906
  • fix: slow tests after adding lifespan with webhook event registration by @KaliszS in #924
  • feat: continuous time-series in seed generator by @bartmichalak in #931
  • chore: bump the npm-minor-patch group in /frontend with 5 updates by @dependabot[bot] in #913
  • chore: bump @vitejs/plugin-react from 5.2.0 to 6.0.1 in /frontend by @dependabot[bot] in #914
  • fix(backend): move faker to dependencies group by @KaliszS in #937
  • feat(backend): add trace_id & user_id to logs by @KaliszS in #941
  • chore: bump the npm-minor-patch group in /frontend with 6 updates by @dependabot[bot] in #946
  • chore: optimize backend docker build caching and startup time by @bartmichalak in #831
  • refactor(backend): remove suunto debug endpoints by @KaliszS in #951
  • chore: bump lucide-react from 0.577.0 to 1.0.1 in /frontend by @dependabot[bot] in #947
  • chore(frontend): use Vite's native tsconfig paths resolution by @bartmichalak in #956
  • feat(backend): add created_at to BaseDbModel for all tables by @bartmichalak in #853
  • fix(backend): replace debug print() with structured logging in Whoop provider by @knowald in #969
  • chore(backend): remove unused SERVER_HOST from .env.example by @knowald in #971
  • chore: remove unused root .dockerignore by @knowald in #975
  • chore(backend): remove orphaned records.py route module by @knowald in #973
  • feat: add Product Hunt featured badge to README by @psobusiak in #988
  • feat: product hunt badge by @psobusiak in #989

New Contributors

Full Changelog: 0.4.3...0.5.0

Don't miss a new open-wearables release

NewReleases is sending notifications on new releases.