1.15.0 (2026-06-01)
- implement cursor-based pagination for courses and add related hooks and tests (9f4efb2)
- Implement efficient animation scheduling with requestAnimationFrame (#349) (b0b8292)
1.14.1 (2026-06-01)
- prevent generic prop spreading in mobile drawer and offline indicator (e60dea5)
1.14.0 (2026-06-01)
- add resource timing metrics for API calls and image loads (c34e734), closes #31 #32 #33 #34
- timeout countdown with progress bar and retry button (9a4e516), closes #11 #20
1.13.0 (2026-06-01)
- implement TopicFeed UI/UX enhancement (5e49d20)
- add removeClippedSubviews to FlatList components (1dc4ca3)
1.12.0 (2026-06-01)
- warm critical caches during splash screen startup (a7f7b03)
1.11.0 (2026-06-01)
- add build script and regenerate package-lock.json (1a8a4f3)
- replace missing 'npm run build' with 'npx expo export' in CI workflow (faf9ea0)
- strip production debug code (eaf8818)
- Add cache warming and prefetching strategies for critical data (d23ea2a)
- add Core Web Vitals monitoring with regression alerts (0fbfbd1)
- add performance regression testing to CI pipeline (3b13996), closes #31 #32 #34
- add React Profiler integration and performance monitoring (#246) (b44bc9f)
- add zustandBatch utility for batching state updates in React Native (b52b8b2)
- animation state machine hook with FilterSheet integration (72e649a)
- build: inline small image assets under 1KB as data URLs (6956ca0)
- implement accessible focus management hooks and AccessibleModal component (70154eb)
- Implement battery level-aware performance throttling (e99271a)
- implement clipboard performance optimization for large text (#335) (8b9e2da)
- implement cursor-based pagination for courses and add related hooks and tests (8216a32)
- implement incremental builds and CI/CD caching (#241) (d90dff1)
- implement modal portal to isolate modals from parent re-renders (922617c), closes #5 #7 #29
- implement search cancellation in MobileSearch component (0bd5fe4)
- implement smart cache size management with LRU eviction (e79efac)
- lazy load Sentry and socket.io (0453648)
- measure predictive-preload accuracy and document the system (a466a02)
- optimize CSS-in-JS styling with atomic NativeWind styles (#350) (2e6ab6f)
- optimize location data fetching with caching, batching and precision tiers (5a7c149)
- warm critical caches during splash screen startup (c489fff)
- implement keyboard event delegation at root level (d552064)
- ios: optimize iOS build with LLVM O3, LTO, and bitcode (0eac62e)
1.9.0 (2026-05-30)
- resolve tmp package high vulnerability in npm audit (289894b)
- implement user preference for data-saver mode (5fa933d)
- implement efficient diff algorithm for deep object updates (22c2a5a)
- implement native bridge batching for haptics and logging (dc630c5)
1.8.0 (2026-05-30)
1.7.0 (2026-05-30)
- add StreamingProgressBar component for visual progress feedback (85359f4)
- add useStreamingData hook for progressive rendering with automatic deduplication and metrics (95f70ad)
- implement streaming API service for progressive rendering with TTFB optimization (93ae011)
1.6.0 (2026-05-30)
1.5.0 (2026-05-30)
- #347: Replace index-based keys with stable unique identifiers (e2917f8), closes #347
- lint: sort imports alphabetically and structurally to satisfy strict rule matchers (f3215f2)
- build: add custom Babel production optimizer plugin (3079903)
- enhance useMemoryMonitor with heap tracking, automated leak detection, and high-usage alerts (071a2b7), closes hi#usage
- implement font subsetting pipeline and custom font loading (#253) (3d9bf4c)
- implement progressive app startup with visible progress indicator (0fb5159)
- implement react.memo for expensive list item components (ab05a9a)
- timeout countdown with progress bar and retry button (c11e193), closes #11 #20
1.4.0 (2026-05-29)
- add useFormValidation hook with 300ms debounce (#351) (d4f3e64)
- added smart preloading of next likely screens (dad22cb)
- components: error boundary with automatic retry and exponential backoff (8ced93b), closes #376
- devtools: add in-app memory profiling overlay for development (4be8119), closes #378
1.3.0 (2026-05-29)
- harden mobile search and video player tests (af42884)
- regenerate package-lock.json to sync with package.json dependencies (bd919f4)
- repair quiz carousel bundle parse errors (d451ac7)
- resolve CI, dependency audit, and bundle size tracking workflow failures (fcc8a5d)
- #354: Implement performance regression tests for heavy components (81d04af), closes #354 #354
- #392: Implement efficient virtual scroll for infinite lists (4f374ce), closes #392
- #412: Implement batch processing for large data imports/exports (6d5fa4e), closes #412
- #640: add OpenAPI 3.0 compliance validation with CI integration (a319477), closes #640
- cache reusable form values for autofill (b514fd4)
- expand cached form prefilling across auth flows (0aaeedf)
- implement optimized video player with native controls and buffering strategy (c6da89b)
- reduce animation frame rate on low-end devices and battery saver mode (8fb4b40)
- version-based cache invalidation (#260) (d51bd44)
- virtualize LessonCarousel and QuizCarousel with FlatList (7c5be18)
1.2.0 (2026-05-28)
1.1.0 (2026-05-28)
- batch and debounce rapid user input events (typing, scrolling) (bf0098b)
- bookmarks: wire up bookmark saving, sync, and list display (3474656)
- consistent code formatting #171 (48b6451)
- deps: remove unused dependencies identified by depcheck (#218) (4299a8e)
- hooks: add all hooks to barrel export in index.ts (1b3d9ba)
- hooks: wire up course progress saving and server sync (c445c7e)
- implement comprehensive performance audit and optimization report system (#414) (42f8f14)
- memory issues (859fc5d)
- remove direct console.log and add production stripping (5177610)
- remove unused native expo dependencies (close #041) (d25ff21)
- resolve merge conflict in PrimaryButton.tsx (fe206b5)
- secure-storage: verify Keychain/Keystore usage and prevent AsyncStorage fallback (5bd1bfc), closes #140
- updated eslint config (72ba7c8)
- verify and clean up search history implementation (5353f87), closes #154
- wire up notification settings persistence (7c56e0d), closes #156
- #399: implement progressive disclosure UI for complex screens (bb1fd52), closes #399 #399
- add accessibility tests for buttons, images, contrast, and keyboard nav (11c74f0), closes #030
- add API cache strategy with stale-while-revalidate (74a2a4b), closes #142
- add bundle size tracking and alerts to CI (9fcfc1d), closes #145
- add comprehensive test suite and CI workflow (Issue #49) (7db5414)
- add lazy loading / code splitting for screens (#144) (16ce9a8)
- add lint, typecheck, and test steps to CI workflow (43ec325)
- add mobile video player component with controls and picture-in-picture support (91f539f)
- add npm audit and depcheck to CI workflow (41dfc9b)
- add React.lazy code splitting to all heavy routes (fe8d59a), closes #063
- add real-time socket event handlers (3d600cc), closes #86
- add release workflow (Close #124) (be83228)
- add runtime environment variable validation (00453ef)
- analytics: implement event sampling and stabilize secure storage tests (7abb531)
- analytics: implement event tracking across screens and components (0de3fc3)
- api: add 429 rate limit handling with exponential backoff (#141) (e5eee30)
- api: corrected linting issues. (2316402)
- api: implement 403, 429, and 500+ error handling with exponential backoff (9add556)
- assets: restore high-resolution icons and fix placeholder assets (3dc8b1c), closes hi#density hi#res hi#DPI
- auth: add centralized auth service with login, logout, and checkAuthStatus (102e463)
- build mobile test taking interface (acd596a)
- create haptic feedback hook (89c99fa)
- form validation added (f2d214d)
- image-cache: integrate image caching throughout app (0706bc3), closes #143
- implement AdvancedDataGrid with sorting, filtering, editing, and export (76b3e41)
- implement AdvancedDataGrid with sorting, filtering, editing, and export (a78b592)
- implement app content cache versioning with smart updates (#402) (7fc8c92)
- implement automatic crash recovery with session restoration (#411) (06a65c5)
- implement automatic route-size based code splitting heuristics (6b6534b)
- implement centralized logger and replace console statements (960f707)
- implement contextual skeleton loading states for perceived performance (#403) (c2c1edc)
- implement Deep linking and app links (6552258)
- implement dynamic font scaling throughout the app (77685f8)
- implement error boundaries for main screens and layout components (165e87d)
- implement mobile analytics and crash reporting #36 (4ba1ab1)
- Implement mobile app store deployment with EAS (8633760)
- Implement Mobile Course Viewer with swipeable lessons, progress tracking, bookmarks, and notes (5bbae39)
- implement mobile navigation system (c22dc61)
- Implement Mobile Profile Management components (328c46b)
- Implement Mobile Profile Management components (f559854)
- implement offline request queue with retry and pending badge (37cb6cd)
- implement session expiry handling (auto-refresh, logout, warnings) (abbcf59)
- implement splash screen logic to manage application initialization and resource loading (7989211)
- implement Trie-based autocomplete for instant search (#410) (8cfaea1)
- implement useAnalytics hook and integrate automatic screen tracking in root layout (657f792)
- initialize push notifications at app startup (d2adee9)
- initialize TeachLink mobile app with Expo and React Native (3abab2b), closes #1
- logging: Implement centralized structured logging system #176 (1ebe1cf)
- Mobile Performance Optimizations (Image Caching, Virtual Lists, Memory Monitoring) (bd8b740)
- redesign HomeScreen and MobileSyllabus with unified design system (3bebea3), closes #19c3e6
- setup Storybook and add component stories #175 (06e8a76)
- socket: add protobuf-style binary websocket protocol (c07c749)
- socket: enable websocket deflate compression with benchmarking telemetry (2920e22)
- store: add devtools and subscribeWithSelector middleware to Zustand store (6891fb2)
- store: implement selective persistence with versioning (#384) (8c449da)
- swipe: add native-backed swipe actions with gesture-handler animations (f3d748b)
- theme: optimize dark mode switching with CSS variable tokens (dca6303)
- update splash screen icon and theme colors in app configuration (074c0ac)
- wire biometric auth into login/settings and add socket reconnection (f86551a), closes #82 #85
- wire up achievement badges display with persistent storage (61a86e0), closes #155
- wire up react-native-iap for mobile payments (761dea9)
- wire VoiceSearch into search input as compact mic button (63b4857), closes #88