2025-02-09 20:38:38 -05:00
|
|
|
# Changelog
|
2025-04-01 00:03:41 -04:00
|
|
|
All notable changes to the POWR project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
2025-02-09 20:38:38 -05:00
|
|
|
|
2025-03-28 21:22:20 -07:00
|
|
|
## [Unreleased]
|
2025-04-04 15:46:31 -04:00
|
|
|
### Improved
|
|
|
|
- Console logging system
|
|
|
|
- Implemented configurable module-level logging controls
|
|
|
|
- Added quiet mode toggle for easier troubleshooting
|
|
|
|
- Enhanced logger utility with better filtering capabilities
|
|
|
|
- Disabled verbose feed cache and social feed logs
|
|
|
|
- Reduced SQL query logging for better console readability
|
|
|
|
- Improved NDK and database-related log filtering
|
|
|
|
- Added selective module enabling/disabling functionality
|
|
|
|
- Created comprehensive logging documentation
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- Android profile component loading issues
|
|
|
|
- Fixed banner image not showing up in Android profile screen
|
|
|
|
- Enhanced useBannerImage hook with improved React Query configuration
|
|
|
|
- Reduced staleTime to zero on both Android and iOS for immediate refresh
|
|
|
|
- Added platform-specific optimizations for Android image loading
|
|
|
|
- Fixed banner URI handling with proper file:// prefix management
|
|
|
|
- Added cache busting parameter to force Android image refresh
|
|
|
|
- Enhanced error logging with more verbose platform-specific messages
|
|
|
|
- Improved error recovery with automatic refetch on load failures
|
|
|
|
- Enhanced debugging logging throughout profile hooks
|
|
|
|
- Implemented more frequent auto-refresh on Android vs iOS (20s vs 30s)
|
|
|
|
- Added fallback messaging when banner is loading or missing
|
|
|
|
|
|
|
|
- Android and iOS profile loading issues
|
|
|
|
- Enhanced useBannerImage hook with improved React Query configuration
|
|
|
|
- Reduced banner image staleTime from 1 hour to 30 seconds
|
|
|
|
- Added refetchOnMount: 'always' to ensure banner image loads on initial render
|
|
|
|
- Completely rewrote useProfileStats hook to use React Query
|
|
|
|
- Fixed profile follower/following counts showing stale data in Android
|
|
|
|
- Enhanced both hooks with standardized queryKeys for better cache management
|
|
|
|
- Improved error handling in both profile data hooks
|
|
|
|
- Added better cache invalidation strategies for profile data
|
|
|
|
|
|
|
|
- iOS banner image loading issues
|
|
|
|
- Added platform-specific debugging in banner image cache service
|
|
|
|
- Enhanced BannerImageCache with detailed logging and error tracking
|
|
|
|
- Fixed iOS path handling to ensure file:// prefix for local URIs
|
|
|
|
- Added validation and error handling for image loading failures
|
|
|
|
- Enhanced profile UI to track image loading errors
|
|
|
|
- Added proper file path normalization for iOS compatibility
|
|
|
|
- Improved React Query caching with better cache handling
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- React Query Integration (Phase 1)
|
|
|
|
- Implemented useAuthQuery hook for React Query-based authentication
|
|
|
|
- Created useProfileWithQuery hook for profile data with React Query
|
|
|
|
- Implemented useConnectivityWithQuery hook for network status management
|
|
|
|
- Built ReactQueryAuthProvider for centralized auth integration
|
|
|
|
- Added proper query invalidation strategies
|
|
|
|
- Created standardized query key structure
|
|
|
|
- Implemented optimized query client configuration
|
|
|
|
- Built test components for React Query demonstration
|
|
|
|
- Added type safety across all query-related functionality
|
|
|
|
- Created proper loading and error state handling
|
|
|
|
- Fixed hook ordering issues with conditional hook calls
|
|
|
|
- Improved NDK initialization with more robust error handling
|
|
|
|
- Enhanced placeholder service pattern for hooks during initialization
|
|
|
|
- Implemented consistent hook order pattern to prevent React errors
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- React hooks ordering in Android
|
|
|
|
- Fixed "Warning: React has detected a change in the order of Hooks" error in OverviewScreen
|
|
|
|
- Implemented consistent hook calling pattern regardless of authentication state
|
|
|
|
- Enhanced useSocialFeed hook to use consistent parameters with conditional data
|
|
|
|
- Added comprehensive documentation on the React hooks ordering pattern used
|
|
|
|
- Ensured all components follow the same pattern for authentication-dependent hooks
|
|
|
|
- React Query data undefined errors
|
|
|
|
- Fixed "Query data cannot be undefined" error in profile image hooks
|
|
|
|
- Enhanced useProfileImage and useBannerImage hooks to always return non-undefined values
|
|
|
|
- Updated components to handle null vs undefined values properly
|
|
|
|
- Added proper type safety for image URI handling
|
|
|
|
|
|
|
|
- Enhanced image caching for profile UI
|
|
|
|
- Implemented ProfileImageCache service with LRU-based eviction
|
|
|
|
- Added BannerImageCache service for profile banners with size limits
|
|
|
|
- Created useProfileImage and useBannerImage hooks with React Query
|
|
|
|
- Updated UserAvatar component to use React Query-based hooks
|
|
|
|
- Enhanced Profile screen with optimized image loading
|
|
|
|
- Updated RelayInitializer to properly initialize all image caches
|
|
|
|
- Added automatic cache cleanup for old/unused images
|
|
|
|
- Implemented prioritized cache eviction based on access patterns
|
|
|
|
- Added disk space management with maximum cache size limits
|
|
|
|
- Improved error handling in image loading/caching process
|
|
|
|
|
|
|
|
### Verified
|
|
|
|
- React Query Integration (Phase 1) has been successfully implemented and is working in production
|
|
|
|
- Confirmed proper NDK initialization through React Query
|
|
|
|
- Verified authentication state management with React Query hooks
|
|
|
|
- Confirmed successful relay connections and management
|
|
|
|
- Validated proper hook ordering in main app components
|
|
|
|
- Verified optimal caching behavior with appropriate stale times
|
|
|
|
- Confirmed proper profile and connectivity handling
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- React Query Integration Testing Issues
|
|
|
|
- Fixed critical provider duplication by properly integrating ReactQueryAuthProvider at the root level
|
|
|
|
- Corrected query key definition to match the actual keys used by hooks (auth.current)
|
|
|
|
- Removed multiple instances of ReactQueryAuthProvider that were causing hook ordering conflicts
|
|
|
|
- Fixed "Rendered more hooks than during the previous render" error in test components
|
|
|
|
- Updated test component to use the app-wide ReactQueryAuthProvider
|
|
|
|
- Enhanced testing tool with proper isolation of concerns
|
|
|
|
- Fixed test routes to use dedicated providers to prevent interference with global state
|
|
|
|
- Improved auth-test component with proper nested structure for AuthProvider
|
|
|
|
- Fixed hook ordering issues with consistent hook patterns in components
|
|
|
|
- Added self-contained testing approach with local query client instances
|
|
|
|
- Enhanced test layout to manage provider conflicts between different auth implementations
|
|
|
|
|
2025-04-03 22:18:02 -04:00
|
|
|
### Documentation
|
|
|
|
- Added comprehensive React Query integration plan to address authentication state transitions and hook ordering issues
|
|
|
|
- Created detailed technical documentation for integrating React Query with SQLite, NDK, and Amber signer
|
|
|
|
- Added detailed conflict resolution strategies for local-first Nostr app
|
|
|
|
- Implemented enhanced error handling patterns for React Query
|
|
|
|
- Developed executive summary for stakeholder review
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
- Android database initialization error (NullPointerException) by:
|
|
|
|
- Creating a platform-specific database initialization path for Android
|
|
|
|
- Implementing resilient error handling with step-by-step table creation
|
|
|
|
- Simplifying SQL statements for better Android compatibility
|
|
|
|
- Replacing dynamic imports with static imports
|
|
|
|
|
2025-03-28 21:22:20 -07:00
|
|
|
### Added
|
2025-04-02 23:40:54 -04:00
|
|
|
- Centralized Authentication System with Advanced Security
|
|
|
|
- Implemented new AuthService for unified authentication management
|
|
|
|
- Added support for multiple authentication methods (private key, external signer, ephemeral)
|
|
|
|
- Created secure logout protocol to prevent unexpected state during sign-out
|
|
|
|
- Implemented SigningQueue for better transaction handling and atomicity
|
|
|
|
- Added AuthStateManager for centralized state management
|
|
|
|
- Created AuthProvider component for React integration
|
|
|
|
- Implemented feature flag system for gradual rollout
|
|
|
|
- Added test page for verification of authentication features
|
|
|
|
- Enhanced security with proper error propagation and state handling
|
|
|
|
- Created clear documentation for the new authentication architecture
|
|
|
|
- Built with TypeScript for type safety and developer experience
|
|
|
|
- Added backward compatibility with legacy authentication
|
|
|
|
g
|
2025-04-02 21:11:25 -04:00
|
|
|
- Enhanced Avatar System with Robohash Integration
|
|
|
|
- Consolidated avatar implementation into ui/avatar.tsx component
|
|
|
|
- Added RobohashAvatar and RobohashFallback components
|
|
|
|
- Created utility functions in utils/avatar.ts for consistent avatar generation
|
|
|
|
- Implemented consistent avatar display using same seed (npub) across the app
|
|
|
|
- Ensured avatar consistency between profile, header, and settings drawer
|
|
|
|
- Enhanced user experience with friendly robot avatars for users without profile images
|
|
|
|
- Updated application components to use the new avatar system
|
|
|
|
- Robohash integration for profile pictures
|
|
|
|
- Added automatic robot avatar fallbacks when profile images don't load
|
|
|
|
- Implemented consistent avatar generation based on user IDs
|
|
|
|
- Added support for ephemeral keys and non-authenticated users
|
|
|
|
- Created test screen to demonstrate various avatar scenarios
|
|
|
|
- Enhanced UserAvatar component with Robohash integration
|
|
|
|
### Added
|
|
|
|
- Documentation structure overhaul for Profile feature
|
|
|
|
- Created comprehensive Profile Tab Overview documentation
|
|
|
|
- Added detailed documentation for each profile tab (Overview, Activity, Progress, Settings)
|
|
|
|
- Created authentication patterns documentation with hook ordering best practices
|
|
|
|
- Developed progress tracking implementation documentation
|
|
|
|
- Added follower statistics documentation with NostrBand integration details
|
|
|
|
- Created proper tab-level documentation for user profile information
|
|
|
|
- Built structure diagrams for the profile section architecture
|
|
|
|
- Updated documentation migration mapping
|
|
|
|
- Created proper cross-references between all profile documents
|
2025-03-29 17:47:10 -07:00
|
|
|
- External Signer Support for Android (NIP-55)
|
|
|
|
- Added Amber integration for secure private key management
|
|
|
|
- Created ExternalSignerUtils to detect external signer apps
|
|
|
|
- Implemented NDKAmberSigner for NIP-55 protocol support
|
|
|
|
- Enhanced NDK store with loginWithExternalSigner functionality
|
|
|
|
- Exposed new authentication method through useNDKAuth hook
|
|
|
|
- Added "Sign with Amber" option to login screen
|
|
|
|
- Added comprehensive documentation in docs/technical/nostr/external-signers.md
|
2025-04-01 00:03:41 -04:00
|
|
|
- Added technical documentation in docs/technical/nostr/amber-integration-fixes.md
|
2025-04-01 21:28:50 -04:00
|
|
|
- Standardized login experience across profile screens
|
|
|
|
- Created reusable NostrProfileLogin component for consistent UI
|
|
|
|
- Added customizable messaging for context-specific instructions
|
|
|
|
- Standardized button styling and text formatting
|
|
|
|
- Improved visual hierarchy with consistent spacing
|
2025-04-02 21:11:25 -04:00
|
|
|
- Documentation structure overhaul for Library feature
|
|
|
|
- Created new consolidated template organization documentation
|
|
|
|
- Enhanced library feature documentation with status indicators and implementation details
|
|
|
|
- Migrated design documents to new documentation structure
|
|
|
|
- Archived original documents with proper reference links
|
|
|
|
- Updated documentation migration mapping
|
|
|
|
- Fixed broken intra-documentation links
|
|
|
|
- Documentation structure overhaul for History feature
|
|
|
|
- Created comprehensive History tab overview documentation
|
|
|
|
- Added detailed History List View documentation with code examples
|
|
|
|
- Developed Calendar View documentation with implementation details
|
|
|
|
- Created detailed Migration Guide for History API
|
|
|
|
- Added proper archival references for legacy documents
|
|
|
|
- Updated documentation migration mapping
|
|
|
|
- Enhanced cross-referencing between History documents
|
2025-04-01 00:03:41 -04:00
|
|
|
|
2025-03-29 17:47:10 -07:00
|
|
|
### Fixed
|
2025-04-01 21:28:50 -04:00
|
|
|
- Profile tab login experience
|
|
|
|
- Fixed error when accessing profile feed without authentication
|
|
|
|
- Created standardized login component across all profile screens
|
|
|
|
- Added conditional hook calling to prevent "rendered fewer hooks than expected" error
|
|
|
|
- Improved state management during authentication transitions
|
|
|
|
- Enhanced profile data loading with better error handling
|
2025-04-01 00:03:41 -04:00
|
|
|
- Android: Fixed Amber external signer integration issues
|
|
|
|
- Added extensive logging to better diagnose communication issues
|
|
|
|
- Improved error handling in `AmberSignerModule.kt`
|
|
|
|
- Fixed intent construction to better follow NIP-55 protocol
|
|
|
|
- Enhanced response handling with checks for URI parameters and intent extras
|
|
|
|
- Added POWR-specific event kinds (1301, 33401, 33402) to permission requests
|
2025-03-29 17:47:10 -07:00
|
|
|
- Authentication state management issues
|
|
|
|
- Fixed hook ordering inconsistencies when switching between authenticated and unauthenticated states
|
|
|
|
- Enhanced profile overview screen with consistent hook calling patterns
|
|
|
|
- Restructured UI rendering to avoid conditional hook calls
|
|
|
|
- Improved error handling for external signer integration
|
|
|
|
- Fixed "Rendered more hooks than during the previous render" error during login/logout
|
|
|
|
- Android-specific login issues
|
|
|
|
- Fixed private key validation to handle platform-specific string formatting
|
|
|
|
- Added special handling for nsec key format on Android
|
|
|
|
- Added hardcoded solution for specific test nsec key
|
|
|
|
- Improved validation flow to properly handle keys in different formats
|
|
|
|
- Enhanced error messages with detailed debugging information
|
|
|
|
- Added platform-specific key handling for consistent cross-platform experience
|
|
|
|
- Ensured both external signer and direct key login methods work properly
|
2025-03-28 21:22:20 -07:00
|
|
|
- TestFlight preparation: Added production flag in theme constants
|
|
|
|
- TestFlight preparation: Hid development-only Programs tab in production builds
|
|
|
|
- TestFlight preparation: Removed debug UI and console logs from social feed in production builds
|
|
|
|
|
2025-02-09 20:38:38 -05:00
|
|
|
|
2025-03-28 10:18:44 -07:00
|
|
|
# Changelog - March 28, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- Real-time follower and following counts in Profile screen
|
|
|
|
- Integrated with nostr.band API for comprehensive network statistics
|
|
|
|
- Created NostrBandService for efficient API interaction
|
|
|
|
- Implemented useProfileStats hook with auto-refresh capabilities
|
|
|
|
- Added proper loading states and error handling
|
|
|
|
- Created documentation in the new documentation structure
|
2025-03-28 21:22:20 -07:00
|
|
|
- iOS TestFlight build configuration
|
|
|
|
- Created comprehensive TestFlight submission documentation
|
|
|
|
- Added production and preview build profiles to eas.json
|
|
|
|
- Added TestFlight submission configuration
|
|
|
|
- Created deployment documentation in docs/deployment/ios_testflight_guide.md
|
2025-03-28 10:18:44 -07:00
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Enhanced Profile UI
|
|
|
|
- Reorganized profile screen layout for better information hierarchy
|
|
|
|
- Improved npub display with better sharing options
|
|
|
|
- Added inline copy and QR buttons for better usability
|
|
|
|
- Enhanced visual consistency across profile elements
|
|
|
|
- Replaced hardcoded follower counts with real-time data
|
2025-03-28 21:22:20 -07:00
|
|
|
- Updated project configuration for TestFlight
|
|
|
|
- Updated outdated packages (expo, expo-dev-client, expo-file-system, expo-router, expo-sqlite, jest-expo)
|
|
|
|
- Removed unmaintained packages (expo-random)
|
|
|
|
- Removed unnecessary packages (@types/react-native)
|
|
|
|
- Fixed updates URL in app.json to use the correct project ID
|
|
|
|
- Documented workflow conflict between managed and bare configurations
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Prebuild/managed workflow conflict documentation
|
|
|
|
- Added detailed explanation of the configuration issue
|
|
|
|
- Documented future decision points for project architecture
|
|
|
|
- Provided options for resolving the configuration conflict
|
2025-03-28 10:18:44 -07:00
|
|
|
|
2025-03-26 20:02:53 -07:00
|
|
|
# Changelog - March 26, 2025
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Authentication state management issues
|
|
|
|
- Fixed runtime error when signing out from social screens
|
|
|
|
- Enhanced useSocialFeed hook with better subscription management
|
|
|
|
- Improved NDK logout process with proper subscription cleanup
|
|
|
|
- Added deep comparison for subscription parameters to prevent unnecessary resubscriptions
|
|
|
|
- Implemented exponential backoff for subscription attempts
|
|
|
|
- Enhanced error handling in subscription lifecycle
|
|
|
|
- Fixed React hooks order issues in social components
|
|
|
|
- Added proper cleanup of subscriptions during authentication state changes
|
|
|
|
- Increased logout delay to ensure proper cleanup of resources
|
|
|
|
- Added type-safe access to NDK internal properties
|
|
|
|
- Fixed "Rendered fewer hooks than expected" error during logout
|
|
|
|
- Ensured consistent hook call order in social feed components
|
|
|
|
- Improved subscription cleanup timing in NDK store
|
|
|
|
- Enhanced state management during authentication transitions
|
|
|
|
- Added better subscription tracking and cleanup in logout process
|
|
|
|
|
2025-03-23 15:53:34 -04:00
|
|
|
# Changelog - March 25, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- NDK Mobile Cache Integration Plan
|
|
|
|
- Created comprehensive cache management documentation
|
|
|
|
- Designed profile image caching system
|
|
|
|
- Planned publication queue service enhancements
|
|
|
|
- Outlined social feed caching improvements
|
|
|
|
- Documented workout history caching strategy
|
|
|
|
- Planned exercise library and template caching
|
|
|
|
- Designed contact list and following caching
|
|
|
|
- Outlined general media cache service
|
2025-03-26 20:02:53 -07:00
|
|
|
- Created detailed testing strategy documentation
|
|
|
|
- Implemented ProfileImageCache service with NDK integration
|
|
|
|
- Enhanced UserAvatar component to use cached profile images
|
|
|
|
- Updated EnhancedSocialPost to use UserAvatar for profile images
|
|
|
|
- Fixed NDK initialization to properly set NDK in ProfileImageCache
|
|
|
|
- Removed draft articles (kind 30024) from all feeds
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Social feed subscription issues
|
|
|
|
- Consolidated multiple separate subscriptions into a single subscription
|
|
|
|
- Fixed infinite subscription loop in POWR feed
|
|
|
|
- Removed tag filtering for POWR account to ensure all content is displayed
|
|
|
|
- Improved timestamp handling to prevent continuous resubscription
|
|
|
|
- Enhanced logging for better debugging
|
|
|
|
- Removed old feed implementation in favor of unified useSocialFeed hook
|
|
|
|
- Added proper subscription cleanup to prevent memory leaks
|
|
|
|
- Implemented write buffer system to prevent transaction conflicts
|
|
|
|
- Added LRU cache for tracking known events to prevent duplicates
|
|
|
|
- Improved transaction management with withTransactionAsync
|
|
|
|
- Added debounced subscriptions to prevent rapid resubscriptions
|
|
|
|
- Enhanced error handling to prevent cascading failures
|
|
|
|
- Added proper initialization of SocialFeedCache in RelayInitializer
|
|
|
|
- Fixed following feed refresh issue that caused feed to reset unexpectedly
|
|
|
|
- Implemented contact caching to prevent feed refresh loops
|
|
|
|
- Added schema support for contact list caching (version 12)
|
|
|
|
- Simplified feed refresh logic to prevent unnecessary subscription resets
|
|
|
|
- Enhanced Following feed stability with improved contact management
|
|
|
|
- Fixed database transaction conflicts between SocialFeedCache and ContactCacheService
|
|
|
|
- Implemented global transaction lock mechanism to prevent nested transactions
|
|
|
|
- Added transaction queue for coordinating database operations across services
|
|
|
|
- Enhanced Following feed refresh logic with retry mechanism and better state tracking
|
|
|
|
- Added safeguards to prevent multiple simultaneous refresh attempts
|
|
|
|
- Improved error recovery in contact-based feed refreshes
|
|
|
|
- Enhanced Social Feed Filtering
|
|
|
|
- Updated Community feed (formerly Global) with better content focus
|
|
|
|
- Improved Following feed with consistent filtering rules
|
|
|
|
- Social Feed Caching Implementation
|
|
|
|
- Created SocialFeedCache service for storing feed events
|
|
|
|
- Enhanced SocialFeedService to use cache for offline access
|
|
|
|
- Updated useSocialFeed hook to handle offline mode
|
|
|
|
- Added offline indicator in social feed UI
|
|
|
|
- Implemented automatic caching of viewed feed events
|
|
|
|
- Added cache for referenced content (quoted posts)
|
|
|
|
- Created documentation for social feed caching architecture
|
|
|
|
- Profile Image Caching Implementation
|
|
|
|
- Created ProfileImageCache service for storing user avatars
|
|
|
|
- Enhanced UserAvatar component to use cached images
|
|
|
|
- Implemented automatic caching of viewed profile images
|
|
|
|
- Added fallback to cached images when offline
|
|
|
|
- Improved image loading performance with cache-first approach
|
|
|
|
- Added cache expiration management for profile images
|
2025-03-23 15:53:34 -04:00
|
|
|
- Enhanced offline functionality
|
|
|
|
- Added OfflineIndicator component for app-wide status display
|
|
|
|
- Created SocialOfflineState component for graceful social feed degradation
|
|
|
|
- Implemented WorkoutOfflineState component for workout screen fallbacks
|
|
|
|
- Enhanced ConnectivityService with better network detection
|
|
|
|
- Added offline mode detection in RelayInitializer
|
|
|
|
- Implemented graceful fallbacks for unavailable content
|
|
|
|
- Added cached data display when offline
|
|
|
|
- Created user-friendly offline messaging
|
2025-03-26 20:02:53 -07:00
|
|
|
- Added automatic switching between online and offline data sources
|
2025-03-23 15:53:34 -04:00
|
|
|
|
|
|
|
## Improved
|
2025-03-26 20:02:53 -07:00
|
|
|
- Social feed performance and reliability
|
|
|
|
- Added SQLite-based caching for feed events
|
|
|
|
- Implemented feed type tracking (following, powr, global)
|
|
|
|
- Enhanced event processing with cache-first approach
|
|
|
|
- Added automatic cache expiration (7-day default)
|
|
|
|
- Improved referenced content resolution with caching
|
|
|
|
- Enhanced offline user experience with cached content
|
|
|
|
- Added connectivity-aware component rendering
|
|
|
|
- Implemented automatic mode switching based on connectivity
|
|
|
|
|
2025-03-23 15:53:34 -04:00
|
|
|
- Splash screen reliability
|
|
|
|
- Enhanced SimpleSplashScreen with better error handling
|
|
|
|
- Improved platform detection for video vs. static splash
|
|
|
|
- Added fallback mechanisms for failed image loading
|
|
|
|
- Enhanced logging for better debugging
|
|
|
|
- Fixed Android-specific issues with splash screen
|
|
|
|
- Offline user experience
|
|
|
|
- Added visual indicators for offline state
|
|
|
|
- Implemented graceful degradation of network-dependent features
|
|
|
|
- Enhanced error handling for network failures
|
|
|
|
- Added automatic retry mechanisms when connectivity is restored
|
|
|
|
- Improved caching of previously viewed content
|
|
|
|
- Enhanced state persistence during offline periods
|
|
|
|
- Added connectivity-aware component rendering
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Text rendering in React Native components
|
|
|
|
- Fixed "Text strings must be rendered within a <Text> component" error
|
|
|
|
- Improved card component to properly handle text children
|
|
|
|
- Enhanced error handling for text rendering issues
|
|
|
|
- Added better component composition for text containers
|
|
|
|
- Network-related crashes
|
|
|
|
- Fixed uncaught promise rejections in network requests
|
|
|
|
- Added proper error boundaries for network-dependent components
|
|
|
|
- Implemented timeout handling for stalled requests
|
|
|
|
- Enhanced error messaging for network failures
|
|
|
|
|
2025-03-23 11:07:26 -04:00
|
|
|
# Changelog - March 24, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- Unified workout history service and hook
|
|
|
|
- Created `UnifiedWorkoutHistoryService` that combines functionality from multiple services
|
|
|
|
- Implemented `useWorkoutHistory` hook for simplified data access
|
|
|
|
- Added real-time Nostr updates with subscription support
|
|
|
|
- Improved filtering capabilities across local and Nostr workouts
|
|
|
|
- Enhanced type safety with better interfaces
|
|
|
|
- Added comprehensive migration guide for developers
|
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Consolidated workout history architecture
|
|
|
|
- Reduced code duplication across services
|
|
|
|
- Simplified API for accessing workout data
|
|
|
|
- Enhanced performance with optimized database queries
|
|
|
|
- Better error handling throughout the system
|
|
|
|
- Improved documentation with migration examples
|
|
|
|
- Enhanced calendar view with fallback filtering for dates
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Calendar view now properly shows workouts when clicking on dates
|
|
|
|
- Added fallback mechanism to filter workouts manually if database query returns no results
|
|
|
|
- Improved logging for better debugging
|
|
|
|
- Fixed edge cases where workouts wouldn't appear in the calendar view
|
|
|
|
|
|
|
|
## Removed
|
|
|
|
- Legacy workout history services
|
|
|
|
- Removed `EnhancedWorkoutHistoryService`
|
|
|
|
- Removed `NostrWorkoutHistoryService`
|
|
|
|
- Removed `useNostrWorkoutHistory` hook
|
|
|
|
- Completed migration to unified workout history API
|
|
|
|
|
2025-03-23 06:59:22 -04:00
|
|
|
# Changelog - March 23, 2025
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- History tab navigation issues
|
|
|
|
- Fixed nested screens warning by renaming "history" screen to "workouts" in history tab
|
|
|
|
- Updated initialRouteName to match the new screen name
|
|
|
|
- Improved navigation between history tab and workout detail screen
|
|
|
|
- Workout detail screen improvements
|
|
|
|
- Added timeout to prevent infinite loading state
|
|
|
|
- Enhanced error handling with proper error state display
|
|
|
|
- Added "Go Back" button for error recovery
|
|
|
|
- Fixed TypeScript errors with proper imports
|
|
|
|
- Enhanced workout history service
|
|
|
|
- Added detailed logging for exercise loading process
|
|
|
|
- Added checks to verify if exercises exist in the database
|
|
|
|
- Fixed TypeScript errors in exercise existence checks
|
|
|
|
- Improved error handling throughout the service
|
2025-03-23 11:07:26 -04:00
|
|
|
- Calendar view UI and functionality
|
|
|
|
- Fixed date highlighting shape to use clean circles instead of hexagons
|
|
|
|
- Removed shadow effects causing visual distortion in calendar dates
|
|
|
|
- Improved workout date detection with better fallback mechanisms
|
|
|
|
- Enhanced exercise name display in workout cards
|
2025-03-23 06:59:22 -04:00
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Enhanced debugging capabilities
|
|
|
|
- Added comprehensive logging in EnhancedWorkoutHistoryService
|
|
|
|
- Improved error state handling in workout detail screen
|
|
|
|
- Better error messages for troubleshooting
|
2025-03-23 11:07:26 -04:00
|
|
|
- Calendar view reliability
|
|
|
|
- Added fallback date filtering when database queries return no results
|
|
|
|
- Improved workout date detection with combined data sources
|
|
|
|
- Enhanced visual consistency of date highlighting
|
2025-03-23 06:59:22 -04:00
|
|
|
|
2025-03-22 23:21:26 -04:00
|
|
|
# Changelog - March 22, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- Enhanced Profile Tab with new features
|
|
|
|
- Implemented tabbed interface with Overview, Activity, Progress, and Settings
|
|
|
|
- Added Terms of Service modal with comprehensive content
|
|
|
|
- Created dedicated settings screen with improved organization
|
|
|
|
- Added dark mode toggle in settings
|
|
|
|
- Implemented proper text visibility in both light and dark modes
|
|
|
|
- Added Nostr publishing settings with clear explanations
|
|
|
|
- Created analytics service for workout progress tracking
|
|
|
|
- Added progress visualization with charts and statistics
|
|
|
|
- Implemented activity feed for personal workout history
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Dark mode text visibility issues
|
|
|
|
- Added explicit text-foreground classes to ensure visibility
|
|
|
|
- Updated button variants to use purple for better contrast
|
|
|
|
- Fixed modal content visibility in dark mode
|
|
|
|
- Improved component styling for consistent appearance
|
|
|
|
- TypeScript errors in navigation
|
|
|
|
- Fixed router.push path format in SettingsDrawer
|
|
|
|
- Updated import paths for better type safety
|
|
|
|
- Improved component props typing
|
|
|
|
|
2025-03-21 22:21:45 -04:00
|
|
|
# Changelog - March 20, 2025
|
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Enhanced Social Feed UI
|
|
|
|
- Redesigned feed posts with divider-based layout instead of cards
|
|
|
|
- Implemented edge-to-edge content display with hairline separators
|
|
|
|
- Optimized post spacing for more compact, Twitter-like appearance
|
|
|
|
- Reduced vertical padding between post elements
|
|
|
|
- Tightened spacing between content and action buttons
|
|
|
|
- Fixed image loading for POWR Pack images
|
|
|
|
- Enhanced overall feed performance with component memoization
|
|
|
|
- Improved empty state messaging
|
|
|
|
- Fixed infinite loop issues in feed subscription management
|
|
|
|
- Added proper feed reset and refresh functionality
|
|
|
|
- Enhanced debugging tools for relay connection troubleshooting
|
|
|
|
- Improved feed state management with proper lifecycle handling
|
|
|
|
- Optimized rendering for long lists with virtualized FlatList
|
|
|
|
- Added scrollToTop functionality for new content
|
|
|
|
|
2025-03-22 20:14:19 -04:00
|
|
|
## Fixed
|
|
|
|
- Template creation issue: preserved original exercise IDs when creating templates to ensure proper exercise references
|
|
|
|
- Modified NewTemplateSheet to store full exercise objects
|
|
|
|
- Updated handleAddTemplate to use original exercise IDs
|
|
|
|
- Fixed type definitions to support enhanced template exercises
|
|
|
|
|
2025-03-21 22:21:45 -04:00
|
|
|
# Changelog - March 19, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- Social Feed Integration
|
|
|
|
- Implemented tabbed social feed with Following, POWR, and Global tabs
|
|
|
|
- Created EnhancedSocialPost component for rendering workout events
|
|
|
|
- Added support for viewing workout records, exercise templates, and workout templates
|
|
|
|
- Implemented post interaction features (likes, comments)
|
|
|
|
- Added workout detail screen for viewing complete workout information
|
|
|
|
- Integrated with Nostr protocol for decentralized social content
|
|
|
|
- Created SocialFeedService for fetching and managing social content
|
|
|
|
- Implemented useFollowingFeed, usePOWRFeed, and useGlobalFeed hooks
|
|
|
|
- Added user profile integration with avatar display
|
|
|
|
- Created POWRPackSection for discovering shared workout templates
|
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Enhanced profile handling
|
|
|
|
- Added robust error management for profile image loading
|
|
|
|
- Implemented proper state management to prevent infinite update loops
|
|
|
|
- Better memory management with cleanup on component unmount
|
|
|
|
- Workout content display
|
|
|
|
- Created rich workout event cards with detailed exercise information
|
|
|
|
- Added support for displaying workout duration, exercises, and performance metrics
|
|
|
|
- Implemented proper text handling for React Native
|
|
|
|
- Nostr integration
|
|
|
|
- Added support for exercise, template, and workout event kinds
|
|
|
|
- Implemented event parsing for different content types
|
|
|
|
- Created useSocialFeed hook with pagination support
|
|
|
|
- Enhanced NDK integration with better error handling
|
|
|
|
- UI/UX enhancements
|
|
|
|
- Added pull-to-refresh for feed updates
|
|
|
|
- Implemented load more functionality for pagination
|
|
|
|
- Created skeleton loading states for better loading experience
|
|
|
|
- Enhanced navigation between feed and detail screens
|
|
|
|
|
2025-03-13 14:02:36 -04:00
|
|
|
# Changelog - March 12, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- POWR Packs - Shareable template and exercise collections
|
|
|
|
- Implemented import/export system for workout content using Nostr protocol
|
|
|
|
- Added database schema support for packs (tables: powr_packs, powr_pack_items)
|
|
|
|
- Created POWRPackService for fetching, importing, and managing packs
|
|
|
|
- Built NostrIntegration helper for conversion between Nostr events and local models
|
|
|
|
- Implemented interface to browse and import workout packs from the community
|
|
|
|
- Added pack management screen with import/delete functionality
|
|
|
|
- Created pack discovery in POWR Community tab
|
|
|
|
- Added dependency tracking for exercises required by templates
|
|
|
|
- Implemented selective import with smart dependency management
|
|
|
|
- Added clipboard support for sharing pack addresses
|
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Enhanced Social experience
|
|
|
|
- Added POWR Pack discovery to POWR Community tab
|
|
|
|
- Implemented horizontal scrolling gallery for featured packs
|
|
|
|
- Added loading states with skeleton UI
|
|
|
|
- Improved visual presentation of shared content
|
|
|
|
- Settings drawer enhancements
|
|
|
|
- Added POWR Packs management option
|
|
|
|
- Improved navigation structure
|
|
|
|
- Nostr integration
|
|
|
|
- Added support for NIP-51 lists (kind 30004)
|
|
|
|
- Enhanced compatibility between app models and Nostr events
|
|
|
|
- Improved type safety for Nostr operations
|
|
|
|
- Better error handling for network operations
|
|
|
|
- Expanded event type support for templates and exercises
|
|
|
|
|
2025-03-09 11:15:28 -04:00
|
|
|
# Changelog - March 9, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- Relay management system
|
|
|
|
- Added relays table to SQLite schema (version 3)
|
|
|
|
- Created RelayService for database operations
|
|
|
|
- Implemented RelayStore using Zustand for state management
|
|
|
|
- Added compatibility layer for NDK and NDK-mobile
|
|
|
|
- Added relay management UI in settings drawer
|
|
|
|
- Implemented relay connection status tracking
|
|
|
|
- Added support for read/write permissions
|
|
|
|
- Created relay initialization system with defaults
|
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Enhanced NDK initialization
|
|
|
|
- Added proper relay configuration loading
|
|
|
|
- Improved connection status tracking
|
|
|
|
- Enhanced error handling for relay operations
|
|
|
|
- Settings drawer enhancements
|
|
|
|
- Added relay management option
|
|
|
|
- Improved navigation structure
|
|
|
|
- Enhanced user interface
|
|
|
|
- NDK compatibility
|
|
|
|
- Created universal interfaces for NDK implementations
|
|
|
|
- Added type safety for complex operations
|
|
|
|
- Improved error handling throughout relay management
|
|
|
|
|
2025-03-08 15:48:07 -05:00
|
|
|
# Changelog - March 8, 2025
|
|
|
|
|
|
|
|
## Added
|
|
|
|
- Database schema upgrade to version 5
|
|
|
|
- Added workouts, workout_exercises, and workout_sets tables
|
|
|
|
- Added templates and template_exercises tables
|
|
|
|
- Added publication_queue table for offline-first functionality
|
|
|
|
- Added app_status table for connectivity tracking
|
|
|
|
- New database services
|
|
|
|
- WorkoutService for managing workout data persistence
|
|
|
|
- Enhanced TemplateService for template management
|
|
|
|
- NostrWorkoutService for Nostr event conversion
|
|
|
|
- Updated PublicationQueueService for offline publishing
|
|
|
|
- React hooks for database access
|
|
|
|
- useWorkouts hook for workout operations
|
|
|
|
- useTemplates hook for template operations
|
|
|
|
- Improved workout completion flow
|
|
|
|
- Three-tier storage approach (Local Only, Publish Complete, Publish Limited)
|
|
|
|
- Template modification options (keep original, update, save as new)
|
|
|
|
- Enhanced social sharing capabilities
|
|
|
|
- Detailed workout summary with statistics
|
|
|
|
- Enhanced database debugging tools
|
|
|
|
- Added proper error handling and logging
|
|
|
|
- Improved transaction management
|
|
|
|
- Added connectivity status tracking
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- Missing workout and template table errors
|
|
|
|
- Incomplete data storage issues
|
|
|
|
- Template management synchronization
|
|
|
|
- Nostr event conversion between app models and Nostr protocol
|
|
|
|
- Workout persistence across app sessions
|
|
|
|
- Database transaction handling in workout operations
|
|
|
|
- Template reference handling in workout records
|
|
|
|
|
|
|
|
## Improved
|
|
|
|
- Workout store persistence layer
|
|
|
|
- Enhanced integration with database services
|
|
|
|
- Better error handling for database operations
|
|
|
|
- Improved Nostr connectivity detection
|
|
|
|
- Template management workflow
|
|
|
|
- Proper versioning and attribution
|
|
|
|
- Enhanced modification tracking
|
|
|
|
- Better user control over template sharing
|
|
|
|
- Overall data persistence architecture
|
|
|
|
- Consistent service-based approach
|
|
|
|
- Improved type safety
|
|
|
|
- Enhanced error propagation
|
|
|
|
|
2025-03-06 16:34:50 -05:00
|
|
|
# Changelog - March 6, 2025
|
|
|
|
|
|
|
|
## Added
|
2025-03-07 10:09:55 -05:00
|
|
|
- Comprehensive workout completion flow
|
|
|
|
- Implemented three-tier storage approach (Local Only, Publish Complete, Publish Limited)
|
|
|
|
- Added support for template modifications with options to keep original, update, or save as new
|
|
|
|
- Created celebration screen with confetti animation
|
|
|
|
- Integrated social sharing capabilities for Nostr
|
|
|
|
- Built detailed workout summary with achievement tracking
|
|
|
|
- Added workout statistics including duration, volume, and set completion
|
|
|
|
- Implemented privacy-focused publishing options
|
|
|
|
- Added template attribution and modification tracking
|
2025-03-06 16:34:50 -05:00
|
|
|
- NDK mobile integration for Nostr functionality
|
|
|
|
- Added event publishing and subscription capabilities
|
|
|
|
- Implemented proper type safety for NDK interactions
|
|
|
|
- Created testing components for NDK functionality verification
|
|
|
|
- Enhanced exercise management with Nostr support
|
|
|
|
- Implemented exercise creation, editing, and forking workflows
|
|
|
|
- Added support for custom exercise event kinds (33401)
|
|
|
|
- Built exercise publication queue for offline-first functionality
|
|
|
|
- User profile integration
|
|
|
|
- Added profile fetching and caching
|
|
|
|
- Implemented profile-based permissions for content editing
|
|
|
|
- Fixed type definitions for NDK user profiles
|
|
|
|
- Robust workout state management
|
|
|
|
- Fixed favorites persistence in SQLite
|
|
|
|
- Added template-based workout initialization
|
|
|
|
- Implemented workout tracking with real-time updates
|
|
|
|
|
|
|
|
## Fixed
|
|
|
|
- TypeScript errors across multiple components:
|
|
|
|
- Resolved NDK-related type errors in ExerciseSheet component
|
|
|
|
- Fixed FavoritesService reference errors in workoutStore
|
|
|
|
- Corrected null/undefined handling in NDKEvent initialization
|
|
|
|
- Fixed profile type compatibility in useProfile hook
|
|
|
|
- Added proper type definitions for NDK UserProfile
|
|
|
|
- Dependency errors in PublicationQueue and DevSeeder services
|
|
|
|
- Source and authorization checks for exercise editing permissions
|
|
|
|
- Component interoperability with NDK mobile
|
|
|
|
|
|
|
|
## Improved
|
2025-03-07 10:09:55 -05:00
|
|
|
- Enhanced relay connection management
|
|
|
|
- Added timeout-based connection attempts
|
|
|
|
- Implemented better connection status tracking
|
|
|
|
- Added relay connectivity verification before publishing
|
|
|
|
- Improved error handling for publishing failures
|
|
|
|
- Workout completion UI
|
|
|
|
- Added scrollable interfaces for better content accessibility
|
|
|
|
- Enhanced visual feedback for selected options
|
|
|
|
- Improved button placement and visual hierarchy
|
|
|
|
- Added clearer visual indicators for selected storage options
|
2025-03-06 16:34:50 -05:00
|
|
|
- Refactored code for better type safety
|
|
|
|
- Enhanced error handling with proper type checking
|
|
|
|
- Improved Nostr event creation workflow with NDK
|
|
|
|
- Streamlined user authentication process
|
|
|
|
- Enhanced development environment with better type checking
|
|
|
|
|
2025-02-09 20:38:38 -05:00
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
### Added
|
2025-03-04 08:07:27 -05:00
|
|
|
- Successful Nostr protocol integration
|
|
|
|
- Implemented NDK-mobile for React Native compatibility
|
|
|
|
- Added secure key management with Expo SecureStore
|
|
|
|
- Created event signing and publishing functionality
|
|
|
|
- Built relay connection management system
|
|
|
|
- Implemented event caching for offline support
|
|
|
|
- Added support for various Nostr event kinds (Text, Exercise, Template, Workout)
|
|
|
|
- Programs component for testing Nostr functionality
|
|
|
|
- Created tabbed interface with Database and Nostr sections
|
|
|
|
- Implemented user authentication flow
|
|
|
|
- Added event creation with multiple event types
|
|
|
|
- Built query functionality for retrieving events
|
|
|
|
- Developed event display with detailed tag inspection
|
|
|
|
- Added login/logout capabilities with secure key handling
|
|
|
|
- Enhanced crypto support for React Native environment
|
|
|
|
- Implemented proper cryptographic polyfills
|
|
|
|
- Added secure random number generation
|
|
|
|
- Built robust key management system
|
|
|
|
- Developed signer implementation for Nostr
|
|
|
|
- Zustand workout store for state management
|
|
|
|
- Created comprehensive workout state store with Zustand
|
|
|
|
- Implemented selectors for efficient state access
|
|
|
|
- Added workout persistence and recovery
|
|
|
|
- Built automatic timer management with background support
|
|
|
|
- Developed minimization and maximization functionality
|
2025-03-06 16:34:50 -05:00
|
|
|
- Zustand workout store for state management
|
|
|
|
- Created comprehensive workout state store with Zustand
|
|
|
|
- Implemented selectors for efficient state access
|
|
|
|
- Added workout persistence and recovery
|
|
|
|
- Built automatic timer management with background support
|
|
|
|
- Developed minimization and maximization functionality
|
2025-02-26 23:30:00 -05:00
|
|
|
- Workout tracking implementation with real-time tracking
|
|
|
|
- Added workout timer with proper background handling
|
|
|
|
- Implemented rest timer functionality
|
|
|
|
- Added exercise set tracking with weight and reps
|
|
|
|
- Created workout minimization and maximization system
|
|
|
|
- Implemented active workout bar for minimized workouts
|
2025-02-17 13:40:37 -05:00
|
|
|
- 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
|
2025-02-17 11:24:17 -05:00
|
|
|
- Alphabetical quick scroll in exercise library
|
2025-04-04 15:46:31 -04:00
|
|
|
- Dynamic letter highlighting
|