Added
- Minimal Update Available Modal & Indented Release Notes:
- Formatted release notes into a clean, scannable indented hierarchy under
Release Notes:with category badges ([Added],[Fixed]) and bullet points, displaying concise feature titles without decorative tree glyphs, block prefixes (▌), or multi-line duplicate text walls. - Stripped decorative star icons and redundant prompt sentences, keeping the header focused on a clean, high-contrast version diff (
Installed: vX.Y.Z → Latest: vX.Y.Z). - Separated dialog sections with subtle horizontal card divider lines (
─) and dedicated action button pills ([u] Update Now,[o] Open Release Page,[Esc] Dismiss).
- Formatted release notes into a clean, scannable indented hierarchy under
- Calm, Minimal Self-Updating Progress Dialog:
- Redesigned
draw_updating_modalinto a calm, focused card with top and bottom border clearances, eliminating visual crowding against the title and frame. - Streamlined the in-flight display into a unified active status line with spinner (
⠋ Downloading MovieBox-Tui v.../⠋ Installing MovieBox-Tui v...) and a cross-platform safety warning (⚠ Please wait • do not close terminal/[!] Please wait - do not close terminal).
- Redesigned
Fixed
- Landing Screen ASCII Banner Bleed-Through:
- Modal Frame Corner Backdrops & Transparent Halos:
- Removed block-level background color overrides from
ModalFrame, eliminating dark rectangular halos and square pixel spillage around rounded corner glyphs (╭,╮,╰,╯) across transparent and custom terminal themes.
- Removed block-level background color overrides from
- Update Modal Geometry & Border Clearances:
- Widened the modal from 72 to 76 columns to align with standard dialog geometry and provide a generous 3-column safety margin, preventing text lines and bullet points from crowding the outer borders.
- Search Bar Synthetic Cursor Artifacts:
- Removed artificial block glyphs (
▎/█) drawn directly into search input paragraphs, relying on native terminal cursor positioning without visual cursor duplication or blinking redraw churn.
- Removed artificial block glyphs (
- README Walkthrough Media Attachment:
- Formatted the WebM walkthrough attachment link in
README.mdanddocs/README.mdfor native inline playback.
- Formatted the WebM walkthrough attachment link in
- CI Performance Benchmark Runner Tolerance:
- Bound wall-clock timing assertion tolerances during unoptimized debug test execution in
tests/performance_audit.rs, eliminating flaky runner noise failures across virtualized CI runners while maintaining release regression bounds.
- Bound wall-clock timing assertion tolerances during unoptimized debug test execution in
Performance
- Zero-Allocation Text Truncation Pipeline (
src/tui/text.rs):- Implemented SIMD
is_ascii()fast path inwidthand migratedtruncate_widthtoCow<'a, str>, eliminating 100% of heap allocations on fitting titles and text spans. - Reduced 10,000-operation truncation latency from
5,243.5µsto246.2µs(21.3x faster,524.3ns -> 24.6ns/op) under release compiler profile on Apple Silicon. - Streamlined
truncate_middle_widthto construct output into a single preallocated buffer, eliminating intermediateVec<&str>, reversal, and concatenation allocations.
- Implemented SIMD
- Table-Lookup Hex Encoding (
src/cache.rs):- Replaced 16 dynamic
core::fmt::writedispatches per MD5 digest with direct 16-byte static lookup table indexing inmd5_hex. - Reduced 10,000-digest hashing latency from
4,597.9µsto1,829.8µs(2.51x faster,459.8ns -> 183.0ns/op).
- Replaced 16 dynamic
- Preallocated IPTV M3U Playlist Parser (
src/providers/tv/parser.rs):- Added newline-count capacity preallocation to
M3UParser::parse_m3u, eliminating repeated dynamic vector reallocations during large playlist loads and achieving352.0µsparse duration for 500-channel playlists.
- Added newline-count capacity preallocation to
- Buffered Downloader Chunk Write Aggregation (
src/download.rs):- Wrapped segment file descriptors in
tokio::io::BufWriter::with_capacity(256 * 1024), aggregating incoming 8KB–16KB HTTP response chunks into sequential 256KB disk blocks and eliminating up to 96.8% of unbuffered filesystem write syscalls.
- Wrapped segment file descriptors in
- TUI Draw Loop Allocation Pruning (
src/tui/screens/home.rs,src/tui/screens/details.rs):- Eliminated redundant
display_title.clone()and duplicate Unicode width calculations in search result and landing deck render loops, delivering headless draw latencies of32.3µs/frame(80×24),43.4µs/frame(120×30), and67.3µs/frame(160×40).
- Eliminated redundant