Release v0.4.1 - Code Refactoring This release focuses on major code refactoring and maintainability improvements. - **main.c**: Reduced from 1,258 to 904 lines (-354 lines, 28% reduction) - **render_to_cairo()**: Simplified from 428 to 74 lines (82% reduction) - Created dedicated `render_helpers` module (428 lines) for all rendering logic - `render_karaoke_segments()`: LRCX karaoke rendering with progressive fill - `render_ruby_segments()`: LRC/SRT ruby text (furigana) rendering - `render_word_segments_static()`: LRCX static display without karaoke effect - `render_plain_text()`: Simple text rendering - Helper functions for ruby height calculation and color utilities - `parse_init()`: Common parser initialization (removed 39 lines of duplication) - `free_ruby_segments()` / `free_word_segments()`: Unified memory management - `is_text_only_whitespace()`: Whitespace validation utility - `apply_timestamp_offset()`: Inline timestamp offset calculation - Improved code maintainability and readability - Separated concerns - each rendering mode has dedicated function - Easier to test and debug individual components - Reduced code duplication across parsers - Better module organization - No functionality changes - pure refactoring - All rendering modes tested and verified - Compilation successful on all targets 🤖 Generated with [Claude Code](https://claude.com/claude-code)