Skip to content

fix: address final mentor code reviews and feedback - #41

Merged
M4dhav merged 13 commits into
AOSSIE-Org:mainfrom
DecodeX15:fix/fixing-code-review
Nov 2, 2026
Merged

M4dhav merged 13 commits into
AOSSIE-Org:mainfrom
DecodeX15:fix/fixing-code-review

Conversation

@DecodeX15

Copy link
Copy Markdown
Member

Addressed Issues:

Fixes #(issue number) - N/A

Screenshots/Recordings: N/A

Additional Notes:

Addressed all code review feedback and suggestions provided by the mentor in the review Google Doc - link

Checklist

  • My code follows the project's code style and conventions
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings or errors
  • I have joined the Discord server and I will share a link to this PR with the project maintainers there
  • I have read the Contributing Guidelines

⚠️ AI Notice - Important!

We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact.

@github-actions github-actions Bot added the no-issue-linked PR is not linked to any issue label Oct 24, 2026
@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 231 files, which is 131 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Run configuration
Commits

Reviewing files that changed from the base of the PR and between c1c1c7c and 9a3c809.

Files ignored due to path filters: 94
  • android/.gradle/9.1.0/checksums/checksums.lock is excluded by !**/*.lock, !**/android/**
  • android/.gradle/9.1.0/checksums/md5-checksums.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/9.1.0/checksums/sha1-checksums.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/9.1.0/executionHistory/executionHistory.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/9.1.0/executionHistory/executionHistory.lock is excluded by !**/*.lock, !**/android/**
  • android/.gradle/9.1.0/fileChanges/last-build.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/9.1.0/fileHashes/fileHashes.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/9.1.0/fileHashes/fileHashes.lock is excluded by !**/*.lock, !**/android/**
  • android/.gradle/9.1.0/fileHashes/resourceHashesCache.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/9.1.0/gc.properties is excluded by !**/android/**
  • android/.gradle/buildOutputCleanup/buildOutputCleanup.lock is excluded by !**/*.lock, !**/android/**
  • android/.gradle/buildOutputCleanup/cache.properties is excluded by !**/android/**
  • android/.gradle/buildOutputCleanup/outputFiles.bin is excluded by !**/*.bin, !**/android/**
  • android/.gradle/file-system.probe is excluded by !**/android/**
  • android/.gradle/noVersion/buildLogic.lock is excluded by !**/*.lock, !**/android/**
  • android/.gradle/vcs-1/gc.properties is excluded by !**/android/**
  • android/app/src/main/AndroidManifest.xml is excluded by !**/android/**
  • android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java is excluded by !**/android/**
  • android/local.properties is excluded by !**/android/**
  • assets/exercises.db is excluded by !**/*.db, !assets/**
  • ios/Runner.xcodeproj/project.pbxproj is excluded by !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json is excluded by !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png is excluded by !**/*.png, !**/ios/**
  • ios/Runner/GeneratedPluginRegistrant.m is excluded by !**/ios/**
  • ios/Runner/Info.plist is excluded by !**/ios/**
  • lib/data/database/generated/db_config.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/ai_model_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/exercise_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/notification_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/quick_plan_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/session_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/stats_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/tag_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/data/repositories/generated/user_repository.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/domain/models/generated/ai_state.freezed.dart is excluded by !**/generated/**, !**/*.freezed.dart
  • lib/domain/models/generated/home_state.freezed.dart is excluded by !**/generated/**, !**/*.freezed.dart
  • lib/domain/models/generated/onboarding_data.freezed.dart is excluded by !**/generated/**, !**/*.freezed.dart
  • lib/domain/models/generated/session_details_state.freezed.dart is excluded by !**/generated/**, !**/*.freezed.dart
  • lib/domain/models/generated/session_execution_state.freezed.dart is excluded by !**/generated/**, !**/*.freezed.dart
  • lib/ui/ai_inference/view_models/generated/ai_inference_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/create_custom_plan_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/custom_plans_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/exercise_info_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/home_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/quick_plan_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/search_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/session_details_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/home/view_models/generated/session_execution_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/notifications/view_models/generated/notification_settings_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/onboarding/view_models/generated/onboarding_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/stats/view_models/generated/past_session_details_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • lib/ui/stats/view_models/generated/stats_view_model.g.dart is excluded by !**/generated/**, !**/*.g.dart
  • pubspec.lock is excluded by !**/*.lock
Files selected for processing: 231
  • .gitignore
  • l10n.yaml
  • lib/core/constants/app_constants.dart
  • lib/core/database/db_config.dart
  • lib/core/service/seed_service.dart
  • lib/core/theme/app_colors.dart
  • lib/data/database/db_config.dart
  • lib/data/database/schema/exercise_schema.dart
  • lib/data/database/schema/quick_plan_schema.dart
  • lib/data/database/schema/session_exercises_schema.dart
  • lib/data/database/schema/session_schedule_schema.dart
  • lib/data/database/schema/tags_schema.dart
  • lib/data/database/schema/user_schema.dart
  • lib/data/database/tables/exercise_table.dart
  • lib/data/database/tables/quick_plan_table.dart
  • lib/data/database/tables/session_exercises_table.dart
  • lib/data/database/tables/session_schedule_table.dart
  • lib/data/database/tables/tags_table.dart
  • lib/data/database/tables/user_table.dart
  • lib/data/repositories/ai_model_repository.dart
  • lib/data/repositories/exercise_repository.dart
  • lib/data/repositories/notification_repository.dart
  • lib/data/repositories/quick_plan_repository.dart
  • lib/data/repositories/session_repository.dart
  • lib/data/repositories/stats_repository.dart
  • lib/data/repositories/tag_repository.dart
  • lib/data/repositories/user_repository.dart
  • lib/data/services/animation_cache_service.dart
  • lib/data/services/notification_service.dart
  • lib/data/services/onnx_service.dart
  • lib/data/services/tokenizer_service.dart
  • lib/data/services/tts_service.dart
  • lib/data/services/voice_command_detector.dart
  • lib/domain/models/ai_state.dart
  • lib/domain/models/enums/app_enums.dart
  • lib/domain/models/enums/exercise_enums.dart
  • lib/domain/models/enums/session_enums.dart
  • lib/domain/models/enums/tag_enums.dart
  • lib/domain/models/enums/voice_command_enums.dart
  • lib/domain/models/exercise_data.dart
  • lib/domain/models/home_state.dart
  • lib/domain/models/notification_settings_state.dart
  • lib/domain/models/onboarding_data.dart
  • lib/domain/models/onboarding_state.dart
  • lib/domain/models/quick_plan_data.dart
  • lib/domain/models/session_data.dart
  • lib/domain/models/session_details_state.dart
  • lib/domain/models/session_execution_state.dart
  • lib/domain/models/tag_data.dart
  • lib/domain/models/user_data.dart
  • lib/features/ai_inference/repositories/ai_repository.dart
  • lib/features/ai_inference/repositories/tag_setup_repository.dart
  • lib/features/ai_inference/view_model/ai_inference_view_model.dart
  • lib/features/home/repositories/exercise_repository.dart
  • lib/features/home/services/recommendation_service.dart
  • lib/features/home/services/stt_service.dart
  • lib/features/home/services/tts_service.dart
  • lib/features/home/services/voice_command_service.dart
  • lib/features/home/view_model/home_view_model.dart
  • lib/features/home/widgets/home/today_session_card.dart
  • lib/features/onboarding/model/user_data.dart
  • lib/features/onboarding/repository/user_repository.dart
  • lib/features/stats/repositories/stats_repository.dart
  • lib/features/stats/view_model/past_session_details_view_model.dart
  • lib/main.dart
  • lib/routing/app_router.dart
  • lib/routing/app_routes.dart
  • lib/ui/ai_inference/view_models/ai_inference_view_model.dart
  • lib/ui/core/app_scaffold.dart
  • lib/ui/core/app_toast.dart
  • lib/ui/core/button_card.dart
  • lib/ui/core/custom_bottom_navbar.dart
  • lib/ui/core/feature_chip.dart
  • lib/ui/core/loading_screen.dart
  • lib/ui/core/onboarding_progress.dart
  • lib/ui/home/view_models/create_custom_plan_view_model.dart
  • lib/ui/home/view_models/custom_plans_view_model.dart
  • lib/ui/home/view_models/exercise_info_view_model.dart
  • lib/ui/home/view_models/home_view_model.dart
  • lib/ui/home/view_models/quick_plan_view_model.dart
  • lib/ui/home/view_models/search_view_model.dart
  • lib/ui/home/view_models/session_details_view_model.dart
  • lib/ui/home/view_models/session_execution_view_model.dart
  • lib/ui/home/widgets/exercise_info/animation_preview.dart
  • lib/ui/home/widgets/exercise_info/exercise_info_body.dart
  • lib/ui/home/widgets/exercise_info/info_badges.dart
  • lib/ui/home/widgets/exercise_info/section_card.dart
  • lib/ui/home/widgets/home/disclaimer_dialog.dart
  • lib/ui/home/widgets/home/home_app_bar.dart
  • lib/ui/home/widgets/home/quick_plan_card.dart
  • lib/ui/home/widgets/home/search_bar.dart
  • lib/ui/home/widgets/home/session_summary_card.dart
  • lib/ui/home/widgets/home/today_session_card.dart
  • lib/ui/home/widgets/home/week_selector.dart
  • lib/ui/home/widgets/home/weekly_stats_card.dart
  • lib/ui/home/widgets/screens/add_workout_screen.dart
  • lib/ui/home/widgets/screens/create_custom_plan_screen.dart
  • lib/ui/home/widgets/screens/exercise_info_screen.dart
  • lib/ui/home/widgets/screens/home_screen.dart
  • lib/ui/home/widgets/screens/search_screen.dart
  • lib/ui/home/widgets/screens/session_details_screen.dart
  • lib/ui/home/widgets/screens/session_execution_screen.dart
  • lib/ui/home/widgets/screens/session_feedback_screen.dart
  • lib/ui/home/widgets/search/search_exercise_tile.dart
  • lib/ui/home/widgets/session_details/exercise_tile.dart
  • lib/ui/home/widgets/session_details/instructions_card.dart
  • lib/ui/home/widgets/session_details/timing_settings_card.dart
  • lib/ui/home/widgets/session_execution/execution_animation_box.dart
  • lib/ui/home/widgets/session_execution/execution_controls.dart
  • lib/ui/home/widgets/session_execution/execution_timer.dart
  • lib/ui/home/widgets/session_execution/execution_top_bar.dart
  • lib/ui/home/widgets/session_execution/exercise_name_display.dart
  • lib/ui/home/widgets/session_execution/phase_indicator.dart
  • lib/ui/notifications/view_models/notification_settings_view_model.dart
  • lib/ui/notifications/widgets/notification_settings_dialog.dart
  • lib/ui/onboarding/view_models/onboarding_view_model.dart
  • lib/ui/onboarding/widgets/body_region_screen.dart
  • lib/ui/onboarding/widgets/difficulty_level.dart
  • lib/ui/onboarding/widgets/equipment_screen.dart
  • lib/ui/onboarding/widgets/featurechip.dart
  • lib/ui/onboarding/widgets/goal_screen.dart
  • lib/ui/onboarding/widgets/health_issues.dart
  • lib/ui/onboarding/widgets/intensity_level.dart
  • lib/ui/onboarding/widgets/resultscreen.dart
  • lib/ui/onboarding/widgets/splash_screen.dart
  • lib/ui/onboarding/widgets/user_details.dart
  • lib/ui/onboarding/widgets/welcome_screen.dart
  • lib/ui/stats/view_models/past_session_details_view_model.dart
  • lib/ui/stats/view_models/stats_view_model.dart
  • lib/ui/stats/widgets/activity_calendar.dart
  • lib/ui/stats/widgets/all_sessions_screen.dart
  • lib/ui/stats/widgets/past_session_details_screen.dart
  • lib/ui/stats/widgets/session_tile.dart
  • lib/ui/stats/widgets/stats_screen.dart
  • lib/ui/stats/widgets/weekly_calorie_chart.dart
  • lib/ui/stats/widgets/weekly_time_chart.dart
  • lib/utils/calorie_calculator.dart
  • lib/utils/constants/app_constants.dart
  • lib/utils/cosine_similairty.dart
  • lib/utils/equipment_filter.dart
  • lib/utils/safety_filter_service.dart
  • lib/utils/theme/app_themes.dart
  • pubspec.yaml
  • scripts/generate_exercise_db.py
  • test/core/database/db_config_test.dart
  • test/core/model/exercise_data_test.dart
  • test/core/model/quick_plan_data_test.dart
  • test/core/model/session_data_test.dart
  • test/core/model/tag_data_test.dart
  • test/core/model/user_data_test.dart
  • test/core/routing/app_routes_test.dart
  • test/core/widgets/app_scaffold_test.dart
  • test/core/widgets/button_card_test.dart
  • test/core/widgets/feature_chip_test.dart
  • test/features/ai_inference/repositories/ai_repository_test.dart
  • test/features/ai_inference/repositories/tag_repository_test.dart
  • test/features/ai_inference/services/cosine_similarity_test.dart
  • test/features/ai_inference/services/onnx_service_test.dart
  • test/features/ai_inference/services/tokenizer_service_test.dart
  • test/features/ai_inference/view_model/ai_inference_view_model_test.dart
  • test/features/home/models/home_state_test.dart
  • test/features/home/models/session_details_state_test.dart
  • test/features/home/models/session_execution_state_test.dart
  • test/features/home/repositories/exercise_repository_test.dart
  • test/features/home/repositories/quick_plan_repository_test.dart
  • test/features/home/repositories/session_repository_test.dart
  • test/features/home/screens/exercise_info_screen_test.dart
  • test/features/home/screens/home_screen_test.dart
  • test/features/home/screens/search_screen_test.dart
  • test/features/home/screens/session_details_screen_test.dart
  • test/features/home/screens/session_execution_screen_test.dart
  • test/features/home/screens/session_feedback_screen_test.dart
  • test/features/home/services/calorie_calculator_service_test.dart
  • test/features/home/services/equipment_filter_service_test.dart
  • test/features/home/services/recommendation_service_test.dart
  • test/features/home/services/safety_filter_service_test.dart
  • test/features/home/view_model/exercise_info_view_model_test.dart
  • test/features/home/view_model/home_view_model_test.dart
  • test/features/home/view_model/quick_plan_view_model_test.dart
  • test/features/home/view_model/search_view_model_test.dart
  • test/features/home/view_model/session_details_view_model_test.dart
  • test/features/home/view_model/session_execution_view_model_test.dart
  • test/features/home/widgets/exercise_info/animation_preview_test.dart
  • test/features/home/widgets/exercise_info/exercise_info_body_test.dart
  • test/features/home/widgets/exercise_info/info_badges_test.dart
  • test/features/home/widgets/exercise_info/section_card_test.dart
  • test/features/home/widgets/home/disclaimer_dialog_test.dart
  • test/features/home/widgets/home/home_app_bar_test.dart
  • test/features/home/widgets/home/quick_plan_card_test.dart
  • test/features/home/widgets/home/search_bar_test.dart
  • test/features/home/widgets/home/session_summary_card_test.dart
  • test/features/home/widgets/home/today_session_card_test.dart
  • test/features/home/widgets/home/week_selector_test.dart
  • test/features/home/widgets/home/weekly_stats_card_test.dart
  • test/features/home/widgets/search_screen/search_exercise_tile_test.dart
  • test/features/home/widgets/session_details/exercise_tile_test.dart
  • test/features/home/widgets/session_details/instructions_card_test.dart
  • test/features/home/widgets/session_details/timing_settings_card_test.dart
  • test/features/home/widgets/session_execution/execution_animation_box_test.dart
  • test/features/home/widgets/session_execution/execution_controls_test.dart
  • test/features/home/widgets/session_execution/execution_timer_test.dart
  • test/features/home/widgets/session_execution/execution_top_bar_test.dart
  • test/features/home/widgets/session_execution/exercise_name_display_test.dart
  • test/features/home/widgets/session_execution/phase_indicator_test.dart
  • test/features/notifications/models/notification_settings_state_test.dart
  • test/features/notifications/repositories/notification_repository_test.dart
  • test/features/notifications/services/notification_service_test.dart
  • test/features/notifications/view_model/notification_settings_view_model_test.dart
  • test/features/notifications/widgets/notification_settings_dialog_test.dart
  • test/features/onboarding/model/onboarding_data_test.dart
  • test/features/onboarding/repository/user_repository_test.dart
  • test/features/onboarding/view/body_region_screen_test.dart
  • test/features/onboarding/view/difficulty_level_test.dart
  • test/features/onboarding/view/equipment_screen_test.dart
  • test/features/onboarding/view/goal_screen_test.dart
  • test/features/onboarding/view/health_issues_test.dart
  • test/features/onboarding/view/intensity_level_test.dart
  • test/features/onboarding/view/resultscreen_test.dart
  • test/features/onboarding/view/splash_screen_test.dart
  • test/features/onboarding/view/user_details_test.dart
  • test/features/onboarding/view/welcome_screen_test.dart
  • test/features/onboarding/view_model/onboarding_view_model_test.dart
  • test/features/stats/repositories/stats_repository_test.dart
  • test/features/stats/screens/all_sessions_screen_test.dart
  • test/features/stats/screens/past_session_details_screen_test.dart
  • test/features/stats/screens/stats_screen_test.dart
  • test/features/stats/view_model/past_session_details_view_model_test.dart
  • test/features/stats/view_model/stats_view_model_test.dart
  • test/features/stats/widgets/activity_calendar_test.dart
  • test/features/stats/widgets/session_tile_test.dart
  • test/features/stats/widgets/weekly_time_chart_test.dart

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added backend Changes to backend code configuration Configuration file changes javascript JavaScript/TypeScript code changes python Python code changes tests Test file changes size/XL Extra large PR (>500 lines changed) repeat-contributor PR from an external contributor who already had PRs merged needs-review labels Oct 24, 2026
@DecodeX15 DecodeX15 self-assigned this Oct 25, 2026
Comment thread ios/Runner.xcodeproj/project.pbxproj Outdated
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.templateFlutter;
PRODUCT_BUNDLE_IDENTIFIER = org.aossie.moveYourBody;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

change bundle identifier to org.aossie.move

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

resolved

Comment thread ios/Runner/Info.plist Outdated
<string>6.0</string>
<key>CFBundleName</key>
<string>template_flutter</string>
<string>move_your_body</string>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

move

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

resolved

return DatabaseService();
});

class DatabaseService {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Initialize with Class Annotation ( @ Riverpod) and part generation

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

Comment thread lib/data/database/db_config.dart Outdated
class DatabaseService {
/// Version of the bundled exercises asset database, Increase this version only when `assets/exercises.db`;
/// is updated to trigger copying the new database to device storage on app launch.
static const int exercisesDbVersion = 1;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

move to constants.dart

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

);
}

Future<int> insertUserDb(

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Duplicate of insertUserRecord

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

Comment thread lib/ui/common/loading_screen.dart Outdated
Comment on lines +39 to +40
debugPrint("🚀 Pipeline Phase 2: Initializing static exercises DB...");
await DatabaseService.instance.exercisesDatabase;
await ref.read(databaseServiceProvider).exercisesDatabase;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

initializing in the wrong way, just ref.read databaseServiceProvider

}

Future<void> _initialize() async {
state = state.copyWith(isLoading: true, errorMessage: null);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remove errorMessage and isLoading from Model, use Riverpod Async Provider to handle

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

return HomeState(selectedDate: now, currentWeekDays: days);
}

Future<void> _initialize() async {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Instead of updating state at every step, build a new state object in memory and update everything at the end so that it is declarative

isLoading: false,
);
} catch (e) {
state = state.copyWith(isLoading: false, errorMessage: e.toString());

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

do not store errors in state, rethrow to UI

return ExerciseRepository(dbService);
});

class ExerciseRepository {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Store model in state with all excercises data to avoid repeated DB calls

@DecodeX15

Copy link
Copy Markdown
Member Author

@M4dhav please review

@M4dhav
M4dhav merged commit 09754dc into AOSSIE-Org:main Nov 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Changes to backend code configuration Configuration file changes javascript JavaScript/TypeScript code changes needs-review no-issue-linked PR is not linked to any issue python Python code changes repeat-contributor PR from an external contributor who already had PRs merged size/XL Extra large PR (>500 lines changed) tests Test file changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants