Skip to content

v1.1.0

Choose a tag to compare

@HatmanStack HatmanStack released this 06 Feb 05:12
· 155 commits to main since this release

What's New

Error Handling & Resilience

  • ErrorBoundary component for graceful React tree crash recovery
  • Global error handlers for uncaught exceptions and unhandled promise rejections (web + native)
  • Retry utility with exponential backoff for recoverable audio operations
  • Store initialization module for cross-store synchronization

Performance

  • Memoized SpeedSlider, VolumeSlider, TrackProgressBar, TrackListItem with React.memo
  • Wrapped MainScreen handlers in useCallback to stabilize references
  • Optimized FlatList with getItemLayout and memoized keyExtractor
  • Playback store update helper with early-exit when values unchanged
  • Lifted getMasterLoopDuration selector from per-item to TrackList level

Type Safety

  • Converted AudioErrorCode from enum to string union with exhaustive switch via assertNever
  • Centralized QualityLevel type across settings and ffmpeg modules
  • Store state type aliases for cleaner selector signatures
  • Removed any usage in migration tests

Bug Fixes

  • Recording duration capture and UI flash on stop
  • Infinity duration handling in imported tracks
  • Silenced production log noise
  • Lint errors in skeleton and other files

Infrastructure

  • Added CLAUDE.md for Claude Code onboarding
  • Skeleton loader for top controls
  • SEO meta tags and Open Graph static files
  • Restructured project to frontend/ workspace pattern
  • Replaced console.* with logger utility
  • Apache 2.0 license (was MIT)

Documentation

  • Audited all docs against codebase reality
  • Removed stale/theoretical docs (TEST_FAILURES_ANALYSIS, NATIVE_MIXER_LOOP_IMPLEMENTATION, USER_GUIDE)
  • Fixed false claims (keyboard shortcuts, persistence, build commands)
  • Moved CHANGELOG.md to project root

Full Changelog: v1.0.0...v1.1.0