fix(training): neutralize volume trends - #2324
Conversation
Replace the unsupported progression judgment with descriptive server-owned direction because no exercise goal or plan context exists.\n\nRefs #2113
|
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. |
|
Warning Review limit reached
Next review available in: 48 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (11)
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 GuideServer and web training strength volume trends are changed from a binary ‘isProgressing’ judgment to a descriptive trend direction, and the UI is updated to render neutral text and chart colors while documenting the validation and incident context. Sequence diagram for neutral exercise volume trend deliverysequenceDiagram
actor User
participant StrengthTab
participant strengthRouter
participant StrengthRepository
participant ProgressiveOverload
participant ProgressiveOverloadCards
User->>StrengthTab: open Strength tab
StrengthTab->>strengthRouter: progressiveOverload({ days })
strengthRouter->>StrengthRepository: getProgressiveOverload(days)
StrengthRepository->>ProgressiveOverload: new ProgressiveOverload(exerciseName, weeklyVolumes)
StrengthRepository->>ProgressiveOverload: toDetail()
ProgressiveOverload-->>StrengthRepository: { exerciseName, weeklyVolumes, slopeKgPerWeek, trend }
StrengthRepository-->>strengthRouter: ProgressiveOverloadRow[]
strengthRouter-->>StrengthTab: ProgressiveOverloadRow[]
StrengthTab->>ProgressiveOverloadCards: render ProgressiveOverloadCards({ exercises })
ProgressiveOverloadCards->>ProgressiveOverloadCards: trendLabel(trend)
ProgressiveOverloadCards->>SparklineChart: SparklineChart({ values })
SparklineChart-->>User: neutral blue volume trend chart
File-Level Changes
Assessment against linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
🤖 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. |
PR Summary by QodoNeutralize strength volume trends (server-owned trend + neutral UI)
AI Description
Diagram
High-Level Assessment
Files changed (11)
|
|
Storybook previews for This comment updates automatically on each PR push. |
Code Review by Qodo
Context used✅ Compliance rules (platform):
183 rules✅ Skills:
fix-provider, write-tests, cloudflare 1. Rounded slope misclassifies trend
|
|
🤖 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. |
|
🤖 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. |
|
🤖 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. |
Summary
isProgressingjudgment with server-owned descriptive volume directionValidation
pnpm vitest run --project unit packages/server/src/repositories/strength-repository.test.ts packages/server/src/routers/strength-stress.test.ts packages/web/src/components/ProgressiveOverloadCards.test.tsx(59 passed)pnpm --dir packages/server exec tsc --noEmitpnpm --dir packages/web exec tsc --noEmitpnpm exec tsc --noEmitpnpm --dir packages/web exec storybook buildPlatform parity
Mobile has no progressive-overload query or rendering surface, so there is no native production behavior to change. The descriptive contract remains available to any future consumer.
Local environment evidence
The broad
pnpm testrun passed the changed tests and produced no assertion failure before an unrelated Compose wrapper test stalled for 3:05 indocker compose ... port db 5432. The runner was stopped with exit 130 without retry or workaround; the unresolved local daemon evidence is recorded indocs/production-incident-baseline.md. Exact-head CI is authoritative for the full suite and DB shards.Fixes #2113
Summary by Sourcery
Neutralize strength progressive-overload volume trends by replacing the boolean progression judgment with a descriptive server-owned trend and updating the web UI to present volume direction neutrally.
New Features:
trendfield (increasing,decreasing,stable) in the progressive overload server response for each exercise.Enhancements:
Documentation:
Tests:
Chores:
isProgressingflag in favor of the newtrendtype.Summary by cubic
Replaces the boolean progression judgment with a server-owned
trendand updates the Strength UI to neutral text and a single blue chart color, with slopes formatted in the user’s units. Fixes #2113.Refactors
ProgressiveOverloadnow exposestrend(increasing|decreasing|stable) and removesisProgressing;strength.progressiveOverloadreturnstrendand exportsProgressiveOverloadTrend.ProgressiveOverloadCardsshows “Increasing/Decreasing/Stable X kg/lb/week” with an absolute slope in the selected units, one neutral sparkline color, and no arrows; section retitled to “Exercise Volume Trends” with neutral empty-state copy.trend; new component test verifies neutral styling and unit formatting.Migration
isProgressingwithtrend.slopeKgPerWeekwith a direction label, formatted in the selected weight units; do not infer desirability from color or icons.Written for commit a173e1f. Summary will update on new commits.