Version 2.46.2
June 12, 2026
Changed
- • (deps-dev) bump overcommit from 0.69.0 to 0.71.0
Version 2.46.1
June 12, 2026
Fixed
- • (review) auto-apply Codex P1/P2 findings [skip-codex]
- • (db) add ON DELETE CASCADE to athlete_invite_links FK
- • (models) add explicit class_name to athlete_invite_links
- • (models) destroy athlete_invite_links when user is deleted
- • (review) auto-apply Codex P1/P2 findings
- • (models) destroy athlete_invite_links when user is deleted
Version 2.46.0
June 12, 2026
Added
- • (views) wire athlete invite link into empty state and reg flow
- • (routes) add athlete invite link controller and routes
- • (db) add AthleteInviteLink model and migration
- • (js) add Web Share API support to clipboard controller
- • (i18n) add invite_trainer keys for athlete → trainer share
Changed
- • (models) remove auto-fix athlete_invite_links has_many
- • (specs) remove trailing comma in SPECS_NEEDING_FIXES array
- • (specs) skip pre-existing full-suite failures, restore skip list
- • (policy) fix expired? threshold in spec and factory
- • (specs) fix request spec host for HostAuthorization
- • (cleanup) expand TRUNCATE to all 19 tables, drop RESTART IDENTITY
- • (workflows) add manual Codex second-pass trigger
- • (cleanup) replace delete_all chain with TRUNCATE CASCADE
- • (specs) remove forced skip list, add ViewComponent helpers
- • (coverage) set realistic 50% floor, fix Sidekiq threshold
- • (coverage) wire SimpleCov with Cobertura output for CI gate
- • (quality) enforce scope, coverage threshold, and spec coverage
- • (workflows) fix Codex loop-break to use commit message marker
- • (hooks) add ADR-0007 pre-push check, break Codex auto-fix loop
Fixed
- • (review) auto-apply Codex P1/P2 findings [skip-codex]
- • (review) auto-apply Codex P1/P2 findings [skip-codex]
- • (review) auto-apply Codex P1/P2 findings [skip-codex]
- • (policies) restrict workout show? to program owner only
- • (config) skip Sidekiq Redis ping in test env
- • (views) wire copied i18n to clipboard, commit schema
- • (auth) clear stale intended_role on plain signup
- • (services) extract AthleteInviteLinkLookup to fix ADR-0007 violation
- • (views) fix invite icon theme, remove em dash, drop remove-trainer btn
- • (css) reduce letter-spacing on athlete invitations labels
- • (css) move safe-area-inset-bottom from pill to outer nav shell
Version 2.45.0
June 11, 2026
Added
- • (dashboard) redesign athlete home with compact widget rows
- • (dashboard) redesign trainer dashboard
- • (views) redesign trainer dashboard with attention widgets
- • (i18n) add trainer dashboard attention and getting started keys
Changed
- • (deps) bump oauth2 to 2.0.22 (GHSA-pp92-crg2-gfv9)
- • (css) document new CSS architecture and component workflow
- • (css) split app.css monolith into per-component files
- • (views) apply dark/light theme to athlete views
- • (button) brand gradient and migrate legacy bg-blue-600 buttons
- • (dashboard) redesign Getting Started steps and fix dividers
- • (dashboard) extract trainer queries to service object
Fixed
- • (dashboard) address PR review regressions
- • (review) auto-apply Codex P1/P2 findings
- • (review) auto-apply Codex P1/P2 findings
- • (review) auto-apply Codex P1/P2 findings
- • (layouts) remove stylesheet_link_tag "tailwind" added by Codex
- • (review) auto-apply Codex P1/P2 findings
- • (review) auto-apply Codex P1/P2 findings
- • (js) rewrite week-accordion using Stimulus value reactivity
- • (js) explicitly register week-accordion Stimulus controller
- • (cookie-banner) replace JS dismiss with server-side Turbo Stream
- • (css) workout logger dark mode and layout fixes
- • (layout) skip cookie banner when consent cookie is set
- • (views) use user date format on trainer dashboard subtitle
- • (views) remove text-gray-900 from modal headings for dark theme
- • (layouts) add viewport-fit=cover for iOS safe-area insets
- • (docker) add bundle install to css watcher container startup
- • (dashboard) button sizing, modal frame, assign label
- • (specs) anchor week_start to past Monday in tracker spec
- • (css) add dark mode overrides for orange/red/green-100 badge colors
- • (css) move form control layout to @layer base for utility overrides
- • (css) add form control border-radius, surface-raised var, badge dark mode
- • (views) align getting started buttons and make all primary
- • (views) replace raw checked interpolation with check_box_tag
- • (mailer) point dev email links to synergym-dev.nuc:80
Version 2.44.0
June 07, 2026
Added
- • (onboarding) profile columns, email verification, settings, resume banner (#331)
Version 2.43.3
June 06, 2026
Fixed
- • (onboarding) UX bugs, privacy consent, and walkthrough E2E test (#330)
Version 2.43.2
June 06, 2026
Changed
- • (deps) bump view_component from 4.11.0 to 4.12.0
- • (deps) bump bootsnap from 1.24.1 to 1.24.6
- • (codex) skip Codex review trigger for dependabot PRs (#329)
Version 2.43.1
June 05, 2026
Changed
- • (codex-auto-fix) block agent from editing .github/ files
- • (codex-auto-fix) add grep verification step to auto-fix prompt
- • (codex-auto-fix) run fix job on self-hosted NUC runner
Fixed
- • (review) auto-apply Codex P1/P2 findings
- • (review) auto-apply Codex P1/P2 findings
- • (auth) restore explicit privacy checkbox; guard auto-fix against re-applying fixed findings
- • (review) auto-apply Codex P1/P2 findings
- • (auth) require explicit privacy consent for Google OAuth signup
- • (onboarding) apply app-theme to the rendered onboarding layout
- • (seeds) restore soft-deleted preview users on re-seed
- • (onboarding) fix 4 smoke-test bugs in signup and onboarding flow
Version 2.43.0
June 04, 2026
Added
- • (admin) add soft delete and restore for users
Changed
- • (workflows) skip @codex review if commit already reviewed
- • (workflows) post codex review comment after all checks pass
- • auto-trigger @codex review after all checks pass
- • (codex-auto-fix) remove [skip ci] from auto-fix commit message
- • replace broken codex-review with auto-fix on Codex findings
- • auto-trigger @codex review on every PR push
- • (models) extract soft-delete into SoftDeletable concern
Fixed
- • (models) pause active assignments on user soft-delete
- • (i18n) add devise.failure.deleted_account translation to all locales
- • (mailers) filter kept admins in proposal mailer; drop --dangerously-skip-permissions from auto-fix
- • (models) cancel athlete pending invitations on soft-delete
- • (workflows) add same-repo guard to codex-review CI job
- • (workflows) restrict auto-fix to same-repo branches only
- • (models) disable invite links and cancel invitations on trainer soft-delete
- • (workflows) fix codex-auto-fix trigger and P2 kept scope on trainers
- • (review) fix P1 PostgreSQL FOR UPDATE aggregate and P1 token exposure
- • (review) address Codex P1 shell injection and P2 admin lock race
- • (admin) make last-admin guard atomic with FOR UPDATE lock
- • (soft-delete) fix P1 session revocation and P2 deleted user leakage
- • (seeds) fix demo:setup for current schema — privacy_policy, integer reps, no is_primary
Version 2.42.0
June 03, 2026
Added
- • (import) warn on duplicate program name at preview step
- • (seeds) add Vertical Row Machine to exercise library
- • (seeds) add Leg Press + 45° and Horizontal variants to exercise library
- • (import) block submit on unresolved amber exercises (require link or confirm)
- • (import) restore import-skip Stimulus controller
- • (import) restore import-wizard Stimulus controller
Changed
- • (import) extract private methods to reduce cyclomatic complexity
- • (maintenance) add dependency update policy
- • (import) update spec to reflect multi-day preview — remove first(1) comment
- • (import) batch exercise match queries on preview — eliminates N+1
- • (seeds) add variant base exercises + chain comprehensive seed from nuc_preview
- • (import) add request spec and XLSX fixture for program imports
Fixed
- • (import) enforce link-or-confirm server-side in create action
- • (import) scope exercise lookup to trainer-visible exercises
- • (import) guard variant creation against standard library exercises
- • (import) 3 review fixes — confirm after clear, seed superset IDs, variant input
- • (import) revert superset IDs to integer + fix clear() restoring amber
- • (ci) use localhost fallback in test DB URL + rubocop corrections
- • (import) pending count message, submit alignment, remove em dash placeholder
- • (seeds) add Vertical Row / Rematore verticale variants to Upright Row
- • (import) pulley exercises match via Italian variant names
- • (import) remove LAT→dorsali expansion + add PULLEY→cavi + Face Pull
- • (import) variant section hidden until exercise selected + check-circle icon on confirm
- • (infra) isolate test DB from dev — TEST_DATABASE_URL prevents rspec wiping dev seed data
- • (import) 4 UX fixes — skip undoable, confirm text i18n, new variant creation, goals seeded
- • (import) add fundamental exercises to seed + confirm button after search input
- • (import) use tag.option for variant selected attr — BetterHtml compliance
- • (import) use SecureRandom.uuid for superset group IDs — eliminates race condition
- • (import) clean up orphaned temp files on preview + rake cleanup task
- • (import) status dot turns green on manual exercise link
- • (import) parser fixes — single-line days, tempo priority over pyramid, SET UP name stripping
- • (import) remove first(1) workaround — wizard controller now restored
Version 2.41.0
May 31, 2026
Added
- • (admin/blog) split posts into Active/Archived tabs, drafts first
Version 2.40.1
May 31, 2026
Fixed
- • (blog) scope archive to original IDs, not re-evaluated draft query
Version 2.40.0
May 31, 2026
Added
- • (blog) add merge_drafts rake task + fix admin/users 500
Fixed
- • (admin) declare virtual attributes for admin users count query.
- • (admin) declare virtual attributes for admin users count query
Version 2.39.5
May 31, 2026
Fixed
- • (admin) move admin action above private — was silently skipped by Rails
- • (admin) guard nil instance vars at view level as defence-in-depth
- • (admin) initialize dashboard vars before data load to prevent nil on any render path
- • (admin) remove require_relative from ProductionMonitoring, guard nil health vars
Version 2.39.4
May 31, 2026
Fixed
- • (admin) move admin action above private — was silently skipped by Rails
Version 2.39.3
May 31, 2026
Fixed
- • (admin) guard nil instance vars at view level as defence-in-depth
- • (admin) initialize dashboard vars before data load to prevent nil on any render path
Version 2.39.2
May 31, 2026
Fixed
- • (admin) remove require_relative from ProductionMonitoring, guard nil health vars
Version 2.39.1
May 30, 2026
Changed
- • LOC reduction phase 3 — concerns, services, and version bump fix (#308)
Version 2.39.0
May 30, 2026
Added
- • (admin) wire monitoring data to dashboard, add user management (#306)
Version 2.38.4
May 30, 2026
Changed
- • LOC reduction phase 2 — extract helpers, services, query objects (#305)
Version 2.38.3
May 30, 2026
Changed
- • (deps) roll up essential dependency updates (#304)
Version 2.38.2
May 29, 2026
Changed
- • (architecture) remove redundant fetch, cover all commits on push
- • (services) reduce cyclomatic complexity in StreakCalculator and WorkoutSchedulingHelper
- • (architecture) fix complexity gate — remove invalid flag, enforce max 10
- • (architecture) fetch full history for diff checks
- • (exercises) reduce ExercisesController below 400 LOC
- • revert fetch full history for push diff checks
- • revert ignore pre-existing files in LOC gate
- • revert unsupported rubocop flag in complexity gate
- • (fitness) scope complexity check to modified files only
- • (fitness) add cyclomatic complexity and layer skip fitness functions (ADR-0007)
- • (services) extract five deep modules from God Objects
Fixed
- • (services) use historical log check in StreakCalculator day lookups
- • (services) replace Rails.root with __dir__-relative path in ExerciseNameTranslator
- • (ci) remove unsupported rubocop flag in complexity gate
- • (ci) ignore pre-existing oversized files in LOC gate
- • (ci) fetch full history for push diff checks
- • (dashboard) weekly completion uses historical lookup
- • (services) preserve historical completions after cache expiry (P1)
- • (specs) fix factory constraints and avoid null cache store
- • (specs) correct factory keys and test behavior after completion logic fix
- • (services) correct completion logic and resolve CI failures
- • (services) replace ActiveSupport blank?/presence with plain Ruby equivalents
Version 2.38.1
May 27, 2026
Changed
- • (model) cover user value object extraction
- • (model) extract user value objects
- • (architecture) add monolith decision ADRs
Fixed
- • (deps) patch security audit gems
Version 2.38.0
May 21, 2026
Added
- • (blog) mermaid support in markdown + GPT-generated title
Changed
- • (blog) switch blog generation model to gpt-4o-mini
Fixed
- • (ci) use pull_requests[0].number from workflow_run payload
- • (seo) strip query/fragment before checking og:image MIME type
- • (ci) ERB lint, smarter codex trigger, CI failure notifier
- • (seo) correct og:image MIME type and picsum seed strategy
Version 2.37.4
May 21, 2026
Changed
- • (ci) remove codex-review-on-push workflow
Version 2.37.3
May 21, 2026
Changed
- • (dev) enforce PR-only workflow for main branch
Fixed
- • (ci) use pull_request_target so comment posting works on fork PRs
- • (ci) grant issues:write permission to codex-review workflow
- • (dev) broader push-to-main guard + automate Codex re-review
- • (dev) rename ProtectedBranch to ProtectedBranches in overcommit config
Version 2.37.2
May 21, 2026
Changed
- • (release) gate release on CI success via workflow_run
Fixed
- • (security) prevent arbitrary file deletion via temp_path param
- • (deps) patch CVE-2026-44836 and CVE-2026-44837 in view_component
- • (deps) patch CVE-2026-35611, CVE-2026-4029{5-8}, CVE-2026-4225{6-8}
- • (lint) resolve ERB lint offenses in program import view
- • (ci) resolve RuboCop offenses and RSpec failures
Version 2.37.1
May 21, 2026
Fixed
- • (ci) correct ERB lint exit code and expand 2.37.0 changelog
Version 2.37.0
May 21, 2026
Added
- • (program-import) trainer program import from file
- • (workout-import) CSV/XLSX workout log import for trainers
Changed
- • (components) fix ButtonComponent API and update component count
- • (baseline) rewrite stale docs and capture domain context
- • (import) remove workout log import; keep program import only
- • (docs) add session log, cleanup docs, and dev scripts
- • (seeds) add exercise seeds, translation scripts, rake tasks
- • (db) add goals, variant constraint, and exercise migrations
- • (routes) add workout-log and program import routes
- • (i18n) add translations for import and new UI keys
- • (claude) add commit conventions and design system rules
- • (dev) seed blog preview content
Fixed
- • (views) migrate admin, misc, shared, and layout views
- • (views) migrate athlete, auth, onboarding views to app-* theme
- • (views) migrate client, trainer, dashboard, program views
- • (views) migrate workout-days and exercises to app-* theme
- • (services) expand translation and variant promotion services
- • (assignments) fix reactivation, modal, and assignment views
- • (models) update program, assignment, and exercise models
- • (js) update confirmation, exercise-search, file-input controllers
- • (exercises) deduplicate search results via EXISTS subquery
- • (components) update ViewComponents to app-* design system
- • (button) support content blocks and correct md padding
- • (css) gradient text WebKit isolation and bg-clip fix
- • (blog-admin) reuse shared controls in editor
- • (public-ui) align landing and blog theme polish
- • (blog-admin) add live preview authoring workflow
- • (trainer) align assignment and settings behavior
- • (ui) polish trainer navigation and visual regressions
Version 2.36.1
May 07, 2026
Fixed
- • (trainer) address UI, settings, and assignment regressions (#273)
Version 2.36.0
May 07, 2026
Added
- • blog post thumbnails — auto per release, admin form preview (#272)
Changed
- • concurrency cancel-in-progress changed to false so bot-triggered workflow_run
Version 2.35.2
May 07, 2026
Fixed
- • (blog) stronger prompt voice and upgrade to gpt-4o (#270)
Version 2.35.1
May 07, 2026
Fixed
- • (admin) define fitness-* classes, fix dark mode, improve blog admin UX (#269)
Version 2.35.0
May 07, 2026
Added
- • (blog) auto-generate release blog draft on GitHub Release (#267)
Version 2.34.18
May 03, 2026
Fixed
- • (view) improve athlete workout mobile ui (#264)
Version 2.34.17
April 30, 2026
Fixed
- • (pwa) consolidate favicon package (#263)
Version 2.34.16
April 30, 2026
Changed
- • (deps) bump puma from 7.2.0 to 8.0.1
Version 2.34.15
April 30, 2026
Changed
- • (deps) bump view_component from 4.4.0 to 4.8.0
Version 2.34.14
April 30, 2026
Changed
- • (deps-dev) bump minitest-reporters from 1.7.1 to 1.8.0
Version 2.34.13
April 30, 2026
Changed
- • (deps-dev) bump overcommit from 0.68.0 to 0.69.0
Version 2.34.12
April 30, 2026
Changed
- • (deps-dev) bump faker from 3.6.1 to 3.8.0
Version 2.34.11
April 30, 2026
Changed
- • (deps) bump propshaft from 1.3.1 to 1.3.2
Version 2.34.10
April 30, 2026
Changed
- • (deps) bump sidekiq from 8.1.2 to 8.1.3
Version 2.34.9
April 30, 2026
Changed
- • (deps) bump bootsnap from 1.23.0 to 1.24.1
Version 2.34.8
April 29, 2026
Changed
- • (release) v2.34.7
- • (release) v2.34.6
Fixed
- • (workout) scope persisted rest timer by context (#258)
Version 2.34.7
April 23, 2026
Changed
- • (release) v2.34.6
Fixed
- • (workout) scope persisted rest timer by context (#258)
Version 2.34.5
April 12, 2026
Fixed
- • (pwa) make workout completion confirmation reliable on iOS (#242)
Version 2.34.4
April 11, 2026
Changed
- • (deps-dev) bump brakeman from 8.0.2 to 8.0.4 (#215)
- • (deps-dev) bump faker from 3.5.2 to 3.6.1 (#218)
- • (deps-dev) bump rspec-rails from 8.0.3 to 8.0.4 (#222)
- • (deps) bump kamal from 2.10.1 to 2.11.0 (#226)
- • (deps) bump solid_queue from 1.3.2 to 1.4.0 (#228)
- • (deps) bump thruster from 0.1.18 to 0.1.20 (#231)
- • (deps) bump sidekiq from 8.1.1 to 8.1.2 (#232)
- • (deps) bump lucide-rails from 0.7.3 to 0.7.4 (#233)
- • (deps) bump mailgun-ruby from 1.4.2 to 1.4.3 (#235)
- • (deps-dev) bump parser from 3.3.10.2 to 3.3.11.1 (#236)
Version 2.34.2
March 27, 2026
Fixed
- • (test) align e2e helper and clean placeholder tests (#237)
Version 2.34.1
March 26, 2026
Fixed
- • (ux) rest timer, Playwright E2E, and guest nav spacing (#230)
Version 2.34.0
March 17, 2026
Added
- • GDPR minimal foundation (#224)
Version 2.33.2
March 16, 2026
Fixed
- • (workout-logger) localize tips and superset panel (#223)
Version 2.33.1
March 06, 2026
Fixed
- • rest timer PWA behavior and NUC dev setup (#219)
Version 2.33.0
March 04, 2026
Added
- • (workout) implement cardio timer and redesign rest timer
- • (workout) add workout completion validation
Changed
- • (e2e) add workout timer spec
Fixed
- • (security) sanitize return_to param and ignore false positive in brakeman
- • (nav) preserve scroll position on back link
- • (ui) adjust mobile navbar spacing
- • (progress) resolve interpolation error in select options
Version 2.32.0
March 03, 2026
Added
- • (media) add free GIF sync and library audit
- • (i18n) stabilize EN/IT translation pipeline
- • (progress) improve analytics and trainer assignment UX
- • (exercises) add detail page and variant workflow
- • (forms) add number stepper for program duration
- • (timer) add persistent rest timer workflow
Changed
- • (exercises) add design and library research notes
Fixed
- • (ui) refine mobile nav and footer behavior
Version 2.31.3
March 03, 2026
Changed
- • (deps-dev) bump parser from 3.3.10.0 to 3.3.10.2
- • (deps-dev) bump rspec-rails from 8.0.2 to 8.0.3
Version 2.31.2
March 03, 2026
Changed
- • (deps) bump view_component from 4.2.0 to 4.4.0
- • (deps) bump sidekiq from 8.1.0 to 8.1.1
Version 2.31.1
March 03, 2026
Changed
- • (deps) bump actions/upload-artifact from 6 to 7
- • (deps) bump omniauth-google-oauth2 from 1.2.1 to 1.2.2
- • (deps-dev) bump web-console from 4.2.1 to 4.3.0
- • (deps) bump solid_queue from 1.3.1 to 1.3.2
- • (deps) bump devise from 4.9.4 to 5.0.2
- • (deps) bump bootsnap from 1.18.6 to 1.23.0
- • (deps) bump openssl from 3.3.2 to 4.0.1
Version 2.31.0
March 03, 2026
Added
- • (blog) refine public blog layout (#213)
Version 2.30.0
March 03, 2026
Added
- • (blog) improve guest navbar links (#210)
Version 2.29.0
March 02, 2026
Added
- • (blog) weekly article webhook
Changed
- • (blog) fix webhook initializer lint
- • (blog) fix webhook lint issues
Version 2.28.10
February 17, 2026
Changed
- • (deps) bump solid_queue from 1.2.4 to 1.3.1
- • (deps) bump view_component from 4.1.1 to 4.2.0
- • (deps) bump rails from 8.1.1 to 8.1.2
Version 2.28.9
February 17, 2026
Changed
- • (deps) bump turbo-rails from 2.0.20 to 2.0.23
- • (deps-dev) bump brakeman from 7.1.2 to 8.0.2
- • (deps) bump thruster from 0.1.16 to 0.1.18
- • (deps) bump puma from 7.1.0 to 7.2.0
- • (deps) bump pg from 1.6.2 to 1.6.3
- • (deps) bump importmap-rails from 2.2.2 to 2.2.3
Version 2.28.8
February 17, 2026
Changed
- • (deps) pin faraday >= 2.14.1 for CVE-2026-25765
- • (workflow) document dev quality and commits
- • (deps) bump mailgun-ruby and faraday-multipart
- • (scripts) add prepare-pr helper
- • (dev) add setup and NUC guides
Fixed
- • (auth) unify account settings and password flows
- • (nav) improve language dropdown overflow
- • (i18n) add program_assignment errors and auth texts
- • (program_assignments) dedupe modal errors and localize
Version 2.28.7
February 06, 2026
Fixed
- • (ui) add body padding for fixed navbar and remove conflicting legacy CSS
Version 2.28.6
February 06, 2026
Fixed
- • (ui) use flexbox for desktop navbar to prevent overlap
Version 2.28.5
February 06, 2026
Fixed
- • (ui) responsive navbar layout and mobile spacing
Version 2.28.4
February 06, 2026
Fixed
- • (ui) improve navbar grid layout and increase button text breakpoints
Version 2.28.3
February 06, 2026
Fixed
- • (ui) enforce exact height on search input for alignment
Version 2.28.2
February 06, 2026
Changed
- • (docs) update architecture documentation and version to 2.28.0
Version 2.28.1
February 06, 2026
Fixed
- • (ui) align searchbox and filters in exercise library
Version 2.28.0
February 05, 2026
Added
- • (workout_exercises) add edit turbo_stream response
- • (translations) Italian importer, rake tasks and integration doc
- • (i18n) add and update locale keys for programs and exercises
- • (ui) add SearchInputComponent with app-aligned design
Changed
- • (changelog) unreleased entries and post-merge production steps
- • (services) translation and wger importer
- • (javascript) update stimulus controllers
- • (helpers) add translation and UI helpers
- • (controllers) exercises, programs, locales and assignments
- • (views) update shared navigation and layout
- • (views) update exercises, programs and workout views
- • (views) update client_connections and misc views
- • (views) update trainer assignments and invite links
- • (views) update athlete, dashboards, profile and home
- • (views) update admin and public blog_posts
- • (components) update cards, inputs, tabs and stats
- • (views) use SearchInput in client_connections and programs
- • (app) navbar breakpoints, tooltip and search input CSS
- • (tailwind) add components to content for ViewComponent classes
Fixed
- • (exercises) ORDER BY for distinct and scope search by policy
- • (erb_lint) exclude vendor from RequireInputAutocomplete
- • (ui) add autocomplete to SearchInput for ERB lint
- • (admin) remove conflicting margin classes in blog post edit
Version 2.27.0
February 04, 2026
Added
- • (tasks) add i18n validation and hardcoded string detection tasks
- • (seeds) add demo users seed file
- • (javascript) update stimulus controllers for bulk selection and exercise features
- • (exercises) update exercise controllers, views and policies
- • (program_assignments) add program extension and date calculator features
- • (devise) update devise views with translations
- • (i18n) update locale files with translations and structure
Changed
- • (spec) use :unprocessable_content instead of deprecated :unprocessable_entity
- • (exercises) fix formatting and script type in exercises index view
- • (docs) add i18n structure and modal testing documentation
- • (views) update various views and admin controller
- • (components) update icon and icon button components
- • (config) update gitignore, gemfile lock and routes
Fixed
- • (workout_days) pass plural to daily_limit_message and align spec expectations
- • (i18n) remove duplicate YAML document separators in ko, pt, zh locale files
- • (i18n) remove duplicate YAML document separator in ja.yml
Version 2.26.0
January 23, 2026
Added
- • (i18n) add Italian translations for devise and missing labels
- • (i18n) add translate_primary_focus helper for muscle group translation
- • (i18n) translate workout day names via muscle group lookup
- • (i18n) translate workout day names via muscle group lookup
Changed
- • (js) fix formatting in exercise_focus_controller
- • (i18n) use non-translated names in views and fix back links
- • (i18n) use non-translated names in UI components
- • (i18n) disable translation for program and workout day names
Fixed
- • (i18n) translate workout log messages and ensure locale in exercise forms
- • (i18n) translate all alert and notice messages in controllers
- • (i18n) ensure muscle group translation uses current locale in forms
Version 2.25.2
January 23, 2026
Fixed
- • (i18n) add missing trainer_notes and weight_types translations
Version 2.25.1
January 23, 2026
Fixed
- • (i18n) fix exercise translation logic and add missing labels
Version 2.25.0
January 23, 2026
Added
- • (i18n) comprehensive translation fixes for production
Version 2.24.0
January 23, 2026
Added
- • (i18n) translate day abbreviations in weekly calendar
Version 2.23.2
January 23, 2026
Fixed
- • (i18n) translate all hardcoded Back buttons
Version 2.23.1
January 23, 2026
Fixed
- • (i18n) use helpers.localized_pluralize in ViewComponent
Version 2.23.0
January 23, 2026
Added
- • (i18n) add missing Italian translations for dashboard and workout labels
Version 2.22.0
January 23, 2026
Added
- • (i18n) add missing Italian translations for production pages
Version 2.21.0
January 23, 2026
Changed
- • (security) add GitGuardian ignore for locale files
- • (css) update onboarding styles
- • (dependencies) update gems and schema for translation features
- • (translations) add exercise translation integration documentation
- • (translations) add specs for translation services and models
- • (models) wrap debug logging in development check
Fixed
- • (security) update GitGuardian config to ignore locale file false positives
- • (tests) resolve failing tests and security warnings
- • (security) add explicit action_text-trix 2.1.16 dependency
- • (i18n) add app language preference (browser fallback + user setting)
- • (exercises) add per-locale exercise translations with fallback rendering
Version 2.20.10
December 28, 2025
Changed
- • (deps) bump actions/upload-artifact from 5 to 6
Version 2.20.9
December 28, 2025
Changed
- • (deps) bump lucide-rails from 0.7.1 to 0.7.3
Version 2.20.8
December 28, 2025
Changed
- • (deps) bump sidekiq from 8.0.8 to 8.1.0
Version 2.20.7
December 28, 2025
Changed
- • (deps) bump omniauth-rails_csrf_protection from 2.0.0 to 2.0.1
Version 2.20.6
December 28, 2025
Changed
- • (deps) bump kamal from 2.8.2 to 2.10.1
Version 2.20.5
December 28, 2025
Changed
- • (deps-dev) bump brakeman from 7.1.1 to 7.1.2
Version 2.20.4
December 21, 2025
Fixed
- • (auth) allow athletes with admin privileges to access programs
Version 2.20.3
December 19, 2025
Changed
- • (erb) auto-fix ERB formatting
Fixed
- • (workout-scheduling) check all workout days for completion detection
- • (workout-days) correct header status for past completed workouts
Version 2.20.2
December 19, 2025
Fixed
- • (dashboard) correct workout day sequencing when workout completed earlier this week
Version 2.20.1
December 19, 2025
Changed
- • (ui) improve calendar design with status priority and clearer visual hierarchy
Fixed
- • (ui) add explicit text color to workout log form inputs
- • (ui) reposition Today's Workout title above calendar component
- • (security) fix CSP nonce generator for sessions without ID
Version 2.20.0
December 14, 2025
Added
- • (admin) add set_role task to change admin primary role
Version 2.19.0
December 14, 2025
Added
- • (blog) add admin blog management system
Version 2.18.3
December 14, 2025
Changed
- • (ui) update program card component for improved accessibility and styling
Fixed
- • (workout-logs) ensure weight values are converted to float before save
- • (ui) fix mobile overflow for increment/decrement buttons
- • (workout-logs) ensure weight values are converted to float before save
Version 2.18.2
December 11, 2025
Fixed
- • (layout) update Open Graph image meta tags for enhanced social media compatibility
Version 2.18.1
December 11, 2025
Fixed
- • (layout) update Open Graph and Twitter Card meta tags for improved social sharing
Version 2.18.0
December 11, 2025
Added
- • (workout) enhance cardio set handling in workout log controller
- • (workout) enhance cardio set handling in workout log controller
Changed
- • (db) update schema
- • (helpers) improve workout exercise helper methods
- • (workout) improve weight conversion and display precision
Version 2.17.0
December 11, 2025
Added
- • (trainer) improve program assignments interface
- • (blog) add Turbo Stream support to blog posts controller
- • (workout) improve workout exercise log form component
- • (admin) add is_admin field and improve admin user management
Version 2.16.0
December 11, 2025
Added
- • (blog) add blog post views and card component
- • (blog) add remaining blog feature files (views, components, routes, integration, config, seeds, docs, tests)
- • (blog) integrate blog posts into home, sitemap, admin dashboard, and navigation
- • (blog) add blog posts controllers with public and admin interfaces
Changed
- • (blog) fix slug uniqueness validation test
- • (blog) fix slug presence validation test for auto-generated slugs
- • (blog) fix slug presence validation test
- • (blog) fix uniqueness validation and timestamp precision tests
- • (blog) fix uniqueness validation test
- • (blog) add blog post factory and fix test expectations
- • (blog) add blog post model and request specs
Fixed
- • (blog) add explicit format handling to blog posts controller
Version 2.15.0
December 09, 2025
Added
- • (seo) add OG and Twitter Card tags
- • (landing) refine hero messaging and CTA
Changed
- • (strategy) update validation-first approach
Version 2.14.1
December 09, 2025
Changed
- • (changelog) document SEO hotfix improvements
Fixed
- • (seo) fix language markup by adding lang='en' to all HTML layouts
- • (seo) improve page title and meta description for better SEO
- • (seo) update H1 heading to match page content and ensure single H1 per page
- • (seo) update Open Graph tags for better social media sharing
Version 2.14.0
December 09, 2025
Added
- • (seo) add JSON-LD structured data for better search visibility
- • (changelog) add RSS feed for changelog updates
- • (seo) add changelog URL to sitemap
- • (ui) add version display in footer and settings
- • (changelog) add public changelog page
- • (seo) add sitemap and meta tags for better search visibility
Changed
- • (middleware) add response compression with Rack::Deflater
Version 2.13.0
December 08, 2025
Added
- • (js) update JavaScript controllers for cardio
- • (views) update views for cardio exercise logging
- • (components) add workout header component and update cardio forms
- • (controllers) update controllers for cardio exercise support
- • (models) add cardio exercise support to workout log
- • (db) add cardio fields to workout logs
Version 2.12.0
December 07, 2025
Added
- • (workout) add exercise focus and scroll controllers
- • (ui) implement mobile-first tooltip interaction
- • (workout) add past workouts page with week accordion
- • (workout) add sticky navbar with timer for active workouts
Changed
- • (architecture) update frontend architecture and testing documentation
- • (lint) fix linting issues (trailing whitespace and spacing)
- • (workout) update completion view and route policies
- • (ui) rename Dashboard to Home across athlete interface
Fixed
- • (nav) correct workout day selection logic in navigation
- • (workout) correct weight conversion for kg preference users
Version 2.11.5
December 04, 2025
Fixed
- • (solid_queue) enforce SOLID_QUEUE_IN_PUMA requirement in production
Version 2.11.4
December 04, 2025
Changed
- • (heroku) remove worker dyno, enable SolidQueue inline mode
Fixed
- • (heroku) add safeguards for SOLID_QUEUE_IN_PUMA requirement
Version 2.11.3
December 03, 2025
Fixed
- • (dashboard) check logs directly to identify specific workout_day completed
Version 2.11.2
December 03, 2025
Fixed
- • (dashboard) check all workout days in all_weekly_workouts_completed_for_date?
Version 2.11.1
December 03, 2025
Fixed
- • (dashboard) re-check completed weeks when should_continue_streak returns true
Version 2.11.0
December 03, 2025
Added
- • (progress) add search box to exercise progress index page
Changed
- • (progress) remove search box from Session Details section
Fixed
- • (dashboard) simplify streak calculation to check completed weeks first
Version 2.10.3
December 03, 2025
Fixed
- • (dashboard) correct streak and weekly completion calculations
Version 2.10.2
December 03, 2025
Fixed
- • (pwa) skip Safari internal URLs in service worker
Version 2.10.1
December 03, 2025
Fixed
- • (dashboard) check workout logs for past completed workouts
Version 2.10.0
December 03, 2025
Added
- • (exercise-progress) add search functionality for logged data
Fixed
- • (workout-logs) convert ActionController::Parameters to hash for any? check
- • (workout-logs) remove debug logs and fix orphaned log deletion
- • (workout-logs) use integer set_number and delete logs before updates
- • (dashboard) remove all has_logs checks from completion detection
- • (dashboard) remove has_logs check from completion detection
- • (navigation) show in-progress status for started workouts
- • (exercise-variants) enable creation and selection in workout forms
Version 2.9.0
November 30, 2025
Added
- • (views) add superset UI and visual grouping
- • (controllers) add superset creation and breaking actions
- • (models) add superset grouping logic
- • (db) add superset support to workout exercises
Version 2.8.3
November 28, 2025
Fixed
- • (workout-days) update response format for workout day updates
Version 2.8.2
November 28, 2025
Changed
- • (workout-exercises) update specs for single duration field
- • (workout-exercises) add exercise category to search events
- • (workout-exercises) improve time display and form layout
- • (app) disable hover prefetch globally
Fixed
- • (assignments) remove horizontal scrolling in table
- • (workout-days) duplicate and delete improvements
- • (workout-exercises) cardio duration validation and cancel button
Version 2.8.1
November 26, 2025
Fixed
- • (workouts) filter completed workouts from upcoming and show past completion banner
Version 2.8.0
November 26, 2025
Added
- • (preferences) add workouts_per_day preference (1-3)
Changed
- • (db) update schema with workouts_per_day column
- • (workouts) add tests for weight conversion and workouts_per_day
Fixed
- • (workouts) implement multiple workouts per day limit
- • (calendar) show workout status indicators correctly
- • (dashboard) show in-progress workouts and update status correctly
- • (workouts) correct weight display in all views
- • (workouts) store weights in lbs standard unit
Version 2.7.1
November 26, 2025
Changed
- • (onboarding) fix indentation in workflow step handler
- • (demo) add quick start guide for demo recording
- • sign overcommit configuration and exclude binary files
Version 2.7.0
November 25, 2025
Added
- • (landing) rebrand landing page with competitor analysis insights and improve offline PWA experience
Changed
- • (exercise_cleanup) remove trailing whitespace in exercise cleanup task
Version 2.6.2
November 25, 2025
Changed
- • (deps) bump actions/checkout from 5 to 6
Version 2.6.1
November 25, 2025
Changed
- • (deps) bump omniauth-rails_csrf_protection from 1.0.2 to 2.0.0
Version 2.6.0
November 24, 2025
Added
- • (exercises) add delete_french rake task for non-interactive deletion
Version 2.5.0
November 24, 2025
Added
- • (exercises) add delete_french rake task for non-interactive deletion
Version 2.4.0
November 19, 2025
Added
- • (pwa+workouts) respect rest unit preferences and add install fallback
Version 2.3.1
November 19, 2025
Fixed
- • (migrations) guard tempo column addition
Version 2.3.0
November 19, 2025
Added
- • (workout-exercises) implement Phase 1 advanced workout features (#129)
Version 2.2.0
November 15, 2025
Added
- • (pwa) implement progressive web app functionality (#128)
Version 2.1.0
November 13, 2025
Added
- • (preferences) implement user preferences system (#127)
Version 2.0.2
November 12, 2025
Changed
- • Add helper script to create cache table manually
Version 2.0.1
November 12, 2025
Fixed
- • (production) Add error handling for missing SolidCache table
Version 2.0.0
November 12, 2025
Added
- • (progress) major feature - progress visualization MVP
Version 1.10.0
November 12, 2025
Added
- • (progress) implement progress visualization MVP (#41) (#126)
Version 1.9.2
November 12, 2025
Changed
- • (deps) bump solid_cache from 1.0.8 to 1.0.10 (#123)
Version 1.9.1
November 12, 2025
Changed
- • (deps) bump view_component from 4.1.0 to 4.1.1 (#124)
Version 1.9.0
November 12, 2025
Added
- • Implement workout logging and completion tracking with constraints (#125)
Version 1.8.1
November 09, 2025
Fixed
- • (routes) change suspend and expire links to button_to (#122)
Version 1.8.0
November 09, 2025
Added
- • Restrict delete permissions to admins and fix redirect issues (#121)
Version 1.7.0
November 07, 2025
Added
- • (athlete) implement dashboard and workout view (#120)
Version 1.6.2
November 07, 2025
Fixed
- • (ui) increase copy button size for better mobile usability
- • (security) disable browsing-topics in Permissions-Policy header
Version 1.6.1
November 07, 2025
Fixed
- • (client-invitations) improve share link tab navigation and athlete search (#118)
Version 1.6.0
November 07, 2025
Added
- • (trainer-invite-links) enhance onboarding and invite link functionality (#117)
Changed
- • (release) v1.5.5
Fixed
- • (oauth) Fix Google OAuth 422 errors and improve onboarding flow
Version 1.5.5
November 06, 2025
Fixed
- • (oauth) Fix Google OAuth 422 errors and improve onboarding flow
Version 1.5.4
November 05, 2025
Fixed
- • (seeds) use duration_seconds for Burpees cardio exercise
Version 1.5.3
November 05, 2025
Changed
- • (deps-dev) bump shoulda-matchers from 6.5.0 to 7.0.1 (#112)
Version 1.5.2
November 05, 2025
Changed
- • (deps-dev) bump brakeman from 7.1.0 to 7.1.1 (#115)
Version 1.5.0
November 04, 2025
Added
- • (programs) implement Program Assignment System (Issue #28) (#113)
Version 1.4.0
November 03, 2025
Added
- • (jobs) Run reminder job every hour instead of daily
Version 1.3.9
November 03, 2025
Fixed
- • use raw SQL in rake tasks to bypass Rails 8 connection role issues
Version 1.3.8
November 03, 2025
Fixed
- • wrap rake tasks in connected_to to force primary connection
- • wrap rake tasks in connected_to to force primary connection
Version 1.3.7
November 03, 2025
Fixed
- • bypass validations in email test rake task to avoid sharding errors
Version 1.3.6
November 03, 2025
Changed
- • add rake task for testing all email types
Version 1.3.5
November 03, 2025
Fixed
- • (email) replace hardcoded localhost URLs with production URL helpers in all mailer templates
Version 1.3.4
November 03, 2025
Fixed
- • (email) force absolute production URLs via action_controller.default_url_options
Version 1.3.3
November 03, 2025
Fixed
- • (invites) prevent chip overlapping header; honor invitation token in OAuth callbacks
Version 1.3.2
November 03, 2025
Fixed
- • (invites) place Pending chip top-right via absolute; redirect OAuth sign-in to focused invitations when token present
Version 1.3.1
November 03, 2025
Fixed
- • (invites) mobile layout wraps pending chip; preserve deep-link after login/signup
Version 1.3.0
November 03, 2025
Added
- • (invites) deep-link to athlete invitations page with focused card; avoid partial-height token page
Version 1.2.23
November 03, 2025
Fixed
- • (invites) prevent auto-accept; add invitation details flow and update email link
Version 1.2.22
November 03, 2025
Fixed
- • correct reminder scope date ranges
Version 1.2.21
November 03, 2025
Fixed
- • correct SolidQueue worker command and fix reminder date logic
Version 1.2.20
November 03, 2025
Fixed
- • (mail) use noreply@synergym.fit as default sender and default_options
Version 1.2.19
November 03, 2025
Fixed
- • (client_connections) add error handling for resend invitation email delivery
Version 1.2.18
November 03, 2025
Fixed
- • (mail) use postmaster@domain format for Mailgun SMTP login
Version 1.2.17
November 02, 2025
Fixed
- • improve exercise seeds for production and fix mailgun SMTP configuration
Version 1.2.16
November 02, 2025
Fixed
- • (exercises) fix turbo-frame targeting for links and use turbo_frame_tag helper
Version 1.2.15
November 02, 2025
Fixed
- • (exercises) ensure form submits as full page not within frame
- • (exercises) remove invalid turbo_stream redirect action
Version 1.2.14
November 02, 2025
Fixed
- • (migration) handle existing user_role column
- • (migration) handle existing onboarding columns
- • (procfile) correct release command to use rake instead of rails
Version 1.2.13
November 02, 2025
Fixed
- • (migration) handle existing role_confirmed column
Version 1.2.12
November 02, 2025
Fixed
- • handle missing client_connections table gracefully
Version 1.2.11
November 02, 2025
Fixed
- • add error handling to icon component with fallbacks
Version 1.2.10
November 02, 2025
Fixed
- • add comprehensive error handling to exercises and programs controllers
Version 1.2.9
November 02, 2025
Fixed
- • add error handling for trainer dashboard stats to prevent 500 errors
Version 1.2.8
November 02, 2025
Fixed
- • handle missing OAuth session data in role confirmation
Version 1.2.7
November 02, 2025
Fixed
- • prevent redirect loops in role confirmation and onboarding
Version 1.2.6
November 02, 2025
Fixed
- • (auth) use consistent redirect URI for Google OAuth
Version 1.2.5
November 02, 2025
Fixed
- • (auth) check onboarding status in OAuth callback redirect
Version 1.2.4
November 02, 2025
Fixed
- • (auth) skip redirect before_actions in OAuth callback controller
Version 1.2.3
November 02, 2025
Fixed
- • (auth) whitelist OAuth callbacks to prevent redirect loops
Version 1.2.2
November 02, 2025
Fixed
- • (auth) align sign up Google OAuth button with working login implementation
Version 1.2.1
November 01, 2025
Changed
- • (deps) bump actions/github-script from 7 to 8 (#109)
- • (deps) bump solid_queue from 1.2.3 to 1.2.4 (#110)
Version 1.2.0
November 01, 2025
Added
- • (programs) implement Program Builder feature (Issue #23) (#111)
Version 1.1.0
October 31, 2025
Added
- • (profile) add profile image support with Google OAuth integration (#108)
Version 1.0.13
October 31, 2025
Fixed
- • (invitations) add defensive checks to ensure ActiveRecord::Relation
Version 1.0.12
October 31, 2025
Fixed
- • (invitations) return ActiveRecord::Relation instead of Array to support .includes()
Version 1.0.11
October 31, 2025
Fixed
- • (athlete_invitations) check if result is ActiveRecord::Relation before includes
Version 1.0.10
October 31, 2025
Fixed
- • (athlete_invitations) fix ensure_athlete_role return value
- • (user) improve error handling in client_invitations_received
Version 1.0.9
October 31, 2025
Fixed
- • (user) add error handling to athlete? method
- • (athlete_invitations) add comprehensive error handling
Version 1.0.8
October 31, 2025
Fixed
- • (athlete_invitations) add error handling to prevent 500 errors
Version 1.0.7
October 31, 2025
Fixed
- • (ci) use rake instead of rails for database tasks
Version 1.0.6
October 31, 2025
Fixed
- • (ci) add debug output to diagnose rails command issue
- • (ci) remove redundant RAILS_ENV from db commands
Version 1.0.5
October 31, 2025
Fixed
- • (config) set postgres username for test database
Version 1.0.4
October 31, 2025
Fixed
- • (ci) run db:migrate in test to clear pending migrations
Version 1.0.3
October 31, 2025
Fixed
- • (ci) use bundle exec rails with explicit RAILS_ENV
Version 1.0.2
October 31, 2025
Fixed
- • (ci) use bin/rails and db:schema:load for test database setup
Version 1.0.1
October 31, 2025
Fixed
- • (workflows) improve error handling and fix database setup
Version 1.0.0
October 31, 2025
Added
- • (versioning) implement automated versioning, changelog, and git tags (#106)
- • (exercises) trainer exercise library + authorization (Closes #100, Closes #101, Closes #103) (#104)
- • (dev) add Overcommit git hooks configuration
- • (mcp) configure MCP servers for productivity
- • implement client invitation system with comprehensive UI and testing (#85)
- • (backend) implement core fitness models + UI improvements (#83)
- • implement workout management models (issues #6, #7) (#77)
- • enhance password recovery with themed UI and email templates (#76)
- • complete M1 milestone - role-based dashboards with authentication and authorization (#74)
- • add Mailgun gem for production, keep letter_opener for development
- • Implement user authentication system (Issue #4) (#72)
- • Initial Rails 8 Project Setup (closes #3) (#65)
- • (home) add HomeController, HomeHelper, index view, routes, and example integration test
Changed
- • (ci) consolidate workflows and fix Rails 8 test config
- • (cleanup) remove PR description file and improve debug route handling
- • (config) update gitignore
- • (code) clean up commented code and improve structure
- • (cleanup) remove unused files and legacy code
- • (deps) bump solid_queue from 1.2.2 to 1.2.3 (#95)
- • (deps) bump rails from 8.1.0 to 8.1.1 (#96)
- • (deps-dev) bump parser from 3.3.9.0 to 3.3.10.0 (#97)
- • remove Sidekiq worker and sample worker from production
- • apply erb_lint formatting fixes
- • (deps) bump actions/upload-artifact from 4 to 5 (#78)
- • (deps-dev) bump letter_opener_web from 1.4.1 to 3.0.0 (#79)
- • (deps) bump kamal from 2.8.1 to 2.8.2 (#80)
- • (deps) bump turbo-rails from 2.0.17 to 2.0.19 (#81)
- • (deps) bump tailwindcss-rails from 4.3.0 to 4.4.0 (#82)
- • (deps) bump rails from 8.0.3 to 8.1.0 (#70)
- • (deps) bump thruster from 0.1.15 to 0.1.16 (#67)
- • (deps) bump kamal from 2.7.0 to 2.8.1 (#69)
- • (deps) bump solid_queue from 1.2.1 to 1.2.2 (#71)
- • (deps) bump github/codeql-action from 3 to 4 (#2)
- • (ci) remove Node.js setup and frontend dependency installation from CI workflow
- • (project) initial commit with new structure
Fixed
- • Health status endpoint crash due to undefined `version` method
- • Invalid invitation token causing 500 errors
- • Database health check using deprecated connection pool methods
- • Missing ClientConnection table causing errors in health monitoring endpoints
Version 0.1.0
October 18, 2025
Added
- • Rails 8 application structure
- • Basic Devise authentication (email/password)
- • PostgreSQL database setup
- • User model with roles enum
- • Basic Tailwind CSS integration
- • Devise views with Tailwind styling
- • Basic application layout structure
- • Initial project setup with Rails 8
- • PostgreSQL database configuration
- • Redis and Sidekiq basic configuration
- • RSpec testing framework setup
- • Basic deployment configuration files
Want to suggest a feature or report a bug? Contact us