* feat(exercises): add new route for fetching exercises with filtering options
chore(import-exercises): improve formatting and clarity in the prompt for exercise attributes
* feat(shuffle): add shuffle exercise route with input validation and error handling
chore(delete-program-button): simplify button formatting and update confirmation message for clarity
chore(workspace): create workspace configuration for easier project management across frontend and mobile directories
* feat(auth): implement signup route with validation and error handling for user registration
* feat(api): add user password and profile management routes for updating and retrieving user information
* chore(route.ts): remove console.log statements for cleaner code and improved performance
* feat(profile): implement cookie cleaning and logging for user profile updates to enhance session management and debugging
fix(package): add @better-auth/expo dependency for improved authentication support
fix(better-auth): update trusted origins to include expo and workoutfast protocols for better compatibility
* feat(auth): implement mobile-compatible session handling to address malformed cookies from the mobile app and improve authentication reliability
chore(api): refactor user password and profile routes to utilize new mobile session utilities for better cookie management
docs(api): add README for mobile authentication support detailing issues and solutions for mobile app cookie handling
* feat(password): refactor password update logic to separate core functionality from action client for better reusability and clarity
fix(password): improve error handling in password update route to provide more specific feedback on validation failures
* refactor(mobile-auth.ts, mobile-cookie-utils.ts, mobile-safe-actions.ts): extract cleanMobileCookies function to a new utility file for better code organization and reuse across modules
* refactor(password route): simplify error handling by returning the original error message instead of custom messages for better maintainability and clarity
* feat(workout-sessions): add POST route for syncing workout sessions to handle mobile compatibility and session management
* feat(workout-sessions): add user-specific workout session retrieval and error handling for syncing sessions
fix(sync-workout-sessions): improve error handling for missing users and exercises during session sync process
* feat(feedback, rating, summary): implement feedback and rating endpoints for workout sessions, add summary metrics and update database schema to support ratings and comments
docs: create CLAUDE.md to provide project overview, architecture, key features, and deployment details
* refactor(route.ts): simplify GET request handler by removing userId parameter check and adding rating fields to response for enhanced session details
* feat(workout-sessions): implement DELETE route for deleting workout sessions with authentication checks and error handling
* refactor(workout-sessions): update DELETE route to handle sessionId as a resolved promise and simplify authentication checks in delete action
* feat(revenuecat): integrate RevenueCat for subscription management and user linking, add webhook handling for subscription events, and enhance premium status checks with RevenueCat data
fix(premium/status): update premium status endpoint to include RevenueCat information and improve error handling
chore(database): add RevenueCat fields to subscription model and create webhook event logging table in the database
build(dependencies): add RevenueCat backend wrapper and crypto-js for secure webhook signature verification
* chore: update .gitignore to exclude product-development and .claude directories
feat(locales): add French translation for lats in locales/fr.ts
fix(better-auth): update trustedOrigins to replace workoutfast with workoutcool for better authentication configuration
* fix(route.ts): update import path for getExercisesAction to reflect new actions directory structure for better organization
* feat(route.ts): add logging for session details to assist with debugging
feat(sync-workout-sessions.action.ts): extend workout session schema to include optional rating and ratingComment fields for enhanced user feedback
* feat(analytics): add premium analytics tracking endpoint and enhance subscription details with premium features
* feat(revenuecat): implement RevenueCat API client for subscription management and enhance premium service with syncing capabilities
* feat(statistics): implement exercise statistics feature with charts and data fetching for weight progression, one-rep max, and volume statistics, including premium access controls and UI components
* feat(exercises): enhance exercise attributes handling and UI for better user experience and performance tracking
* feat(ExercisesBrowser): enhance exercise selection with filters, statistics, and improved UI for better user experience
* feat(exercises): enhance exercise filtering and statistics fetching with improved query parameters and error handling in the ExercisesBrowser component
* refactor(statistics): replace ExerciseStatisticsTab with ExerciseCharts for improved clarity and functionality across multiple components
* refactor(statistics): clean up ExerciseStatisticsTab and ExercisesBrowser components by removing unused imports, simplifying modal structure, and enhancing styling for better readability and maintainability
* fix(ExercisesBrowser): add console log for selectedExercise and adjust styling for exercise image container to enhance layout and responsiveness
* feat(statistics): integrate recharts for improved charting and add theme support for better UI consistency
* feat(statistics): enhance exercise statistics page with new charts and localization updates, and remove unused statistics page for better organization
* feat: add lodash.debounce type definitions and clean up ExercisesBrowser component markup
* feat(statistics): remove exercises page and implement statistics page with localization and navigation updates
* fix(statistics): update alert variant for error handling and refactor tooltip implementation for better clarity and usability
* feat(statistics): enhance StatisticsPage with premium features and overlays for better user engagement and insights
* feat(premium-gate): add upgrade to premium message and streamline component structure for better readability
* feat(exercise): add new exercise attributes handling and refactor ExerciseSelection component to utilize updated types and methods for better attribute management
* refactor(exercise): simplify muscle attribute retrieval functions and improve type consistency across components
* feat: refactor workout session and exercise components for improved attribute handling and remove unused HomePage component
* fix(statistics.types.ts): reorder imports to maintain consistency and clarity in module structure
* feat(exercise-video-modal): implement tabbed interface for video and statistics with timeframe selection to enhance user experience
* feat(statistics): enhance statistics page with dynamic translations and improved user experience through localized content and updated UI elements
* feat(statistics): refactor ExercisesBrowser and ExerciseVideoModal to use TimeframeSelector component for improved code reusability and maintainability
* fix(locales/fr.ts): update French translations for consistency and accuracy in exercise terminology; fix(ExercisesBrowser.tsx): enhance muscle group labels to match updated translation keys and improve code readability
* feat(simple-select): add SimpleSelect component for reusable select functionality and integrate it into ExercisesBrowser for improved filtering options
* fix(fr.ts): update French translations for timeframes to use lowercase for consistency
* feat(statistics): enhance date formatting by integrating locale support across multiple components for improved user experience
* feat(locales): add statistics and tooltip translations in multiple languages for improved user experience
* feat(revenuecat): implement webhook handler for subscription updates and add advanced workout data seeding script
* feat(revenuecat): deprecate user ID assignment and linking endpoints, add sync-status endpoint for automatic management of RevenueCat IDs
* feat(webhook): add support for SUBSCRIPTION_PAUSED event and enhance logging for cancellation events
* fix(webhooks): rename expiration_at to expiration_at_ms for consistency in RevenueCatWebhookEvent interface and update related logic in processSubscriptionEvent function
* feat(revenuecat): implement new webhook handling and subscription sync logic to improve premium status management and simplify database schema
* chore: update USER_ID in seed-workout-data-advanced and simplify premium status check in premium.service to improve clarity and maintainability
* feat(api): add program enrollment and retrieval endpoints for better program management functionality
* feat(programs): enhance program enrollment and progress routes with new functionality and improve parameter handling
* refactor(api): update parameter types to use Promise for slug and sessionSlug in route handlers for better async handling and clarity
* refactor(premium.service.ts): remove revenueCatEntitlement references to simplify premium access logic and improve code clarity
* chore(ci): add RevenueCat environment variables for CI workflow testing
* chore: remove unused RevenueCat project ID references to clean up codebase
* chore: remove deprecated API routes and clean up unused code to streamline the codebase
* chore: baseline migration
feat(env): add new environment variables for ad slots to support additional advertising placements across various tools
refactor(heart-rate-zones): update heart rate zones page to include new in-article ads and remove deprecated components
refactor(calorie-calculator): update calorie calculator pages to include new ad slots and improve ad integration
refactor(bmi-calculator): enhance BMI calculator page with
fix(layout.tsx): replace hardcoded ad client ID with dynamic env variable for Google AdSense
fix(banners): update ad components to conditionally render based on environment variables for ad slots
chore: remove unnecessary console logs from various components to clean up the codebase
fix(AdWrapper): implement ad visibility logic based on NEXT_PUBLIC_SHOW_ADS variable
chore(ci): update CI configuration to include NEXT_PUBLIC_SHOW_ADS variable
docs(env.example): add NEXT_PUBLIC_SHOW_ADS to .env.example for clarity
* feat(premium): implement new pricing page with detailed feature comparison, testimonials, and FAQs to enhance user experience and support mission-driven approach
fix(premium): update PremiumManager to return structured plans including Free, Supporter, and Premium options for better clarity and user choice
docs(premium): add README for premium UI components detailing architecture, design system, and usage instructions to facilitate development and onboarding
* feat(premium): enhance premium features and pricing structure with yearly option and updated UI elements
fix(premium): update FAQ content for clarity and accuracy, and remove deprecated features from the comparison table
style(premium): improve layout and styling for better user experience across premium upgrade card and feature comparison table
* feat(premium): refactor checkout process to retrieve plan details by internal ID and update checkout creation logic
chore(premium): remove unused mobile sticky CTA component to streamline codebase
fix(pricing): update text for clarity and improve accessibility in various components
style(pricing): adjust layout and styling for better responsiveness and visual consistency across pricing sections
* chore(premium/ui): remove unused export of MobileStickyCard to clean up codebase
* feat(locales): add comprehensive translations for premium features, pricing, and FAQs in English, Spanish, French, Portuguese, Russian, and Chinese to enhance user experience and accessibility across multiple languages
refactor(premium UI): implement translation keys for dynamic text rendering in the premium upgrade card, feature comparison table, and pricing FAQ sections to improve maintainability and localization support
* chore(pricing-testimonials.tsx): add TODO comment to indicate the need for testimonials implementation
* feat(locales): update feature descriptions across multiple languages for clarity and consistency
refactor(premium.manager.ts): remove hardcoded free and paid plans to streamline plan management and improve maintainability
chore(premium-upgrade-card.tsx): remove deprecated features from the premium upgrade card to reflect current offerings
* feat(premium): implement multi-region pricing plans and update environment variables for Stripe price IDs to support various regions
fix(premium): update checkout logic to use planId directly instead of fetching plan details
refactor(premium): enhance region detection logic for better user experience and add dynamic pricing fetching in the PremiumUpgradeCard component
chore(ci): update CI configuration to include new environment variables for multi-region pricing
docs: remove outdated error messages from localization files and update premium active state messages for better clarity
* fix(seed-subscription-plans): update externalId to use EU-specific environment variables for Stripe pricing plans to ensure correct pricing for the EU region
* ci(github): align workflow with Dockerfile and add optimizations
* feat: add pull request template
* fix(ci): update pnpm to v9 to match lockfile version
* fix(ci): add required environment variables for build
This update adds the ability to manually trigger the Discord notification workflow with an optional tag name input. It also retrieves release information using the GitHub CLI for both manual and automatic triggers, ensuring accurate data is sent in the notification.
This update improves the Discord notification by adding structured release information, including the release title, description, and author details, while removing unnecessary steps and simplifying the output format.