Viboplr v0.9.13 April 14, 2026

Features

  • thread onEntityContextMenu through detail views to App.tsx
  • add onEntityContextMenu to RendererProps and EntityListRenderer
  • make IDs optional in ContextMenuTarget and gate library-only actions
  • add itemKind to EntityListData for entity list context menus
  • add blurred vignette hero background to album, tag, and track detail pages
  • add blurred vignette hero background to artist detail page
  • Ctrl+A / Cmd+A selects all tracks in track list
  • use custom CSS tooltip on sync toggle button
  • add CSS-only tooltip styles via data-tooltip attribute
  • only auto-navigate to track details on automatic track changes
  • track source of track changes in usePlayback
  • drag-and-drop tab reordering in Track Detail View

Bug Fixes

  • add consistent trackId guards and remove unnecessary type assertions
  • track popularity matching for non-Latin titles (Greek, Cyrillic, etc.)
  • refresh track list after download completes
  • eliminate double track fetch when navigating to All Tracks
  • reduce top search bar width by 20%
  • register open_profile_folder in release build, show paths in debug settings
  • reassign albums to new artist when bulk editing artist name
  • clean up orphaned artists/albums/tags in recompute_counts
  • let information section content fill available space and scroll
  • widen duration column to fit header + sort icon, default numeric sorts to descending

Performance

  • make get_tracks async and memoize sortedTracks

Refactoring

  • extract shared context menu handlers to useContextMenuActions
Viboplr v0.9.12 April 13, 2026

Features

  • replace UpgradeTrackModal with unified TidalDownloadModal
  • universal track actions — plugin context menu items on all surfaces
  • add consistency enforcement skill

Bug Fixes

  • rename all YouTube actions to "Find in YouTube" for consistency
  • use modal instead of status bar for YouTube save feedback
  • resolve .catch() convention violations across frontend

Refactoring

  • unify Find-in-YouTube behind shared watchOnYoutube function
  • remove TrackActions dropdown from TrackDetailView

Documentation

  • update CONVENTIONS.md to reflect unified watchOnYoutube function
  • add information sections convention for detail page content
  • add consistency skill trigger to CLAUDE.md
  • add CONVENTIONS.md with canonical actions and behavioral rules
Viboplr v0.9.11 April 13, 2026

Features

  • show YouTube play button only when URL exists
  • move search providers into context menu submenu
  • unify image menus, add paste/search, fix album track play buttons
  • sort empty section tabs to the end
  • move tags to Details tab and add section data availability dots
  • split Genius song explanation into Song Bio and Song Meaning tabs
  • add tooltip descriptions to information section tabs
  • add show/hide toggle for Spotify browse window, hidden by default
  • rewrite Spotify plugin to use internal browse window
  • integrate screenshot generation into bump release script
  • add skinned detail view screenshots to features page
  • use real album art from iTunes CDN, collapse sidebar/queue
  • add artist and album art to screenshot mock
  • add generated screenshots to docs site
  • replace screenshot placeholders with actual images in docs
  • add screenshots npm script with WebP conversion
  • add Playwright screenshot test cases for 10 app views
  • add rich screenshot mock data for Playwright screenshots
  • spotify: add sp_dc cookie auth and 3-tier personalized feed fallback

Bug Fixes

  • normalize Genius annotation fragments before lyrics matching
  • route track_info data through InformationSections to fix race condition
  • allow disabling built-in plugins
  • reset active tab to first when entity changes
  • clean up Genius song explanation to show only lyrics & annotations
  • add ISSUES.md to .gitignore to prevent tracking
  • grab playlist cover images from detail pages during scrape
  • only auto-enable built-in plugins on first launch
  • fix screenshot mock store format and test selectors

Refactoring

  • unify detail view layout and fix Last.fm race condition

Documentation

  • add screenshot automation implementation plan
  • add screenshot automation design spec

Chores

  • regenerate screenshots with artwork
Viboplr v0.9.10 April 11, 2026

Features

  • spotify: add personalized home feed and full playlist pagination
  • improve YouTube URL state in Track Details actions menu
  • add Delete Track option to queue context menu

Documentation

  • add Spotify personalized feed design spec
Viboplr v0.9.9 April 11, 2026

Features

  • add consistent love/hate buttons and YouTube actions to detail views
  • genius: show full lyrics with inline annotations in Song Explanation

Bug Fixes

  • windows: use tauri-plugin-opener for folder reveal and open commands
  • info-sections: delay empty state transition to show fetch progress

Refactoring

  • move image menus to artwork, inline web search, remove Retrieve Info
Viboplr v0.9.8 April 11, 2026

Features

  • scanner: extract tags for video files from folders and filename keywords
  • info-sections: add tabOrder prop for configurable tab ordering
  • info-sections: show fetch progress with provider names and URLs
  • info-sections: show Source attribution for all plugin sections
  • info-sections: add refresh button, dimmed empty tabs, and empty state message
  • info-types: return empty state instead of hiding sections with no data
  • allmusic: implement artist bio scraping plugin
  • allmusic: add plugin manifest for artist bio fallback
  • add lyrics-search meta-search plugin with configurable domains
  • add Genius and Lyrics.ovh as lyrics fallback providers

Bug Fixes

  • genius: add _meta to lyrics response for View on link
  • update tests and CSS for hidden-to-empty rename
  • plugins: remove version-change cache wipeout that deleted shared type data
  • allmusic: use full artist URL for biography fetch

Refactoring

  • waveform: key cache on file path instead of track ID
  • info-types: replace hidden state with empty for visible empty sections

Documentation

  • add implementation plan for info sections UX improvements
  • address spec review feedback
  • add info sections UX improvements spec
  • add AllMusic plugin implementation plan
  • address spec review recommendations
  • add AllMusic plugin design spec
Viboplr v0.9.7 April 10, 2026

Bug Fixes

  • disable DMG AppleScript on CI to prevent flaky bundle failures

Chores

  • gitignore .claude/worktrees and remove accidentally committed worktrees
Viboplr v0.9.6 April 10, 2026

Features

  • add open profile folder button to debug settings
  • default to clean UI with sidebar, queue, and sort bar collapsed
  • add drag-and-drop guidelines and implementation pattern for Tauri's WKWebView
  • update breadcrumb and sidebar for settings view
  • wire settings view into main content area
  • convert SettingsPanel from modal to inline view with horizontal tabs
  • add 'settings' to View union type
  • add Provider Priority section to Settings Providers tab
  • add frontend image resolver hook
  • add JS image provider plugins (deezer, itunes, audiodb, musicbrainz, tidal)
  • add imageProviders API namespace for plugin image fetch handlers
  • replace hardcoded image provider chains with Rust-JS bridge mechanism
  • parse imageProviders from plugin manifests and sync to backend
  • add ImageResolveRegistry and provider management Tauri commands
  • add image_providers table and DB functions for configurable provider priority
  • add play/YouTube buttons to ranked list items (top tracks, similar tracks)
  • thread positionSecs context to renderers, handle save-lyrics action
  • upgrade LyricsRenderer with synced lyrics, editing, and context support
  • add lrclib JS plugin for lyrics via information types
  • rewrite useInformationTypes for provider fallback and name-based entity keys
  • update information type frontend types for integer PK and provider chains
  • refactor information_types to integer PK with FK from information_values
  • call info_sync_types instead of info_rebuild_types
  • replace destructive info_rebuild_types with idempotent info_sync_types
  • add Genius plugin with song explanation, artist/album descriptions
  • add AnnotationsRenderer for Genius song explanations
  • add annotations displayKind and AnnotationsData type
  • double artist avatar (160px) and album art (240px) sizes
  • add customTabs support to InformationSections, move Albums into tabs
  • move Albums section above InformationSections in artist detail
  • album detail uses dual-placement InformationSections layout
  • artist detail uses dual-placement InformationSections layout
  • add placement prop with tab rendering to InformationSections
  • add tab bar and right-placement styles for InformationSections
  • add InfoPlacement type and getInfoPlacement helper
  • integrate remaining Last.fm services into plugin system
  • move Last.fm client from Rust backend to frontend plugin
  • integrate InformationSections into artist detail view, migrate artist_bio
  • add lastfm-info internal plugin with artist_bio info type
  • add InformationSections generic component
  • add 10 display kind renderers for information type system
  • add useInformationTypes hook with fetch lifecycle and caching
  • extend usePlugins with informationTypes API namespace
  • add TypeScript types for information type system
  • add Tauri IPC commands for information type storage
  • db: add information types plugin system tables and CRUD
  • Delete/Backspace key deletes selected tracks from track list
  • debug builds auto-use dev-{worktree_name} profile

Bug Fixes

  • update @tauri-apps/plugin-dialog to version 2.7.0
  • resolve Dependabot security vulnerabilities
  • replace HTML5 DnD with manual mouse-event drag for provider pills
  • add pluginStates to fetchConfig deps and remove dead code
  • use plugin manifest names instead of hardcoded display name map
  • correct drag-and-drop logic for album embedded pill
  • add User-Agent header to plugin_fetch for MusicBrainz API compliance
  • remove double URL encoding in musicbrainz album search query
  • narrow entity type and add try/catch in invokeImageFetch
  • genius plugin registers as fallback provider for artist_bio and album_wiki
  • update .gitignore to exclude .claude directory
  • tidal download more robust error handling and dialog fallback
  • tidal download prompts for folder when no local collection exists
  • tidal download resolves first local collection as destination
  • tidal plugin download auto-resolves collection when not provided
  • tidal download respects user's preferred format from settings
  • make tidal_save_track format optional, default to flac
  • tidal download from plugin uses correct arg name tidalTrackId
  • clicking plugin sidebar button (Tidal) clears track detail and returns to view
  • ranked list play button searches DB for track, falls back to YouTube
  • play button on ranked list items — use correct get_track_by_id command
  • YouTube button uses search_youtube for direct video links instead of search page
  • move play/YouTube buttons before title and increase size in ranked lists
  • detail view layout — header fills width, right-placement matches height
  • queue locate track button opens track detail view
  • sync button always navigates to track detail view
  • exclude track_tags from TrackDetailView InformationSections
  • move lyrics to below-placement instead of right
  • let track header size naturally so right-placement sits beside it
  • restructure track detail layout to match artist/album pattern
  • only below-placement InformationSections spans all columns
  • double track detail art size from 120px to 240px
  • make InformationSections span all columns in track detail
  • exclude plugin similar_tracks from TrackDetailView
  • add InformationSections to TrackDetailView for plugin-based content
  • dock right-placement sections to the right edge
  • reduce right-placement section width and height
  • cap right-placement section height at 300px with scroll
  • below-placement tabs use full height and full width
  • use tabs for any placement with 2+ sections, not just right
  • match information sections styling to original About section
  • use return-based export in lastfm-info plugin instead of module.exports
  • auto-enable built-in plugins that provide informationTypes
  • address review issues in information type system
  • rename "Locate File" / "Show in Folder" to "Open Containing Folder"
  • prevent long titles from overflowing modal dialogs
  • path search uses exact substring matching instead of FTS tokenization

Refactoring

  • remove Rust image provider implementations replaced by JS plugin bridge
  • change Similar Tracks from entity_list to ranked_list display kind
  • remove lyrics search toggle and delete LyricsPanel component
  • delete unused NowPlayingView component
  • remove lyrics state and LyricsPanel from TrackDetailView
  • remove lyrics table, commands, and lyric_provider module
  • drop unused lastfm_cache table and methods
  • useArtistInfo discovers ranked_list types dynamically instead of hardcoding
  • move track details (format, path, plays) into InformationSections tab
  • move Lyrics and Play History into InformationSections tabs
  • remove hardcoded Similar Tracks, add YouTube links to plugin
  • remove genius.rs backend module, now handled by plugin
  • remove hardcoded Genius integration from TrackDetailView
  • unify InformationSections into single tab-based path with collapse
  • use compact popularity bar style in RankedListRenderer
  • move "View on Provider" link to footer below content
  • render Top Songs and Similar Artists as InformationSections

Documentation

  • update PLUGIN-SYSTEM.md and plugin-system skill for image provider refactor
  • add lyrics plugin migration implementation plan
  • add Genius plugin implementation plan
  • address spec review feedback for Genius plugin
  • add Genius plugin design spec
  • add information type plugin system implementation plan
  • add html and image_gallery renderers to info type spec

Tests

  • add info_sync_types tests for metadata update and reactivation
  • add unit tests for information type cache decision logic

Chores

  • add release skill for version bumping workflow
  • update dependencies

Other

  • Refactor: Update .gitignore to remove unnecessary entries; add PLUGIN-SYSTEM.md for comprehensive plugin architecture documentation; introduce ui-guidelines.md for UI design standards and button system specifications.
Viboplr v0.9.5 April 6, 2026

Features

  • resizable playlist panel with persistent width and edge collapse button
  • scroll wheel changes volume in mini player
  • per-view default column configs for detail views
  • index full relative path instead of filename in FTS search
  • expose relative_path field and show raw DB path in track list
  • YouTube integration in track detail view
  • collapsible details section with persistent show more/less toggle
  • show full URI path in track details
  • show full path in track details with locate and copy buttons
  • revamp track detail tags with community fallback and edit button
  • refactor: extract LikedTracksView component from App.tsx

Bug Fixes

  • consistent dislike button styling and seek bar border
  • dislike button style matches like button in now-playing bar
  • auto-continue excludes tracks already in the queue
  • smaller vertically stacked close/restore buttons in mini player
  • remove focus outline on mini player buttons
  • reduce volume arrow key step from 10% to 5%
  • reduce popularity column width by 25%
  • strip parenthesized content when matching track popularity
  • group section titles with content in detail views
  • restore full metadata for subsonic tracks on app restart
  • respect hideTitle prop in lyrics panel main view
  • consistent font size and inline labels for track detail sections
  • update Issues.md with additional details and clarify existing points
  • merge assigned and community tags into single line with add/remove
  • central search footer only visible with results and pinned at bottom

Refactoring

  • unify detail view sections with generic section-narrow/section-wide classes
  • store relative paths in DB, reconstruct full URIs in SQL
  • remove TrackPropertiesModal and move stats to track detail
  • extract AllTracksView component from App.tsx
  • extract TagListView component from App.tsx
  • extract AlbumDetailHeader component from App.tsx
  • extract AlbumListView component from App.tsx
  • extract ArtistDetailContent component from App.tsx
  • extract ArtistListView component from App.tsx
  • extract CaptionBar component from App.tsx
  • extract useContextMenuActions hook from App.tsx
  • extract useArtistInfo hook from App.tsx
  • extract useCollectionActions hook from App.tsx
  • extract useLikeActions hook from App.tsx
  • extract useDownloads hook from App.tsx
  • extract useLastfm hook from App.tsx
  • move stripAccents and formatCount to utils.ts

Documentation

  • remove FTS indexing from information type system
  • address spec review findings for information type system
  • add information type plugin system design spec

Chores

  • add Issues.md to .gitignore
  • clean up minor issues from refactoring review

Other

  • Removing src/components/Issues.md from the project as it is no longer needed. This file contained documentation for issues related to the project, but we have decided to remove it to streamline our documentation and focus on more relevant content. The information in Issues.md has been either integrated into other documentation or deemed unnecessary for our current needs.
  • Issues
Viboplr v0.9.4 April 5, 2026

Features

  • replace unicode triangle with SVG chevron for section toggles
  • collapsible detail view sections with inline clickable headers
  • apply glass buttons and SVG icons to mini player
  • show search instructions overlay on central search focus
  • apply glass button system app-wide and add UI guidelines
  • move sync-with-playback button from breadcrumb to now playing bar
  • make ViboPLR logo draggable for window movement
  • glass/frosted button redesign for now playing bar controls
  • now playing bar — art placeholder, aligned controls, subsonic path
  • group play history by year and normalize font sizes
  • improve TrackDetailView — lyrics actions, genius cleanup, local-only folder
  • redesign TrackDetailView sections — reorder, fix lyrics, masonry layout

Bug Fixes

  • wrap album review title and content together in detail view
  • hide sidebar collapse button in mini player mode
  • move mini player CSS to NowPlayingBar.css to fix cascade order
  • show modal when artist/album navigation fails
  • clear track detail view when committing central search
  • correct next track SVG icon path in now playing bar
  • align lyrics section title with other sections

Refactoring

  • split monolithic App.css into component-level CSS files

Documentation

  • add now playing bar glass controls redesign spec
Viboplr v0.9.3 April 5, 2026

Features

  • add Genius song explanation section to Track Detail View
  • Top Songs buttons — play single track only, use icon-only style
  • add inline Play/YouTube buttons to Top Songs, remove from context menu

Bug Fixes

  • use YouTube logo icon for Top Songs YouTube button

Other

  • Spec Update
Viboplr v0.9.2 April 5, 2026

Features

  • add lyrics include/exclude toggle for track search
  • make lyrics section responsive — sits right of header when space allows
  • redesign TrackDetailView with hero header, options menu, and quality info
  • remove NowPlayingView and add loading/empty states for Last.fm info
  • show only video in main area when viewing a video track's details
  • add sync-with-playback toggle for detail views
  • replace breadcrumb with view titles and deselect sidebar on detail views
  • add inline Track Detail View with lyrics, tags, play history, and similar tracks
  • multi-entity central search returning artists, albums, and tracks
  • add artist top songs, section toggles, web search rename, and layout improvements
  • responsive artist detail layout with horizontal album scroll
  • responsive album detail layout and sortable popularity column
  • enhance Now Playing view with album stats, popularity bars, unmatched tracks, and menu restructure
  • add play and context menu buttons to NP album/artist cards, fix lyrics overflow
  • consolidate similar tracks into inline links with library lookup

Bug Fixes

  • ensure highlighted search result scrolls into view
  • move like/dislike buttons between art and titles in now playing bar
  • use server URL in subsonic:// scheme and fix stale closure in auto-continue
Viboplr v0.9.1 April 4, 2026

Bug Fixes

  • use window.setTimeout to resolve Node/browser type conflict in LyricsPanel
Viboplr v0.9.0 April 4, 2026

Features

  • rename Track._location to url and add Playwright E2E tests
  • lyrics: integrate LyricsPanel into NowPlayingView with event listeners and auto-fetch
  • lyrics: add check_lyrics_match for search result lyrics badges
  • lyrics: add CSS styles for lyrics panel
  • lyrics: add LyricsPanel component with synced/plain display and edit mode
  • lyrics: add backend commands, fetch worker, and lyric provider chain
  • lyrics: add LyricProvider trait, fallback chain, and LRCLIB provider
  • lyrics: add lyrics CRUD, LRC timestamp stripping, and FTS update functions
  • lyrics: add lyrics table, model, FTS column, and migration v12
  • add waveform grow-in animation with stagger on peak data load
  • add album art glow and track info slide animation
  • add animated equalizer bars for playing track indicator
  • add sliding sidebar active indicator
  • smooth sort bar collapse/expand animation
  • add heart bounce animation on like/dislike toggle
  • add animation keyframes, modal and context menu scale-in
  • add playback error modal with auto-skip to next track
  • add Last.fm album track popularity column
  • add force refresh for artist/album images and info
  • clickable artist/album in list view and album detail placeholders
  • show detailed failure list in delete error modal

Bug Fixes

  • waveform grow-in triggers per-track, sidebar indicator default height

Documentation

  • add animations implementation plan
  • address spec review feedback for animation design
  • add animation design spec
  • add lyrics support implementation plan
  • address spec review feedback for lyrics design
  • add lyrics support design spec

Chores

  • update viboplr version to 0.8.10

Other

  • Spec Update
Viboplr v0.8.10 April 3, 2026

Features

  • enhance video container styling in now playing mode
  • persist per-view sort, filter, and liked-first preferences
  • add delete feedback — error modal on failure, status bar on success
  • add play button to album cards with hover effect
Viboplr v0.8.9 April 2, 2026

Bug Fixes

  • restore window dragging in caption bar after search box resize

Refactoring

  • decouple locate-track from library IDs, match by name instead
Viboplr v0.8.8 April 2, 2026

Maintenance release.

Viboplr v0.8.7 April 2, 2026

Maintenance release.

Viboplr v0.8.6 April 1, 2026

Features

  • add plugin gallery and user plugin management

Bug Fixes

  • gate macOS-only RunEvent variants with cfg(target_os = "macos")
Viboplr v0.8.5 April 1, 2026

Bug Fixes

  • use array notation for plugin resource bundling to preserve directory structure
Viboplr v0.8.4 April 1, 2026

Features

  • add Spotify plugin with OAuth PKCE auth and library browsing
  • migrate TIDAL features to plugin context menu system
  • replace MusicGateAway with native TIDAL backend + JS plugin

Refactoring

  • route "Search on TIDAL" through plugin and remove dead AddTidalModal
Viboplr v0.8.3 April 1, 2026

Bug Fixes

  • replace hardcoded colors and font sizes with CSS variables
  • define undefined CSS variables and add bg-tertiary/text-tertiary design tokens
Viboplr v0.8.2 April 1, 2026

Bug Fixes

  • add app bundle target to restore macOS updater support
Viboplr v0.8.1 April 1, 2026

Features

  • add auto-import settings UI in Last.fm settings panel
  • frontend auto-import state, event handling, and store integration
  • register auto-import commands and add graceful shutdown
  • make manual import incremental with from parameter and source/timestamp events
  • add auto-import commands and background thread
  • add from parameter to get_recent_tracks for incremental imports

Bug Fixes

  • tiles view layout and settings modal dismiss behavior
  • review fixes - stop_auto_import clears importing flag, use ToggleSwitch component
  • add missing AppState fields to test helper
  • disable single-instance plugin in dev builds
Viboplr v0.8.0 March 31, 2026

Features

  • add bulk_update_tracks Tauri command
  • add frontend bulk track editing UI
  • add bulk_update_tracks method to Database
  • add year column to tracks table with migration 11
  • add tag_writer module for updating local audio file metadata
  • redesign album detail view and add icons + providers to option menus
  • redesign artist detail view with improved header and responsive bio layout
  • add file-based logging system with Settings toggle
  • update logo to Vinyl V design and add open source branding

Bug Fixes

  • prevent mutex poison on tag insert failure and optimize file writing loop
  • restore now-playing from location+metadata instead of DB IDs
  • default plugins to disabled and fix plugin toggle UI
Viboplr v0.7.2 March 30, 2026

Maintenance release.

Viboplr v0.7.1 March 30, 2026

Maintenance release.

Viboplr v0.7.0 March 30, 2026

Features

  • add plugin system with native/user plugin support
  • split TIDAL search results into Tracks/Albums/Artists tabs
  • split history view into tabs and add arrow key navigation
  • make lists scroll independently and add arrow key navigation from search
  • make logo clickable to open the Viboplr website

Bug Fixes

  • restore current track on app restart and play single track on double-click
  • improve play/pause button sizing and skin compatibility
  • use skin-aware CSS variables for view search bar

Refactoring

  • move About section into General settings tab
Viboplr v0.6.0 March 29, 2026

Features

  • add play, TIDAL search, and YouTube actions to similar tracks
  • expand Last.fm integration with caching, async fetching, and UI improvements
  • skins: add Silver, Ocean Blue, Viboplr, and Sunset built-in skins
  • skins: add Skins tab to Settings with skin cards, import, and gallery UI
  • skins: implement useSkins hook for skin management and CSS injection
  • skins: add Rust skin file I/O and gallery HTTP commands
  • skins: add skin validation, CSS generation, and sanitization utilities
  • skins: add TypeScript type definitions for skin system
  • consolidate font sizes into 7-level CSS variable type scale

Bug Fixes

  • replace hardcoded colors with CSS variables for skin compatibility
  • improve caption bar — space logo from traffic lights, center search box, rotate placeholder text
  • add ellipsis truncation to track title column in table view
  • align track title text with other columns in table view
  • skins: add spinner to gallery loading state
  • skins: remove unused SkinJson import
  • skins: add missing SkinInfo and gallery type definitions

Refactoring

  • decouple similar track actions from TrackPropertiesModal
  • css: tokenize semantic colors and add overlay-base variable for skin support

Documentation

  • update CLAUDE.md and README.md for skins, Last.fm metadata, and track properties

Other

  • Spec Update
Viboplr v0.3.23 March 29, 2026

Features

  • improve download modal with track list, format picker, custom folder support
  • implement clamped position for context menu to prevent overflow
  • replace built-in TidalClient with MusicGateAway integration
  • URI-based M3U save/load and show_in_folder for queue tracks
  • resolve playback source from location URI instead of DB lookup
  • persist and restore queue as QueueEntry[] with location URIs
  • add QueueEntry utilities for URI-based queue persistence
  • add resolve_subsonic_location and get_tracks_by_paths commands
  • show per-collection statistics in collection cards
  • replace --data-dir with Chrome-like profile system

Bug Fixes

  • keep TidalView mounted to preserve state across view switches

Other

  • Reset scroll position when view search query changes
  • Hide window during mini mode transition to avoid UI flash
  • Split mini player drag handling by platform
  • Fix mini player double-click to restore on Windows
Viboplr v0.3.22 March 28, 2026

Bug Fixes

  • update package version to 0.3.21 and bump picomatch to 4.0.4
  • use ✖ (U+2716) as red close icon in mini player
  • mini player layout broken by queue/sidebar grid overrides
  • disable window resizing in mini player mode
  • update docs download URLs to v0.3.21 and fix bump script URL replacement
Viboplr v0.3.21 March 28, 2026

Maintenance release.

Viboplr v0.3.21 March 28, 2026

Features

  • enable devtools in production builds via F12/Ctrl+Shift+I
  • enhance bump.mjs into full release orchestrator

Bug Fixes

  • mini player layout broken on Windows due to stale viewport units

Documentation

  • update release history page
Viboplr v0.3.20 March 27, 2026

Features

  • add Last.fm history import with dedicated settings tab
  • add TIDAL upgrade download progress, save-as-copy option, and async commands
  • move view mode toggle and sort controls to breadcrumb row
  • add size sorting option in track query

Bug Fixes

  • preserve file extension in download temp files so tags are written correctly
  • adjust mini window size and enhance now playing button styling

Documentation

  • update release history page
Viboplr v0.3.19 March 27, 2026

Features

  • add track and artist rank display in now playing bar
  • add ViboPLR logo to caption bar and reduce caption bar height
  • add server-side track search and update history models with ranking
  • make playlist panel always visible in collapsed or expanded state
  • server-side artist search in history with global ranking
  • name-based artist image lookup for history view
  • add album ID to history entries and update HistoryView for album art display

Bug Fixes

  • update release dates in history.html for accuracy

Documentation

  • update release history page

Chores

  • remove pages deployment trigger from release workflow

Other

  • Update cloudflare token
Viboplr v0.3.18 March 27, 2026

Features

  • tokenized AND search for artists view
  • auto-generate composite tag images from top artist photos
  • double-click mini player to restore main window
  • redesign mini player with album art, two-line layout, and grouped right controls
  • two-line layout for track list view with larger fonts
  • enrich search dropdown with album art, two-line rows, and enqueue support
  • wire central search dropdown and per-view search bars in App
  • add CentralSearchDropdown component with overlay styles
  • add ViewSearchBar component for per-view search
  • add useCentralSearch hook for caption bar dropdown
  • add useViewSearchState hook for per-view search state
  • restructure grid layout, add rounded corners, restyle caption bar
  • add caption bar and traffic light styles, remove old sidebar brand styles
  • restructure caption bar with brand, sidebar toggle, and dual WindowControls
  • locate track navigates to album view when available
  • remove sidebar brand header, move branding to caption bar
  • add macOS traffic lights and mini player to WindowControls
  • disable native window decorations for custom caption bar

Bug Fixes

  • center hover circles on mini player buttons and add hover to play/pause
  • prevent mini player text from pushing controls out of view
  • fetch TIDAL instance list once per day, refresh on failure
  • absolutely center playback controls in now-playing bar
  • center now-playing controls independently of track info width
  • stop view search icon from floating over sidebar
  • add / shortcut for central search, avoid unnecessary IPC on client-side views
  • mini player layout — fill viewport height and center controls
  • prevent mini player window from going off-screen
  • redesign caption bar layout and enlarge search box
  • remove all Tauri event listeners from WindowControls to fix perf regression
  • use module-level singleton for Tauri window event listeners
  • properly cleanup Tauri event listeners, add global-shortcut perms
  • sidebar collapse on edge, rounded corners on html, queue visibility
  • move sidebar toggle to sidebar, fix WindowControls perf
  • address code review findings
  • improve waveform analysis and time label readability
  • add missing window permissions and error handling for mini player toggle
  • deduplicate changelog entries and trigger pages deploy after release

Refactoring

  • wrap artist, album, and tag info in a container for improved layout
  • remove shared searchQuery from useLibrary, accept per-view query param
  • change NavState to store per-view search queries map
  • remove searchQuery from persisted store defaults
  • move caption bar out of main, add mini player button and spacer
  • remove mini player from WindowControls component

Documentation

  • update release history page

Other

  • Merge: center now-playing controls independently of track info width
  • Spec Update
  • Cleanup
Viboplr v0.3.17 March 25, 2026

Features

  • scroll to playing track when playlist is expanded
  • move mini player button to caption bar
  • dynamic reconnection for ghost history entries
  • add labeled Sort/Filter rows with improved sort bar UX
  • rename "Go to Artist" to "Locate Track" in playlist context menu
  • store entity images by canonical name instead of database ID
  • add waveform analysis and view inside the seek bar

Bug Fixes

  • remove bundled Inter font, use system font stack
  • include entity name in image error notifications

Documentation

  • update release history page

Other

  • Spec Update
Viboplr v0.3.16 March 25, 2026

Features

  • upgrade track quality via TIDAL from context menu
  • add dislike field for tracks with tri-state liked system
  • add per-track download buttons in TIDAL search and album views
  • add TIDAL as priority image provider for artists and albums
  • detect actual TIDAL stream format for correct file extension
  • enlarge seek bar with embedded time display
  • playlist UI updates

Bug Fixes

  • handle non-Latin tag encoding for Greek, Cyrillic, etc.
  • show TIDAL breadcrumb instead of All Tracks in TIDAL view
  • add custom window controls for Windows/Linux caption bar
  • add shell: bash to changelog step in release workflow

Documentation

  • update release history page

Other

  • Spec Update
Viboplr v0.3.15 March 25, 2026

Features

  • add clear button to search bar
  • collapsible sort/filter bar in main list views
  • auto-generate release changelogs from conventional commits
  • add release history page to website with auto-generation
  • add custom caption bar with overlay title bar
  • improve settings UI with sidebar nav layout and modern controls
  • improve image download notifications with entity name and source
  • add "Go to Artist" option in playlist context menu
  • queue: wire collapsable playlist state and persistence
  • queue: add collapsed strip rendering and collapse button
  • queue: add CSS grid rules and collapsed strip styles
  • queue: add queueCollapsed store default
  • add global media key shortcuts

Bug Fixes

  • bundle Inter font for consistent cross-platform rendering
  • filename tag extractor treats numeric prefix as track number, not artist
  • backfill release changelogs and fix history page rendering
  • preserve volume when starting a new track
  • do not preserve search text across startups
  • repair status bar layout and positioning
  • restore mini player by adjusting min-height and window constraints

Documentation

  • add collapsable playlist implementation plan
  • add collapsable playlist design spec
Viboplr v0.3.14 March 24, 2026

Features

  • auto-discover TIDAL instances with failover and destination picker
  • download: add download format setting
  • download: add download status indicator with progress popover
  • download: add 'Download Album' button to TIDAL view
  • download: add 'Download to Library' context menu option
  • download: add download commands and worker thread
  • download: add download pipeline with tag writing and cover art
  • download: add DownloadManager core data structures
  • add fullscreen video controls overlay
  • add edit and remove functionality for collections
  • add decoupled playback history system
  • sort tracks by added and modified dates

Bug Fixes

  • improve breadcrumb font rendering on Windows
  • guard smooth scroll handler against non-selector hrefs
  • remove duplicate file path from Other tab in Track Properties
  • grey out history entries for disabled collections
  • extract duration from video files during scanning
  • dynamically set download URLs from GitHub release assets

Performance

  • cache library IDs on history tables, drop legacy play_history

Refactoring

  • reuse main search bar for TIDAL view
  • convert TIDAL from collection to settings-based integration
  • switch from soft delete to hard delete for tracks

Documentation

  • add download manager implementation plan
  • address spec review feedback for download manager
  • add download manager design spec
Viboplr v0.3.13 March 23, 2026

Features

  • move video player below content area
  • add visual distinction between sort and filter controls
  • add delete track option to context menu
  • add Main tab to track properties modal
  • make volume slider thicker with visible thumb
  • add Audio/Video/All media type filter to tracks view
  • add fullscreen button overlay on video player
  • skip tag reading for video files during scanning
  • increase seek bar height by 2px
  • revamp keyboard shortcuts and add tooltips
  • move shortcut hints from status bar to button tooltips
  • add "Same format" option to auto continue
  • show immediate feedback when adding a local folder collection
  • add branded sidebar header with logo and improved styling
  • dynamically show current version on website

Bug Fixes

  • detect and display playback errors for unsupported formats
  • enforce minimum height on now-playing bar and window
  • restore sidebar collapsed state without transition flash
  • align status bar left edge with sidebar when collapsed
  • skip 0-byte files during local folder scanning

Other

  • Spec Update
Viboplr v0.3.12 March 22, 2026

Bug Fixes

  • continue playback when app window is minimized
Viboplr v0.3.11 March 22, 2026

Features

  • make left panel collapsable and store user preference
  • show scrobble confirmation in now-playing bar
  • wire Last.fm now-playing and scrobble into playback
  • add Last.fm settings UI with connect/disconnect flow
  • add Last.fm Tauri commands and session management
  • add Last.fm client with signing, auth, scrobble
  • add setting to toggle video play history tracking
  • skip play history recording for video tracks
  • replace instant play recording with scrobble threshold
  • add 30s dedup window to record_play
  • add shouldScrobble utility function with tests
  • improve video playback with fullscreen, resizable splitter, and expanded view

Bug Fixes

  • use compile-time env vars for Last.fm API keys

CI

  • pass Last.fm API keys to release build

Other

  • Spec Update
Viboplr v0.3.10 March 22, 2026

Bug Fixes

  • add missing has_youtube_url param to test search_tracks calls

Performance

  • use LazyLock for scanner regex compilation

Refactoring

  • extract useMiniMode, useAppUpdater, useSessionLog hooks from App.tsx
  • extract useImageCache hook, remove image state duplication
  • unify get_tracks and search into single TrackQuery-based command
  • unify 12 image commands into 4 generic entity image commands
  • unify 4 toggle_liked commands into 1 generic command
  • extract collection_from_row and album_from_row helpers
  • replace 3 image modules with generic entity_image
Viboplr v0.3.9 March 22, 2026

Features

  • add liked and image attributes to tags
  • add view modes for Tracks/Liked, unified sort bars with grouped controls
  • add three view modes (Basic, List, Tiles) for Artists, Albums, Tags

Bug Fixes

  • restore actual audio volume on app launch

Other

  • Spec Update
Viboplr v0.3.8 March 21, 2026

Features

  • improve bump script feedback with labels and command output
  • add file size column to tracks list
  • add YouTube filter to All Tracks view
  • add shuffle button to All Tracks view
  • drag and drop tracks from track list to playlist position
  • warn on adding duplicate items to playlist
  • drag and drop to reorder tracks in playlist
  • add multi-select support to playlist panel
  • add selected track row styling
  • add track multi-selection with context menu integration
  • add multi-track context menu target type
  • add computeSelection helper for track multi-select
  • add like button to now playing bar
  • add GitHub Pages deployment workflow

Bug Fixes

  • remove Play All and Queue All buttons from tracks view
  • persist playlist panel visibility and name across restart
  • check duplicates on drag-drop to playlist
  • drag-and-drop not completing in playlist
  • align playlist selection styling with track list pattern
  • double-click plays only the selected track

Refactoring

  • replace duplicate warning modal with inline playlist banner

Documentation

  • update SPEC.md with playlist panel and recent changes

Other

  • Spec Update
  • Enable manual workflow
  • BugFix on full build
Viboplr v0.3.7 March 20, 2026

Features

  • add Cloudflare Web Analytics to showcase website
  • add static showcase website
  • add Collections view to sidebar navigation
  • support subsonic:// deep links
  • add test connection button to Subsonic server dialog
  • add track properties modal and audio properties retrieval
  • show clickable YouTube icon in track title cell
  • prompt for YouTube feedback and persist confirmed URLs
  • add "Watch on YouTube" context menu action

Bug Fixes

  • move website files to docs/ root instead of docs/website/
  • add missing allAlbumsRef declaration in useLibrary
  • debounce search to prevent UI freeze on keystroke
  • eliminate album list flicker when leaving artist detail
  • persist search query in navigation history

Refactoring

  • move Retry Failed Image Downloads to Settings > Debug
  • remove Collections tab from Settings, move debug actions

Documentation

  • update domain to viboplr.com and add SEO meta tags
  • add showcase website section to SPEC.md

Chores

  • add Cloudflare Web Analytics token
  • rename website/ to docs/ for GitHub Pages compatibility

Other

  • Update CNAME
  • Create CNAME
  • Fix History. Adding scroll position
  • bug: albums view shows all albums after leaving artist detail (#12)
  • bug: After confirming the YouTube URL, the track list now updates in-place
  • #9. Fix. Reset scroll position on view switch in App component
  • util: add auto-commit option for version bumping in bump script
Viboplr v0.3.6 March 19, 2026

Features

  • add frontend pagination state and infinite scroll for track lists
  • add pagination and server-side sort to track queries
  • add styles for navigation history buttons
  • wire navigation history hook, add toolbar buttons and shortcuts
  • add useNavigationHistory hook for back/forward navigation
  • tests: add comprehensive unit tests for database operations, media file handling, and utility functions

Bug Fixes

  • remove bare return that swallowed all Alt+key combos

Chores

  • add .worktrees/ to .gitignore

Other

  • Bug-Fix: re-fetch albums when selected artist is cleared
  • Add implementation plan for navigation history
  • Add design spec for navigation history (back/forward buttons)
  • Enhance error handling in sync process
Viboplr v0.3.5 March 18, 2026

Other

  • New app icons
Viboplr v0.3.4 March 18, 2026

Other

  • Rename and upgrade to v0.3.4
  • Porject renamed to viboplr

Ready to try Viboplr?

Free, fast, and built for music lovers.