Releases: rinafcode/teachLink_mobile
Releases · rinafcode/teachLink_mobile
Release v1.15.0
What's Changed
- perf: memoize FlatList renderItem and enforce exhaustive-deps
- chore(release): v1.14.0 [skip ci]
- chore(release): v1.13.0 [skip ci]
- chore(release): v1.12.0 [skip ci]
- chore(release): v1.11.0 [skip ci]
- chore(release): v1.10.0 [skip ci]
- style: apply prettier formatting to changed files
- test: stabilize axios mock and timer cleanup in batchClient tests
- fix: align axios mock with project standard pattern (all HTTP methods)
- fix: validate and sanitize incoming deep links to prevent open redirects
- feat: add analytics event batching with offline queue (#670)
- fix(#594): cap requestDeduplicator at 100 entries with 30s TTL eviction
- feat: add jailbreak/root detection to gate biometric auth and payments
- fix: clean up lint warnings in socket service after merge
- fix(#599): debounce useFormCache writes at 800ms, add flushCache and unmount cleanup
- chore: revert package-lock.json changes
- fix search index debounce performance
- Update package-lock.json with missing dependencies
- fix(store): fix degradedFeatures Set serialization bug in persist middleware
- fix(security): validate & sanitise notification payload to block prototype pollution (#586)
- chore(release): v1.9.0 [skip ci]
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- fix(mobile): optimize quiz analytics and socket reconnect backoff (#593, #601)
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- feat: implement shimmer SkeletonLoader and fix quizStore index persistence bug
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: 3914f3c...v1.15.0
Release v1.14.1
What's Changed
- fix: prevent generic prop spreading in mobile drawer and offline indicator
- chore: prevent component prop spreading
Full Changelog: ce92a8b...v1.14.1
Release v1.14.0
What's Changed
- chore(release): v1.13.0 [skip ci]
- chore(release): v1.12.0 [skip ci]
- chore(release): v1.11.0 [skip ci]
- chore(release): v1.10.0 [skip ci]
- style: apply prettier formatting to changed files
- test: stabilize axios mock and timer cleanup in batchClient tests
- fix: align axios mock with project standard pattern (all HTTP methods)
- fix: validate and sanitize incoming deep links to prevent open redirects
- feat: add analytics event batching with offline queue (#670)
- fix(#594): cap requestDeduplicator at 100 entries with 30s TTL eviction
- feat: add jailbreak/root detection to gate biometric auth and payments
- fix: clean up lint warnings in socket service after merge
- fix(#599): debounce useFormCache writes at 800ms, add flushCache and unmount cleanup
- chore: revert package-lock.json changes
- fix search index debounce performance
- Update package-lock.json with missing dependencies
- fix(store): fix degradedFeatures Set serialization bug in persist middleware
- fix(security): validate & sanitise notification payload to block prototype pollution (#586)
- chore(release): v1.9.0 [skip ci]
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- fix(mobile): optimize quiz analytics and socket reconnect backoff (#593, #601)
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- feat: implement shimmer SkeletonLoader and fix quizStore index persistence bug
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: 508f23c...v1.14.0
Release v1.13.0
What's Changed
- chore(release): v1.12.0 [skip ci]
- chore(release): v1.11.0 [skip ci]
- chore(release): v1.10.0 [skip ci]
- style: apply prettier formatting to changed files
- test: stabilize axios mock and timer cleanup in batchClient tests
- fix: align axios mock with project standard pattern (all HTTP methods)
- feat: add analytics event batching with offline queue (#670)
- fix(#594): cap requestDeduplicator at 100 entries with 30s TTL eviction
- feat: add jailbreak/root detection to gate biometric auth and payments
- fix: clean up lint warnings in socket service after merge
- fix(#599): debounce useFormCache writes at 800ms, add flushCache and unmount cleanup
- chore: revert package-lock.json changes
- fix search index debounce performance
- Update package-lock.json with missing dependencies
- fix(store): fix degradedFeatures Set serialization bug in persist middleware
- fix(security): validate & sanitise notification payload to block prototype pollution (#586)
- chore(release): v1.9.0 [skip ci]
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- fix(mobile): optimize quiz analytics and socket reconnect backoff (#593, #601)
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- feat: implement shimmer SkeletonLoader and fix quizStore index persistence bug
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: d6648d1...v1.13.0
Release v1.12.0
What's Changed
- chore(release): v1.11.0 [skip ci]
- chore(release): v1.10.0 [skip ci]
- fix(#594): cap requestDeduplicator at 100 entries with 30s TTL eviction
- feat: add jailbreak/root detection to gate biometric auth and payments
- fix: clean up lint warnings in socket service after merge
- fix(#599): debounce useFormCache writes at 800ms, add flushCache and unmount cleanup
- chore: revert package-lock.json changes
- fix search index debounce performance
- Update package-lock.json with missing dependencies
- fix(store): fix degradedFeatures Set serialization bug in persist middleware
- fix(security): validate & sanitise notification payload to block prototype pollution (#586)
- chore(release): v1.9.0 [skip ci]
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- fix(mobile): optimize quiz analytics and socket reconnect backoff (#593, #601)
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- feat: implement shimmer SkeletonLoader and fix quizStore index persistence bug
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: 48bbc31...v1.12.0
Release v1.11.0
What's Changed
- chore(release): v1.10.0 [skip ci]
- fix(#594): cap requestDeduplicator at 100 entries with 30s TTL eviction
- fix: clean up lint warnings in socket service after merge
- fix(#599): debounce useFormCache writes at 800ms, add flushCache and unmount cleanup
- chore: revert package-lock.json changes
- fix search index debounce performance
- Update package-lock.json with missing dependencies
- fix(store): fix degradedFeatures Set serialization bug in persist middleware
- fix(security): validate & sanitise notification payload to block prototype pollution (#586)
- chore(release): v1.9.0 [skip ci]
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- fix(mobile): optimize quiz analytics and socket reconnect backoff (#593, #601)
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- feat: implement shimmer SkeletonLoader and fix quizStore index persistence bug
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: d7d9fb3...v1.11.0
Release v1.10.0
What's Changed
- fix: clean up lint warnings in socket service after merge
- fix(#599): debounce useFormCache writes at 800ms, add flushCache and unmount cleanup
- chore: revert package-lock.json changes
- fix search index debounce performance
- Update package-lock.json with missing dependencies
- fix(store): fix degradedFeatures Set serialization bug in persist middleware
- fix(security): validate & sanitise notification payload to block prototype pollution (#586)
- chore(release): v1.9.0 [skip ci]
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- fix(mobile): optimize quiz analytics and socket reconnect backoff (#593, #601)
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- feat: implement shimmer SkeletonLoader and fix quizStore index persistence bug
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: 29fd712...v1.10.0
Release v1.9.0
What's Changed
- chore(release): v1.8.0 [skip ci]
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- perf: virtualize bookmark & syllabus lists (#219)
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: aa1bb7e...v1.9.0
Release v1.8.0
What's Changed
- chore(release): v1.7.0 [skip ci]
- fix: resolve CI test failures by fixing test mocks and expectations
- chore(release): v1.6.0 [skip ci]
- fix: add getItemLayout to FlatLists for virtualization performance
- chore(release): v1.5.0 [skip ci]
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: 5ff1f48...v1.8.0
Release v1.7.0
What's Changed
- chore(release): v1.6.0 [skip ci]
- chore(release): v1.5.0 [skip ci]
- Add sync backoff circuit breaker
- feat: implement lazy video initialization for MobileVideoPlayer
- fix: cap metrics buffers, add auto‑flush and memory‑pressure flushing
- CI: fix lint errors, add timeout handling, socket heartbeat, disk caching
- Added network consideration
- fix: store notification timestamps as numeric ms, add migration and update logic
- feat: implement intersection observer and viewability hooks for OptimizedVideoPlayer visibility management
- feat: implement app version auto-update mechanism
- Implement asset serving with CDN and caching headers
- Implement TypeScript strict mode for type safety
- fix: resolve CI test failures from bad merge artifacts
- fix failure errors
- effficient
- feat: styling optimization and font subsetting pipeline
- automated CI
- perf: implement exponential backoff (#225), request deduplication (#224), and document lazy loading (#216, #223)
- feat(api): add SWR-style cache revalidation with visible syncing state
- feat(#244): Optimized context re-renders with useMemo and useCallback and also added a test for it
- feat: implement idle task scheduling for non-critical initialization (#243)
- perf(frontend): decouple typing loops from heavy transaction calculations with useTransition (#245)
- feat: implement touch event deduplication to prevent double-triggers (#330)
- feat(#390): implement activity/metrics dashboard for team visibility
- Implemented the fore ground app background
- feat(android): configure ProGuard/R8 for APK size reduction (#239)
- feat: implement aggressive image prefetching for likely user flows
- Implement offline-first sync layer
- feat: add smart multi-tier API cache
- chore: revert CachedImage/imageCache/imageFormat to upstream versions
- fix: pin jest-expo@54.0.17 (upstream ~54.0.19 doesn't exist on npm)
- feat: add WebP image format negotiation with PNG fallback
- chore: fix stale lockfile — jest-expo version mismatch
- perf: strategic memoization based on re-render profiling
- chore: Export scroll restoration hooks from main hooks index
- feat(#337): Implement scroll position restoration for navigation
- Fix parallax stale closure and clean up tsconfig path aliases
- Update performance reports
- Update store alias configuration
- Update parallax scroll view and tests
- feat: implement differential privacy for analytics (#407)
- docs: improve project setup, logging, and deployment documentation
- feat: implement background task scheduling to optimize UI responsiveness (#268)
- fix: resolve CI failures, dependency mismatches and security vulnerabilities
- recent update
- chore: add Dependabot config for weekly npm updates
- chore: remove unused @lhci/cli devDependency to avoid transitive vulnerabilities
- Fix dependency audit and depcheck workflow issues
- Refactor AdvancedDataGrid to use GridExporter component for export functionality; improve InfiniteVirtualList to handle Jest testing environment; enhance LessonCarousel with debounced scroll handling; update video quality service to include slow cellular network type; adjust debounce integration tests for LessonCarousel; mock mobile analytics service in AB testing tests.
- Fix tests: AdvancedDataGrid, InfiniteVirtualList, LessonCarousel, and related Jest setup
- chore: improve documentation and developer setup guide for TeachLink Mobile
- fix: resolve ESLint errors — remove stale ScrollView ref, fix import order, wire onScroll handlers
- feat(images): implement progressive loading with LQIP and WebP (#231)
- #361 Implement efficient SVG rendering with memoization
- #353 Implement search result pagination to prevent large list renders
- feat: Implement progressive image loading with LQIP and WebP
- feat: enhance request queue with persistence, priority levels, and batch sync (#228)
- Resolve merge conflicts
- fix: resolve failing test suites for secureStorage, streaming, videoQuality, notifications, and card components
- fix: wrap bundle-size comment step in try-catch to allow fork PRs to pass
- fix: explicitly add typescript and dependencies to sync lockfile for CI clean install
- fix: rename streaming test to TSX for JSX parsing support and commit updated lockfile
- fix: correct style array syntax in MobileProfile and format modified files
- fix: import missing components in AdvancedDataGrid and add rules of hooks bypasses
- fix: resolve upstream tsconfig and carousel syntax errors
- feat: migrate forms to react-hook-form for minimal re-renders
- feat: Implement graceful degradation for camera and location features
- add useDeviceUiComplexity hook for adaptive UI complexity based on device capabilities
- docs: add complete CI fixes summary
- fix: allow lint warnings and use npm install in test workflow
- chore: trigger CI with correct expo-store-review version
- fix: correct expo-store-review version to 8.0.0
- fix: change npm ci to npm install in workflows
- fix: add environment variables to all CI workflows
- fix: add build script for CI workflow
- fix: add expo-store-review dependency and test mocks
- feat: implement smart in-app review system
- fix: refactor component tree to reduce re-render propagation
- perf: reduce store memory footprint at startup
- perf: split appStore and lazy-init achievement state
- perf: enable removeClippedSubviews on ScrollView and FlatList
- perf: add removeClippedSubviews to FlatList components
- #405 Implement critical feature flagging for progressive rollout
Full Changelog: 8fd4113...v1.7.0