- New src/artwork/ module with iPod Nano 7G cover art support
- codecs: RGB565/RGB555/UYVY/JPEG encode/decode via numpy
- presets: 50+ iPod artwork format definitions
- chunks: ArtworkDB binary parser/writer (MHFD→MHSD→MHLI→MHII→MHNI)
- writer: ithmb file generation + ArtworkDB assembly
- extractor: cover extraction from audio files (APIC/covr/FLAC pictures)
- cache: local JPEG cache for player UI
- iTunes-style playback bar with 60x60 cover art display
- Scan library now caches cover art by artist+album
- iPod Nano7 transfer writes artwork to ArtworkDB + ithmb
- FFmpeg conversion preserves embedded cover art (-map 0:t?)
- One-time reembed_covers.py script in /tmp
- MetadataHandler process_file() fallback to cover_path
- Bug fixes: missing read_existing_artwork import, signed PID in Q format
- Replace QListWidget with QTableWidget in Library tab
- 6 columns: #, Artist, Title, Duration, Genre, Size
- Track numbers displayed without leading zeros (1, 2, 3...)
- Dash shown when track number is unknown
- Sort by track number within album by default
- Clickable column headers for sorting by any field
- Alternating row colors for readability
- Row selection (SelectRows behavior)
- Artist and Title columns stretch to fill space
- Add genre field to TrackInfo dataclass
- Include genre in metadata extract_tags() return value
- Extract genre and track_number during library scan