Skip to content

Implement routine deload modifiers (Active Recovery & Heavy Deload) #511

Merged
9thLevelSoftware merged 7 commits into
mainfrom
feat/495-active-recovery-deload-attributes
Jun 7, 2026
Merged

Implement routine deload modifiers (Active Recovery & Heavy Deload) #511
9thLevelSoftware merged 7 commits into
mainfrom
feat/495-active-recovery-deload-attributes

Conversation

@9thLevelSoftware

Copy link
Copy Markdown
Owner

No description provided.

9thLevelSoftware and others added 2 commits June 7, 2026 00:20
…secase/ApplyRoutineModifierUseCase.kt

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 7, 2026 15:54

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces routine launch modifiers (Active Recovery and Heavy Deload) to temporarily scale weights or reps before starting a workout. It adds the core logic in ApplyRoutineModifierUseCase, the UI in RoutineModifierDialog, and integrates this flow across the application's managers, view models, and screens, supported by localization strings and unit tests. A high-severity issue was identified in RoutineFlowManager where the active profile ID is not passed to the modifier use case, causing it to default to "default" and potentially resolve personal records from the wrong profile.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6348d19984

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@kilo-code-bot

kilo-code-bot Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Code Review Roast 🔥

Verdict: No Issues Found | Recommendation: Merge

Oh wait, the incremental changes actually fixed the previous complaints. Active Recovery now correctly derives fallback PR from the profile scope, and the modifier flows are wired up properly. I had to double-check this wasn't a trap.

📊 Overall: Like a perfectly executed reload — the changes are precise, targeted, and address the exact gaps identified before. The test coverage for timed exercises in heavy deload scenarios proves someone actually thought about edge cases.

Files Reviewed (2 files)
  • shared/src/commonMain/kotlin/com/devil/phoenixproject/domain/usecase/ApplyRoutineModifierUseCase.kt
  • shared/src/commonTest/kotlin/com/devil/phoenixproject/domain/usecase/ApplyRoutineModifierUseCaseTest.kt

Reviewed by laguna-m.1-20260312:free · 1,119,531 tokens

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 727af803e6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 24c41fc3f6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

9thLevelSoftware and others added 2 commits June 7, 2026 17:47
Resolve merge conflicts between routine deload modifiers (Issue #495)
and equipment rack feature (Issue #448) by keeping both sets of changes.

https://claude.ai/code/session_01MBWwVaUrnXjzZxYKKnn33i

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e777b00315

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

exercise.copy(warmupSets = scaleFirstWarmupOnly(exercise.warmupSets, percent))
} else {
val baseline = resolveBaselineOneRepMax(exercise, profileId)
val adjustedWeight = roundToHalfKg(baseline * percent / 100f).coerceAtLeast(MIN_WEIGHT_KG)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Clamp Active Recovery weights to the cable limit

When a stored/estimated 1RM is high enough (for example >183 kg per cable with the 60% option), this only enforces a 0.5 kg floor and can load an adjusted weight above Constants.MAX_WEIGHT_PER_CABLE_KG (110 kg). The modified routine then feeds that value directly into workout parameters, and WorkoutCommandValidator.validateProgramParams rejects weights above the hardware ceiling, so auto-start or tapping Start from the overview can fail instead of starting the deload; clamp the computed Active Recovery weight to the same max as other routine weights.

Useful? React with 👍 / 👎.

@9thLevelSoftware

Copy link
Copy Markdown
Owner Author

Attached live-sandbox E2E report for PR #511 / Issue #495 Routine Deload Modifiers:

PDF report:
https://gist.github.com/9thLevelSoftware/e3b4a2d20a8e16989eae65da6266f52d#file-pr511-routine-deload-modifiers-e2e-report-pdf

Direct PDF download:
https://gist.githubusercontent.com/9thLevelSoftware/e3b4a2d20a8e16989eae65da6266f52d/raw/pr511-routine-deload-modifiers-e2e-report.pdf

HTML source report, retained for reference:
https://gist.github.com/9thLevelSoftware/e3b4a2d20a8e16989eae65da6266f52d#file-pr511-routine-deload-modifiers-e2e-report-html

Summary:

  • 16 individual checks documented
  • 13 current passing checks
  • 1 resolved environment blocker documented
  • 1 current merge blocker: GitHub reports mergeable=false / mergeable_state=dirty
  • 0 current test/build failures
  • 1 skipped/caveated manual modifier-dialog traversal follow-up
  • 1,887 Android host tests passed with zero failures/errors
  • 26 Android app unit tests passed with zero failures/errors
  • Includes per-step screenshot evidence, generated proof images, log/XML evidence references, and the corrected verdict: AUTOMATED PASS; MERGE BLOCKED.

Sanitization/publication gate:

  • HTML/PDF byte scan passed: no local filesystem paths, no local usernames, no file:// URIs, no credential markers
  • PDF download verified: %PDF header present and %%EOF marker present

Notes:

  • Fresh emulator launch passed after clearing stale app data from a prior PR Add local equipment rack support to workout sessions #502 DB v34 install; the initial DB downgrade crash is documented as RESOLVED/environmental.
  • The PR should be rebased or updated with main before merge because GitHub REST reports mergeable_state=dirty.

Resolve merge conflicts with weight recommendation (PR #499),
timed-set countdown cues (PR #505), and Health Connect export (PR #516)
by keeping both deload modifiers and the new main features.

https://claude.ai/code/session_01MBWwVaUrnXjzZxYKKnn33i
@9thLevelSoftware 9thLevelSoftware merged commit 48d44e6 into main Jun 7, 2026
9 checks passed
@9thLevelSoftware 9thLevelSoftware deleted the feat/495-active-recovery-deload-attributes branch June 7, 2026 23:22
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.

[Feature] Active Recovery and Heavy De-load modifiers applied to existing routines befo...

3 participants