diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e12a3fe..5689292 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: - name: Install dependencies working-directory: ./workout-logger run: | - flutter pub get + flutter pub get --enforce-lockfile : "${PUB_CACHE:?PUB_CACHE is not set}" mapfile -t targets < <(find "$PUB_CACHE" -type f -path '*/jni-*/src/CMakeLists.txt') if [ "${#targets[@]}" -eq 0 ]; then @@ -149,7 +149,7 @@ jobs: KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} KEY_ALIAS: ${{ secrets.KEY_ALIAS }} KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - run: flutter build apk --release --split-per-abi --obfuscate --split-debug-info=build/app/outputs/symbols + run: flutter build apk --release --split-per-abi - name: Rename APKs run: | diff --git a/CLAUDE.md b/CLAUDE.md index eddf7f9..afb10a0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -78,7 +78,11 @@ flutter test test/workout_provider_test.dart flutter analyze # Build release APKs (split per ABI) -flutter build apk --release --split-per-abi --obfuscate --split-debug-info=build/debug-info +# Note: deliberately not obfuscated - the F-Droid submission verifies the +# GitHub release APK byte-for-byte against F-Droid's own rebuild from source +# (see fdroiddata MR 40630), and --obfuscate embeds a build-unique ID by +# design, which breaks that comparison even for identical source. +flutter build apk --release --split-per-abi # Generate Mockito mocks (after modifying interfaces) dart run build_runner build --delete-conflicting-outputs diff --git a/README.md b/README.md index 6662424..04b7dcf 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@
@@ -17,21 +17,40 @@ ## 📖 About RepForge -**RepForge** (formerly Workout-logger) is an open-source, beautifully designed workout logging mobile application built with Flutter. Whether you're a powerlifter, a casual gym-goer, or someone just starting their fitness journey, RepForge empowers you to track your workouts seamlessly, visualize your progress with detailed analytics, and stay motivated. +**RepForge** (formerly Workout-logger) is an open-source, beautifully designed workout logging mobile application built with Flutter. Whether you're a powerlifter, a casual gym-goer, or someone just starting their fitness journey, RepForge empowers you to track your workouts seamlessly, visualize your progress with detailed analytics, and stay motivated. Tired of subscription-heavy fitness apps? RepForge is built *by* lifters, *for* lifters. It keeps your data local, offline, and completely under your control. ## ✨ Key Features -- **📊 Advanced Analytics:** Visualize your gains, volume, and consistency with stunning charts powered by `fl_chart`. -- **⚡ Super-Fast Logging:** An intuitive UI that gets out of your way so you can focus on the pump. -- **📱 Offline-First:** Your data is stored locally using Hive for lightning-fast, secure access anywhere, even without internet. +- **📊 Advanced Analytics:** Volume trends, per-exercise progression with estimated 1RM, muscle-group focus and recovery balance, and a full personal-records log — powered by `fl_chart`. +- **⚡ Super-Fast Logging:** An intuitive active-workout flow with AI-suggested weight/reps for your next set, dropsets, and rest timers that gets out of your way so you can focus on the pump. +- **🗓️ Routines & Programs:** Build reusable routines, queue up your next session, and follow structured multi-week training programs. +- **🫀 Health Connect Integration:** Syncs workouts to Android Health Connect and reads sleep/heart-rate data back in to score daily training readiness. +- **🤖 AI Coach:** A conversational, tool-calling coach (powered by Gemini) that can query your own workout history, chart correlations, and explain your progress — see [Anti-Features](#-anti-features) below. +- **📱 Offline-First:** Your data is stored locally for fast, secure access anywhere, even without internet. - **🔄 Export/Import:** Never lose your data. Back up and restore your workout history at your convenience. -- **🤖 Smart Insights:** Machine Learning integration for AI-powered workout insights. -- **🎨 Custom Theming:** A modern, sleek interface with customizable themes tailored to your style. +- **🎨 Custom Theming:** A modern, soft-futurist interface with a consistent design system. ## 📸 Screenshots -*(Coming soon: Add screenshots of your app's dashboard, workout logger, and analytics screens here)* + +
+
+
+
+
+
+
+
+
+
+
+