Skip to content

Releases: CPlusPlus17/FitnessJournal

v1.3 — Coaching Intelligence & Context Enrichment

07 Mar 18:04

Choose a tag to compare

smarter AI coach that remembers your past plans, tracks your adherence, and draws from your full athlete profile when generating advice.

✨ New Features

  • Coaching Intelligence
  • Coaching memory — Previous plan responses are now fed back into the next coaching brief, giving the AI continuity across weekly cycles
  • Adherence tracking — The coach compares generated_workouts.json against actual Garmin activities and reports completion rates (e.g., "3/4 planned workouts completed — 75%")
  • Weekly progression deltas — Week-over-week strength comparisons (weight × reps) are included in the coaching brief to inform the next plan
  • Enriched Conversational AI Context
  • Upcoming races & events — Filtered from the Garmin calendar with days-until countdown, so the AI can reference your timeline
  • Profile goals, constraints & equipment — Loaded from profiles.json and appended to every conversation
  • All-time strength PRs — Top 15 exercises by best weight × reps are included, giving the AI awareness of long-term progression
  • New API Endpoints
  • GET /api/recovery/history — 30-day recovery metrics history for dashboard charts
  • GET /api/progression/deltas — Week-over-week exercise weight/rep comparisons
  • Refined AI coaching prompt generation with improved Garmin exercise set handling

📝 Documentation

  • Complete rewrite of
  • CLAUDE.md
  • — comprehensive reference covering all 11 modules, 16 API endpoints, 5 notifiers, and full configuration
  • Updated
  • README.md
  • with all bot commands, free-text chat, scheduled notifications, and expanded changelog
  • Updated
  • INSTALL_DUMMIES.md
  • with SIGNAL_SUBSCRIBERS, new Phase 7 (Getting to Know Your Coach)
  • Replaced default
  • dashboard/README.md
  • with project-specific documentation
  • Added
  • .gitleaksignore
  • for Garmin's public OAuth1 consumer key/secret (false positives)

🔧 Improvements

  • Recent activity analyses are included in coaching briefs for better training continuity
  • Improved Garmin exercise set handling in prompt generation
  • Full Changelog: 1.2...1.3

1.2: PWA Support, Smarter Coaching & Interactive Muscle Map

04 Mar 19:52

Choose a tag to compare

What's New in v1.2

  • Progressive Web App (PWA) — Install Fitness Journal on your phone or tablet with full offline-ready manifest and icons (4809ef4)
  • Configurable week start day — Choose your preferred first day of the week for scheduling (664f592)
  • Smarter AI coaching — The coach now considers completed strength sessions and only cleans up future workouts, avoiding unwanted regeneration on restart (664f592)
  • Interactive muscle map tooltip — Hover over muscles on the body map to see targeted muscle details (3a64b9a)
  • Improved Docker stability — SQLite configured with journal_mode=DELETE and synchronous=FULL for reliable persistence in containerized environments (3a64b9a)

1.1: AI Event Analysis & Configuration Enhancements

02 Mar 19:11

Choose a tag to compare

What's Changed

✨ Features

  • AI Analysis: Implement AI-powered analysis for upcoming primary events with UI integration and caching (51fab7a)
  • Caching: Make Garmin data cache time-to-live configurable via environment variable, defaulting to 5 minutes (02b2d2a)
  • Configuration: Allow configuring the profiles path via PROFILES_PATH environment variable (5dea2cd)
  • Configuration: Added capability to change the Gemini API model via configuration (ed49703)
  • Logging: Log the AI model being used upon instantiation (a68547d)

🐛 Bug Fixes

  • Docker: Correct the PROFILES_PATH environment variable to match the volume mount (363430f)
  • Docker: Resolve duplicate environment dictionary in compose file and missing gemini_model parameters in bot.rs and api.rs (aa9a1c4)
  • Build: Resolve extra brace from merge conflict resolution (8801082)
  • Database: Fixed Database initialization/access issues (a625b77)

1.0.1

01 Mar 12:25

Choose a tag to compare

✨ Features

  • Superset & Nested Step Support: Implemented the ability to handle nested exercises and sets within workout steps, allowing for the creation and tracking of supersets.
  • Enhanced AI Workout Generation:
  • Added constraints to ensure the AI generates workouts using only valid, known exercises.
  • Enabled the creation of multiple workouts from a single user input prompt.
  • Improved the parsing of CSV headers for better data ingestion.
  • Gemini API Token Tracking: Added deserialization and comprehensive logging for Gemini API token usage to better monitor AI requests and costs.

🐛 Bug Fixes

  • Garmin API Payload Format: Fixed an issue with the Garmin API integration by updating the exerciseName and category payload format to correctly match Garmin's exact API requirements.

1.0

28 Feb 21:42

Choose a tag to compare

1.0

🤖 AI Coach & Messaging Features

  • Conversational AI Coach: Added a live conversational AI coach that utilizes your Garmin context, including workout scheduling and chat history logging (6001f1e).
  • Coaching Notifiers: Implemented weekly AI coach reviews (a35557f), monthly AI-powered debriefs, and race readiness assessments with new scheduled bot commands (5eac6b3).
  • Context Enhancements: Boosted the AI bot's context by including recent activities, analysis summaries (facb7de), and the current date/time (6f2c851).
  • Message Processing: Enhanced "note to self" message detection using UUIDs to accurately identify the sender (8827935).

🏃 Activity & Workout Management

  • AI Workout Generation: Improved workout generation to leverage valid Garmin exercise constraints, enabled creating multiple workouts from a single prompt, and updated data payload formats to better match the API (fea16c3, c4ae8b2).
  • Workout Duration Prediction: Added logic to automatically predict workout durations with database caching and exposed it on the dashboard (20b05ab).
  • Automatic Activity Analysis: Implemented automated analysis of workouts (filtered by mapped sports in user profiles) and added real-time Signal broadcasting (f4215a8). Added force data synchronization for deeper insights (634a1fc).
  • Cleanup Operations: Integrated a database function to automatically purge and clear old coach briefs right before generating new AI workout plans (66f174f).

📊 Dashboard & API

  • Recovery Analytics: Introduced a new recovery history chart to the dashboard, supported by dedicated database tables to store daily recovery metric logs and accessible via new API endpoints (3ba9dd8).

⚙️ Architecture & Refactoring

  • Configuration Management: Centralized all project configurations via the figment crate to load configurations seamlessly from environment variables or a Fitness.toml file (babdbcf).
  • Logging Improvements: Refactored println! and eprintln! calls to use the tracing macro structured logger across the repository (f7b80ee).
  • Code Modularity: Extracted monolithic processing tasks into dedicated helper functions covering synchronizing workouts, checking profiles, parsing activities, and generating training plans (9adee3e).
  • CLI Parsing: Swapped basic argument parsing for the robust clap crate structure (2e9f172).
  • Daemon Tuning: Adjusted the application's daemon loop poll interval to 5 minutes (6f2c851).

📝 Documentation

  • Updated the README installation steps with the newly added configuration paradigm (Fitness.toml), updated README screenshots featuring the dashboard and muscle heatmaps, and started a centralized changelog (f5e9e31, b6b5c72).

0.9

26 Feb 20:38

Choose a tag to compare

0.9
feat: Introduce daily morning workout briefings, post-generation work…