POWR/CHANGELOG.md
2025-02-19 21:39:47 -05:00

4.7 KiB

Changelog

All notable changes to the POWR project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • SQLite database implementation with development seeding
    • Successfully integrated SQLite with proper transaction handling
    • Added mock exercise library with 10 initial exercises
    • Implemented development database seeder
    • Added debug logging for database operations
  • Event caching system for future Nostr integration
    • Added EventCache service for Nostr event handling
    • Implemented proper transaction management
    • Added cache metadata tracking
  • Database schema improvements
    • Added nostr_events and event_tags tables
    • Added cache_metadata table for performance optimization
    • Added exercise_media table for future media support
  • Alphabetical quick scroll in exercise library
    • Dynamic letter highlighting for available sections
    • Smooth scrolling to selected sections
    • Sticky section headers for better navigation
  • Basic exercise template creation functionality
    • Input validation for required fields
    • Schema-compliant field constraints
    • Native picker components for standardized inputs
  • Enhanced error handling in database operations
    • Detailed SQLite error logging
    • Improved transaction management
    • Added proper error types and propagation
  • Template management features
    • Basic template creation interface
    • Favorite template functionality
    • Template categories and filtering
    • Quick-start template actions

Changed

  • Improved exercise library interface
    • Removed "Recent Exercises" section for cleaner UI
    • Added alphabetical section organization
    • Enhanced keyboard handling for input fields
    • Increased description text area size
  • Updated NewExerciseScreen with constrained inputs
    • Added dropdowns for equipment selection
    • Added movement pattern selection
    • Added difficulty selection
    • Added exercise type selection
  • Improved DbService with better error handling
    • Added proper SQLite error types
    • Enhanced transaction rollback handling
    • Added detailed debug logging
  • Updated type system for better data handling
    • Consolidated exercise and template types
    • Added proper type guards
    • Improved type safety in components
  • Enhanced template display UI
    • Added category pills for filtering
    • Improved spacing and layout
    • Better visual hierarchy for favorites

Fixed

  • Exercise deletion functionality
  • Keyboard overlap issues in exercise creation form
  • SQLite transaction nesting issues
  • TypeScript parameter typing in database services
  • Null value handling in database operations
  • Development seeding duplicate prevention
  • Template category spacing issues
  • Exercise list rendering on iOS
  • Database reset and reseeding behavior

Technical Details

  1. Database Schema Enforcement:

    • Added CHECK constraints for equipment types
    • Added CHECK constraints for exercise types
    • Added CHECK constraints for categories
    • Proper handling of foreign key constraints
  2. Input Validation:

    • Equipment options: bodyweight, barbell, dumbbell, kettlebell, machine, cable, other
    • Exercise types: strength, cardio, bodyweight
    • Categories: Push, Pull, Legs, Core
    • Difficulty levels: beginner, intermediate, advanced
    • Movement patterns: push, pull, squat, hinge, carry, rotation
  3. Error Handling:

    • Added SQLite error type definitions
    • Improved error propagation in LibraryService
    • Added transaction rollback on constraint violations
  4. Database Services:

    • Added EventCache service for Nostr events
    • Improved ExerciseService with transaction awareness
    • Added DevSeederService for development data
    • Enhanced error handling and logging

Migration Notes

  • Exercise creation now enforces schema constraints
  • Input validation prevents invalid data entry
  • Enhanced error messages provide better debugging information
  • Template management requires updated type definitions

[0.1.0] - 2024-02-09

Added

  • Initial project setup with Expo and React Native
  • Basic tab navigation structure
  • Theme support (light/dark mode)
  • SQLite database integration
  • Basic exercise library interface

Changed

  • Migrated to TypeScript
  • Updated to latest Expo SDK
  • Implemented NativeWind for styling

Fixed

  • iOS status bar appearance
  • Android back button handling
  • SQLite transaction management

Security

  • Added basic input validation
  • Implemented secure storage for sensitive data

[0.0.1] - 2024-02-01

Added

  • Initial repository setup
  • Basic project structure
  • Development environment configuration
  • Documentation templates