Skip to content

Allow Peloton workouts to omit total_work - #2472

Merged
Asherlc merged 1 commit into
codex/mobile-route-hygienefrom
fix-sentry-issue-7634170017
Aug 10, 2026
Merged

Asherlc merged 1 commit into
codex/mobile-route-hygienefrom
fix-sentry-issue-7634170017

Conversation

@Asherlc

@Asherlc Asherlc commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Relax the Peloton workout schema so total_work may be omitted as well as null
  • Add a regression test covering a workout payload without total_work
  • Record the incident in the production baseline for future reference

Validation

  • Added a failing-then-passing regression test for the omitted-field payload
  • Verified the Peloton client and parser test coverage around this contract mismatch

Notes

  • This fixes the strictness mismatch with Peloton’s observed API response shape without adding any fallback behavior

Summary by Sourcery

Relax Peloton workout handling to accept workouts where Peloton omits the total_work field and document the related production incident.

Enhancements:

  • Allow Peloton workouts to parse successfully when the total_work field is omitted as well as null.

Documentation:

  • Record the Peloton total_work omission incident and its resolution in the production incident baseline.

Tests:

  • Add a regression test ensuring PelotonClient accepts workout responses that omit total_work.

Summary by cubic

Relaxed the Peloton workout schema in packages/peloton-client by changing total_work to z.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.

Review in cubic

@cursor

cursor Bot commented Aug 10, 2026

Copy link
Copy Markdown

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.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @Asherlc, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@codereviewbot-ai

Copy link
Copy Markdown

🤖 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-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8046c3fb-e8d1-4466-9519-b169f6ac0de2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Relaxes the Peloton workout schema to allow total_work to be omitted (undefined) as well as null, adds a regression test for such responses, and records the production incident and fix in the incident baseline documentation.

Sequence diagram for PelotonClient.getWorkouts with optional total_work

sequenceDiagram
  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
Loading

File-Level Changes

Change Details Files
Relax Peloton workout validation so workouts without total work are accepted.
  • Updated the workout Zod schema to treat total_work as nullish instead of strictly nullable, allowing the field to be omitted.
  • Kept all other workout schema fields and validation behavior unchanged.
packages/peloton-client/src/types.ts
Add regression coverage ensuring the client accepts workouts where Peloton omits total_work.
  • Added a new client test that simulates a workouts API response with total_work omitted on a workout item.
  • Verified that getWorkouts resolves successfully and returns the mocked response without validation errors.
packages/peloton-client/src/client.test.ts
Document the production incident and the applied fix in the incident baseline.
  • Added a new incident entry describing the symptoms, Zod validation failure on missing total_work, root cause, and schema fix.
  • Captured validation approach and remaining deployment/verification steps for the Peloton response-contract mismatch.
docs/production-incident-baseline.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@github-actions

Copy link
Copy Markdown
Contributor

Storybook previews for 7b2bf8d5 are ready:

This comment updates automatically on each PR push.

@Asherlc
Asherlc merged commit bd2aece into codex/mobile-route-hygiene Aug 10, 2026
94 checks passed
@Asherlc
Asherlc deleted the fix-sentry-issue-7634170017 branch August 10, 2026 18:55
Asherlc added a commit that referenced this pull request Aug 11, 2026
* fix(peloton): accept omitted total work (#2472)

* fix(mobile): align Expo SDK patches
Asherlc added a commit that referenced this pull request Aug 11, 2026
…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
Asherlc added a commit that referenced this pull request Aug 11, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 11, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 12, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 12, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 12, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 13, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 13, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 13, 2026
* 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
Asherlc added a commit that referenced this pull request Aug 14, 2026
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant