Consolidate brownfield packet #4: portal working-reps 1RM - #721
Conversation
Portal hybrid 1RM used totalReps (warmup+working). D-6: use workingReps, falling back to totalReps only when working is 0. Keep shipping estimatedOneRepMaxKg. Portal store-verbatim is unverified — demote CLAUDE.md and PortalExerciseDto KDoc. Do not touch phoenix-portal. Rewrite the inverted PortalSyncAdapterTest golden: 60 kg x 5 working / 3 warmup -> 67.5, not the 8-rep estimate. Default workingReps=0 with totalReps=5 is no longer the proof.
Follow-up on exec review issues 1/2/4/5: velocity+hybrid golden uses 60x5 working / 3 warmup; factory defaults workingReps to totalReps unless explicit 0; adapter comment is WHY only; 0/0 hybrid null still ships a velocity estimate. actualReps stays totalReps (out of D-6).
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Code Review Roast 🔥Verdict: No Issues Found | Recommendation: Merge Oh wait, this PR is actually clean. I need to sit down. I had my flamethrower warmed up and everything. A bug fix that fixes the bug, tests that pin every branch of the new logic (warmup exclusion, working==0 fallback, both-zero null, hybrid-null-doesn't-drop-velocity), and doc updates that demote "portal stores verbatim" to "portal store-verbatim is unverified" instead of asserting unverified behavior. Honestly? This is the kind of consolidation packet that makes a senior engineer do a slow clap at 2am. The only quibble — and it's a nitpick, not a finding — is that the test factory's 📊 Overall: Like finding a unicorn in production — a bug fix that doesn't sneak in three new abstractions, a doc rewrite that strips confidence instead of adding it, and tests that test behavior instead of mocks. Suspiciously competent. 10/10, would review again. Files Reviewed (4 files)
Reviewed by minimax-m3 · Input: 41.4K · Output: 7.1K · Cached: 232.6K Review guidance: REVIEW.md from base branch |
Summary
8951e31bpacket Plan custom exercises and gamification features #4 onto currentmain(4929c1e2f9cc98cfb6dcb08475cff3aebfe059b5).fc049dc522e1eb538b74f16841fe2ca78fd53eba—fix(sync): estimate portal 1RM from workingReps, demote store-verbatim1ed8fd86df53f3f7a543d938e81ff248befd0efe—test(sync): pin portal 1RM fixtures to workingReps, not fallbackBehavior
workingRepswhen positive, falling back tototalRepsonly whenworkingRepsis zero.Verification
./gradlew -Pskip.supabase.check=true :shared:testAndroidHostTest --tests 'com.devil.phoenixproject.data.sync.PortalSyncAdapterTest'— PASS (75 tests, 0 failures)../gradlew -Pskip.supabase.check=true :shared:testAndroidHostTest— PASS (3,729 tests, 0 failures)../gradlew -Pskip.supabase.check=true :shared:compileKotlinIosArm64 :shared:compileTestKotlinIosArm64— PASS.Refs brownfield scan 8951e31b packet #4