Skip to content

Releases: apermo/bodyrefactoring

v14.6.8

29 Apr 16:16
ed9918d

Choose a tag to compare

Added

  • Schedule for 2026-04-29: New baseline training schedule
  • Bike alternative: Added Fahrrad as alternative to Walkingpad on Tuesdays (3 sessions) and to walking options on Saturdays

Changed

  • Reps standardized to 15 across all rep-counter exercises: Butterfly decreased from 18, Latziehen/Brustpresse from 12, Adduktion/Heel Taps/Bird Dog/Woodchoppers from 10
  • Monday volume: Added Dumbbell Lateral Raises and Farmer's Carry (both optional) to support calorie goal
  • Wednesday volume: Added Dumbbell Lateral Raises and Farmer's Carry to support calorie goal

v14.6.7

05 Mar 10:09
4162852

Choose a tag to compare

Fixed

  • Friday schedule: Replace 4 cable/dumbbell exercises with Neolymp band intro exercises to fit time slot (removed Beinbeugen Kabel, Cable Kickbacks, Lateral Raises, Farmer's Carry)

Changed

  • PR validation: Remove redundant individual failure comments; summary comment already covers all results

v14.6.6

05 Mar 08:44
8ba7782

Choose a tag to compare

Added

  • Schedules for Mar 6, 9, 15 covering home training, vacation, and return
  • Neolymp band intro exercises on Fri/Sat/Sun (Mar 6-8) for equipment familiarization
  • Vacation schedule (Mar 9-14) with Neolymp Bands Board, Pull Up Bands, Minibands, Trizepsseil, Blazepods, and yoga mat
  • Wattwandern integrated

Fixed

  • Speech service voice initialization on first app start

v14.6.5

27 Feb 16:01
4da9f0c

Choose a tag to compare

Added

  • Schedule for week of 2026-02-28 with optimized Monday order

Changed

  • Monday exercise order: Bizeps Curls after Adduktion for leg rest, Rudern/Latziehen grouped
  • Butterfly Reverse: Increased to 3x15 (from 3x12)
  • Butterfly: Synced rep timing to 2200ms across Mon/Wed (from 2500ms)
  • Beinbeugen Kabel: Synced rep timing to 2250ms across Mon/Fri (from 2500ms)
  • Cable Pull-Throughs: Adjusted rep timing to 2400ms (from 3000ms)
  • Stalebot: Runs at 10am UTC, exempts all typed/area/priority labels, separate PR timing (14 days)

v14.6.4

17 Feb 22:05
7b7d47f

Choose a tag to compare

Added

  • Schedule for week of 2026-02-18 with progressive overload and cooldown variety
  • Brustpresse on Friday for 3x/week chest press frequency
  • Cooldown alternatives on Mon, Tue, Thu, Fri, Sat (pick based on feel)

Changed

  • Bein-Adduktion: Reduced to 4x10, increased to STUFE 2 (weight jump)
  • Brustpresse: Reduced to 3x12 for weight progression
  • Latziehen: Reduced to 3x12 for STUFE 7 progression
  • Butterfly: Increased to 3x18 (endurance before next weight bump)
  • Dumbbell Woodchoppers: Slower tempo (3400ms) for control
  • Tuesday Walkingpad: Split into 3x 30min sessions
  • Mon/Wed chest order: Alternated to reduce machine changes

Removed

  • Decline Crunches (MAX) from Friday

v14.6.3

10 Feb 09:22
58c26f5

Choose a tag to compare

Added

  • Schedule for week of 2026-02-09 with Friday and weekend adjustments

Changed

  • Friday: Replaced cable woodchoppers with dumbbell woodchoppers (4x10, bilateral)
  • Friday: Replaced cable lateral raises with dumbbell lateral raises (both arms, 2kg, 3x15)
  • Friday: Reduced heel taps timing to faster rep pace
  • Saturday: Swapped to "Endurance & Kondition" with nature walk + rowing intervals
  • Sunday: Swapped to "Combat & VR Day" with boxing + Beat Saber
  • Weekend swap enables combining Saturday walk with shopping (shops closed Sundays)

v14.6.2

02 Feb 16:44
8bf5be2

Choose a tag to compare

Added

  • Schedule for week of 2026-02-02 with exercise refinements
  • Face Pulls on Monday (rear delts, external rotators)
  • Overhead Face Pulls on Wednesday (lower traps, overhead stability)
  • Friday exercises: Knee Plank, Bird Dog for plank progression
  • Friday frequency: Latziehen (3x/week), Beinbeugen Kabel (2x/week)
  • Saturday: Blazepods reaction drills, rowing intervals
  • Sunday: Beat Saber/VR now required (not optional) for 900 kcal target

Changed

  • Increased reps from 12 to 15 on most exercises (Butterfly Reverse kept at 12)
  • Friday restructured as "Core & Cable Strength" with Mon/Wed exercise overlap
  • Saturday restructured as "Combat & Conditioning" (boxing moved from Friday)
  • Sunday restructured as "Endurance Day" (walk 45-60 min + VR 30-45 min)
  • Beat Saber description: Removed "Expert Level" → "Level nach Gefühl wählen"
  • Decline Crunches moved to end of Friday as benchmark exercise

Removed

  • Friday: Pallof Press (Christopeit cable height not adjustable)
  • Friday: Boxing section (moved to Saturday)

v14.6.1

25 Jan 22:49

Choose a tag to compare

Changed

  • Updated training schedule with bilateral rep counters for unilateral exercises

v14.6.0

24 Jan 12:39
f81a6ee

Choose a tag to compare

Added

  • Password protection for private instances

    • APP_PASSWORD_HASH env var for bcrypt password authentication
    • Dedicated login.php and logout.php pages
    • Session management with configurable duration
    • Logout button in menu when authenticated
    • Graceful fallback to consent flow when no password set
  • Customizable branding via environment variables and config

    • APP_NAME - Custom app title (default: "Body Refactoring")
    • APP_ICON - Path to custom icon/logo
    • Dynamic branding in splash screen, header, intro modal
    • Color theming via Tailwind config in app-settings.json
  • Secure schedule API endpoint

    • All schedule access now routes through schedules/index.php API
    • Direct JSON file access blocked (.htaccess for Apache, nginx config for DDEV)
    • API respects APP_PASSWORD_HASH authentication when configured
    • GET /schedules/ returns list with URLs
    • GET /schedules/?file=schedule-*.json serves schedule content
  • Configurable schedule path

    • SCHEDULE_PATH env var (default: "schedules")
    • Enables separate schedule directories for different instances

Changed

  • Renamed trainings/ directory to schedules/

  • Schedule schema v3 with date-based task filtering

    • custom exercise type with customLabel for user-defined badges
    • dateCondition field for conditional task display:
      • once: Show only on specific date (YYYY-MM-DD)
      • weekOfMonth: Show only during specific weeks [1-5]
      • weekParity: Show only in odd or even ISO weeks
    • dateDescription field displayed as amber badge in UI
    • Date-filtered tasks excluded from day completion requirements
    • Validator updated to support v3 schema

v14.5.0

23 Jan 17:42

Choose a tag to compare

Added

  • Playwright e2e testing infrastructure
    • Configured for DDEV local development server
    • Default browser: Mobile Safari (iOS viewport)
    • Configurable via BROWSERS env var (e.g., BROWSERS=chromium,webkit)
    • Page Object Model pattern (tests/pages/AppPage.js)
    • NPM scripts: test, test:headed, test:debug, test:ui, test:report, test:all
  • Comprehensive e2e test suite (58 tests across 10 spec files)
    • App initialization and navigation
    • Consent screen and intro modal flow with cookie/localStorage verification
    • Exercise completion with localStorage persistence
    • Exercise boundaries (day locking, confirmation dialogs)
    • Rep counter full flow (2x5 reps @ 1s, 7s cooldown)
    • Rep counter timing verification (4 reps @ 1.5s, 15s cooldown)
    • Notes/logbook functionality
    • Export/import data functionality
    • Recovery and sick mode
    • Mock schedule for fast, predictable tests
  • Test categorization (quick vs slow)
    • Quick tests (default): 54 tests, ~27s, suitable for PR checks
    • Slow tests (@slow): 4 tests involving real-time rep counter flows
    • npm test runs quick tests only, npm run test:full runs all
  • Testing documentation (docs/testing.md)
    • How to run tests
    • Test architecture and file structure
    • Adding new tests guide
    • Consent/intro screen handling

Changed

  • Test reliability improvements
    • Replaced silent if blocks with explicit test.skip() for proper reporting
    • Replaced XPath selectors with CSS .filter({ has: }) approach
    • Increased splash screen timeout (15s → 30s) for parallel test stability
    • Added visibility assertions before interactions