• v1.6.0 2b059ec334

    refactor: extract streak calculation to domain service

    david released this 2026-03-07 21:49:31 +00:00 | 6 commits to main since this release

    Move streak logic from application query to a dedicated domain service,
    making it reusable and properly tested for all habit configurations.

    • Support streaks for all habit types (boolean, counter, value) combined
      with positive/negative and optional target values
    • Handle weekly habits with specific days (streak counts scheduled days)
    • Today completed counts toward streak; not yet completed doesn't break it
    • Calculate current and longest streak in a single forward pass
    • Remove completion_rate from stats (not a useful metric for habits)
    • Add comprehensive unit tests covering all 10 type combinations
    Downloads