Allow Peloton workouts to omit total_work - #2472
Conversation
Fixes DOFEK-SERVER-5E
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
🤖 Review skipped: Repository rate limit exceeded. Free accounts are limited to 2 reviews per 4 hours per repository. Upgrade to a paid plan for unlimited reviews. |
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Reviewer's GuideRelaxes the Peloton workout schema to allow Sequence diagram for PelotonClient.getWorkouts with optional total_worksequenceDiagram
actor User
participant PelotonClient
participant PelotonAPI
participant pelotonWorkoutSchema
User->>PelotonClient: getWorkouts()
PelotonClient->>PelotonAPI: GET /api/user/{userId}/workouts
PelotonAPI-->>PelotonClient: workouts response (total_work omitted)
PelotonClient->>pelotonWorkoutSchema: parse(response)
alt total_work omitted or null
pelotonWorkoutSchema-->>PelotonClient: workouts accepted
PelotonClient-->>User: workouts data
else invalid shape
pelotonWorkoutSchema-->>PelotonClient: PelotonResponseError
PelotonClient-->>User: PelotonResponseError
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Storybook previews for This comment updates automatically on each PR push. |
* fix(peloton): accept omitted total work (#2472) * fix(mobile): align Expo SDK patches
…2473) * chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * docs: plan body composition metric switch * feat(web): switch body trend metrics * feat(mobile): switch body trend metrics * fix: make body trend selector accessible * chore: add workspace metadata * fix(ci): remove generated dependency fixtures
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * docs: specify climbing grade preferences * docs: plan climbing grade systems * feat(training): use sandbag for climbing grades * feat(climbing): add grade system preferences * fix(training): avoid dynamic grade regex * fix(ci): satisfy climbing grade checks * fix(climbing): preserve session summary details * fix(climbing): address grade system review feedback * fix(web): type selector error story
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * fix(wahoo): refresh rejected access tokens * test: cover Wahoo sync retry * test: cover Wahoo retry limit
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * Fix Hang Ten HealthKit sync * Use next migration number for Hang Ten priority * Fix Hang Ten migration SQL lint * Address Hang Ten review feedback * Fix HealthKit workout sync CI * Document Hang Ten CI incident * Restore HealthKit sync mutation coverage * Document mutation coverage CI incident * Address Hang Ten review feedback * Address body fat chart review feedback
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * fix(sync): name failed provider * fix(sync): tailor recovery guidance * fix: address review feedback * refactor(mobile): split climbing detail section * fix(ci): remove unused mobile component * docs: record PR CI incident * fix(ci): remove duplicate test type import * docs: update CI incident outcome
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * docs: define provider freshness * docs: plan provider freshness * chore: add paseo workspace configuration * docs: record paseo configuration request * refactor: share scheduled sync cadence * feat: evaluate provider sync freshness on server * feat: query last successful provider syncs * feat: expose provider sync freshness * fix: stop dashboard observation auto-sync on web * fix(web): show freshness during reauth * fix: separate iOS food writeback from provider sync * feat: show provider freshness on ios * fix: satisfy provider freshness verification gates * fix sync timestamp normalization * test sync timestamps against postgres * docs: record provider freshness incident * fix: clarify provider freshness metadata * fix: track scheduled sync freshness * fix: add sync origin constraint without write lock * test: cover unknown sync origin on errors * refactor: validate scheduled sync payload
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * Remove first-party climbing input * Fix CI after climbing input removal * Align climbing read-only tests with main * Add climbing review coverage
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * Remove first-party food logging UI * Add Paseo workspace configuration
* chore: ignore local worktrees * Prevent mobile app test routes * fix: tighten mobile route hygiene guard * fix: handle no-patch audit advisories * fix: colocate mobile route fixture tests * docs: specify processing alert clarity * docs: specify partial activity totals * docs: plan partial activity measurements * docs: plan processing alert clarity * docs: clarify dismissal ownership tests * feat: add processing alert dismissals * fix: name processing alert dismissal fks * feat: derive processing failure timestamps * fix: scope processing alerts to current ops * feat: expose processing alert dismissal * docs: align grouped alert contract * fix: align processing alert contract * fix: remove legacy processing alert key * feat: group processing failure presentation * feat: clarify web processing failures * fix: preserve active processing state * feat: clarify mobile processing failures * fix: color active recompute status * test: cover processing alert persistence * fix: align processing dismissal behavior * Add Paseo workspace scripts and lifecycle config (#2469) * chore: configure Paseo workspace workflows * fix: allow alertable in spell check * fix: scope mutation checks to pull request changes * test: align mobile tRPC mocks * test: align web tRPC mocks * fix: sync mobile Expo dependencies * docs: record CI incident findings * Add body fat percentage trend charts to web and mobile (#2470) * docs: specify body fat percentage chart * docs: plan body fat percentage chart * feat: expose mobile body fat history * feat: add web body fat chart * feat: show body fat chart on web body page * feat: show body fat trend on mobile recovery * test: cover mobile recovery body fat response * test: type recovery body fat fixture * fix: close body fat chart review findings * fix: preserve body fat chart layout * fix: restore CI checks * test: strengthen processing mutations * fix(peloton): accept omitted total work (#2472) * Fix production Sentry failures * feat: add Hangboarding import, contracts, and UI (#2471) * Remove duplicate processing migration * Fix CI regressions from merge resolution * Remove Slack food integration from Dofek * Fix CI after Slack extraction * Repair workspace lockfile * Complete workspace lockfile repair * Synchronize workspace lockfile
Summary
total_workmay be omitted as well as nulltotal_workValidation
Notes
Summary by Sourcery
Relax Peloton workout handling to accept workouts where Peloton omits the total_work field and document the related production incident.
Enhancements:
Documentation:
Tests:
Summary by cubic
Relaxed the Peloton workout schema in
packages/peloton-clientby changingtotal_worktoz.number().nullish(), allowing workouts that omit the field and fixing sync failures from over‑strict validation (Sentry DOFEK-SERVER-5E). Added a regression test and updated the production incident baseline.Written for commit 27f8657. Summary will update on new commits.