ShowShark Release Notes v2026.04.06

Overview

  • New tabbed navigation makes it faster to switch between Library, Channels, Search, Discover, and Guide.
  • Poster images now appear throughout the app — search results, playlists, channels, history, and more — replacing the old screen caps lists.
  • A new Import Issues view helps you find and fix unmatched media in your library, and movie title parsing has been significantly improved for tricky directory names and edition suffixes.
  • Multi-file movies now support edition selection (Theatrical, Director's Cut, etc.) directly from the detail view.
  • The streaming pipeline has been split into independent decode and encode stages for better reliability, fixing BDMV deadlocks and audio sync issues along the way.
  • Remote Access Invites let you onboard devices outside your local network with a simple invite code.
  • A redesigned "By Feel" mood-based discovery feature uses multi-select preference rounds and SIMD-accelerated similarity for smarter recommendations.
  • On tvOS, the server list has been redesigned with a cinematic hero layout, and grid items now feature a custom green focus glow.
  • Dozens of UI refinements and bug fixes round out the release.

Tabbed Navigation

  • Paged tab navigation replaces the vertically stacked root sections with a swipeable tab strip. Video, Audio, and Photos are consolidated into a single Channels tab. Channel Guide, Discover, and Search each get their own tab for quick access. The tab strip sits at the bottom of the screen on iOS and visionOS, and at the top on macOS
  • Focus-based tab navigation on tvOS adapts the tab strip for Siri Remote interaction with debounced focus changes, proper focus recovery after content rebuilds, and native TabView integration
  • Library tab opens by default on launch, with identity-based tab tracking that preserves your position

Discovery & Browsing

  • Discovery Wizard redesigns the Discovery Hub with step-stack navigation for a more guided recommendation experience
  • "By Feel" mood-based discovery redesigned with multi-select preference rounds that dynamically terminate when enough signal has been gathered. The recommendation engine now uses tally-based vote propagation with SIMD-accelerated similarity scoring, replacing the previous binary-choice approach. Candidate selection is biased toward metadata-rich movies for better propagation reach across the library
  • Recently Added discovery feature lets you browse newly imported content filtered by category
  • Spotify-style genre cards replace the previous pill buttons with a tabbed layout for richer genre browsing
  • Random/alphabetical sort toggle in genre browse view for flexible content exploration

Poster Images & Visual Polish

  • Poster images throughout the app now appear in library search results, playlists, favorites, channels, history, actor browse, genre browse, and discovery recommendations. The previous text-only lists have been replaced with rich thumbnail grids
  • Server-side thumbnail proxy routes all client poster images through the server, improving load times and reducing external network requests from clients
  • Tap-to-expand poster viewer across all detail views lets you view full-screen poster art with a single tap
  • Adaptive shadow on poster images in movie, show, and album detail views for added depth
  • Branded poster placeholder eliminates layout jumps on detail views while images load
  • Alphabetical search results sorted with leading articles ("The", "A", "An") dropped for natural ordering
  • Pill-shaped Recent Searches with an increased history limit from 10 to 25

Library Import & Metadata

  • Import Issues view surfaces unmatched media in the Library tab, letting you see which files failed to match, delete them with full cleanup, or submit them for review. Absolute file paths are shown for easy identification
  • Improved movie title parsing handles dot-separated directory names, extracts IMDB IDs from NFO sidecar files, falls back to grandparent directories and base titles for edition suffixes, matches mid-string years, and tries both "and" and "&" variants when searching
  • Metadata re-match with visual progress shows a progress indicator during library re-scans when backfilling metadata for previously unmatched content
  • Duplicate TMDB match consolidation during re-match prevents the same movie from appearing multiple times
  • Mini-series support for Part-numbered files in show locations (e.g., "Part 1", "Part 2" recognized as episodes)
  • Media naming guide added as a reference for library import best practices
  • Fix same-name TV shows merging into a single record during import when they are actually different series
  • Fix TV show metadata matching when the directory name includes a year suffix
  • Fix franchise-numbered movies matching the wrong TMDB result (e.g., "Rocky 3" no longer matching "Rocky")
  • Fix movie file misassignment caused by year-insensitive metadata matching
  • Database integrity migration to FK CASCADE and triggers for referential integrity

Multi-File Movies

  • Multi-file movie edition selection on the movie detail view lets you choose between different editions (e.g., Theatrical, Director's Cut) when multiple files are associated with a single movie
  • Smart part labels in the multi-file picker automatically detect and display meaningful labels from filenames
  • Bulk management of multi-file movies in the View Issues popup with section grouping and delete support

Streaming Pipeline

  • Split decode/encode pipeline architecture separates the GStreamer transcoding pipeline into independent decode and encode actors, improving modularity and enabling future per-component scaling. BDMV playback has been migrated to the new architecture
  • Fix BDMV playback resolving an actor deadlock during pipeline preroll and DTS-HD MA audio corruption
  • Fix SEGV crash in videoconvertscale caused by an unbounded post-decode queue
  • Fix audio/video sync regression introduced during the pipeline split, with real-time pacing added to the decode distribution loop

Remote Access

  • Remote Access Invite system for onboarding devices that are not on the local network. Create invite codes on the server, optionally pre-assign device aliases, and have remote clients join via the invite flow without needing local discovery
  • Remote Access toggle in Settings > Options for easily enabling or disabling remote connectivity
  • Fix tailnet reconnection and ping timeout issues for remote invite connections
  • Increased firewall diagnostic frequency from 1 hour to 1 minute for faster troubleshooting

tvOS

  • Cinematic server list redesigned with a hero image and shelf layout for a more immersive tvOS experience
  • Redesigned server management with compact grid items and gradient cards
  • Custom focus glow for poster images, actor grid items, and cast member cards using a green highlight effect
  • Smaller grid item labels reduced from title3 to callout font for a cleaner grid appearance
  • Disconnect confirmation alert prevents accidentally exiting a server connection
  • Redesigned Add to Playlist popup with improved focus behavior and spacing
  • Fix Downloads navigation showing a warning triangle instead of the downloads view
  • Fix remote connect failing with a mkdir permission error on tvOS
  • Various focus navigation fixes including tab focus syncing, focus recovery after content rebuilds, and preventing the Channel Guide from stealing focus on tab appearance

Client UI

  • Redesigned DownloadsView with Form layout and corrected show title grouping
  • Redesigned MediaDetailView with Form layout matching the video playback view for visual consistency
  • Screencap thumbnail added to episode detail view for a quick visual preview
  • Consistent toolbar button ordering across movie detail, episode detail, and video playback views so transitions between screens feel natural
  • Favorites moved into Playlists tab with the root toolbar button removed for a cleaner top-level layout
  • Settings tab added to the client tab bar with cache clearing functionality
  • Top-aligned grid items so mixed-height media rows display consistently
  • Green glow pulse animation provides tactile feedback when tapping grid items
  • Extended subtitle delay range from ±3 seconds to ±7 seconds for finer subtitle timing control
  • Version string links to release notes in the About view
  • Prevent accidental server deletion on iOS and macOS with a confirmation step
  • Disconnect option added to the server list alongside Edit and Delete
  • Improved download status popup with better layout and UX

Server

  • Per-client watch history stats tracked and displayed for each connected device
  • Admin role enforcement for library-mutating operations, preventing non-admin devices from modifying content
  • Network interfaces section added to the server StatusView showing active network adapters
  • Client app identification with app identifier and version included in login requests for better diagnostics
  • Device sorting within each recency section by most recent first
  • Channel storage migrated to SQLite from UserDefaults with FK CASCADE for improved reliability
  • Metadata cache clearing when deleting movies or shows to prevent stale data

Bug Fixes

  • Fix SIGPIPE crashes on both client and server caused by broken pipe signals, resolved by ignoring the signal at startup and preventing Sentry from overriding the signal handler
  • Fix channel playback incorrectly showing a resume prompt when replaying a channel
  • Fix album auto-advance stopping after track transitions in music playback
  • Fix download audio failure and favorites episode navigation
  • Fix thumbnail sizing and centering for non-16:9 aspect ratios
  • Fix index-out-of-range crash in MediaGridView on reconnection
  • Fix encode pipeline video negotiation failure and parallelize bookmark loading
  • Fix Swift 6.2 data race errors in GStreamer pull loops
  • Fix missing back button on views pushed from the discovery wizard (movie detail, Similar Titles)