Skip to content

Releases: ModioStudio/MiniFy

Release 0.5.1

21 Jan 13:13
a200c13

Choose a tag to compare

Release v0.5.1

📝 Changelog

Minor Changes

  • Improved continuous music playback experience
    • Added Spotify playlist context playback for seamless auto-advance through playlists
    • Implemented YouTube playback queue service for automatic track advancement
    • Added autoplay service (Random Queue) that plays recommendations after playlist/song ends
    • Added Spotify keep-alive service to prevent connection timeouts after inactivity
    • Refined AI DJ to better distinguish single track requests from continuous queue requests
    • Fixed AI Queue border to only show when explicit AI Queue is active

📦 Commits since v0.5.0

  • feat(playback): enhance playback functionality and service management (ada2d3c)
  • chore: delete changesets after release v0.5.0 (0a8db62)

This release was generated automatically using GitHub Actions.

Release 0.5.0

07 Jan 20:37

Choose a tag to compare

Release v0.5.0

📝 Changelog

Minor Changes

  • Added Clear Everything button in Settings
    • New button in Privacy section to reset all app data
    • Confirmation dialog prevents accidental data loss
    • Clears Spotify tokens, AI keys, settings, and custom themes
  • Added persistent last played track caching
    • App remembers last played song and playback position
    • Works across app restarts and Spotify pauses
    • Auto-saves progress every 2 seconds while playing
  • Full YouTube Music integration with modular provider architecture
    • Added embedded Google OAuth credentials support for YouTube (YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET)
    • Extended MusicProvider interface with playlist methods and capabilities
    • Implemented YouTube playlist API (getUserPlaylists, getPlaylistTracks, addToPlaylist)
    • Aligned Spotify provider with updated MusicProvider interface
    • Refactored PlaylistView to use provider abstraction for both Spotify and YouTube
    • Enabled full AI DJ functionality for YouTube including chat and queue features
    • Created provider-agnostic musicTools.ts for AI DJ tool calls
    • Updated Settings UI: reordered providers (Spotify -> YouTube -> Apple Music)
    • All music provider connections now use unified Boot flow (no custom modals)
    • Added retry mechanism for YouTube player initialization (waits up to 5s)
    • Improved drag area z-index for consistent window dragging
  • Added YouTube Music support with provider abstraction
    • Implemented MusicProvider abstraction for scalable multi-provider support
    • Added YouTube Music authentication via Google OAuth 2.0
    • Created YouTube IFrame Player component for audio playback
    • Extended Settings UI with YouTube Music connection
    • Updated AI DJ to work with both Spotify and YouTube Music
    • Refactored useCurrentlyPlaying hook to use provider factory
    • Added provider-aware playback controls (play, pause, seek)
    • YouTube credentials stored securely in OS Keyring

Patch Changes

  • Improved AI DJ to avoid duplicates and add more variety
    • Played songs history now persists across queue restarts
    • Recent tracks and artists are shuffled before AI analysis
    • AI prompt updated to encourage diverse artist selection
    • Suggestions are shuffled before playback
    • Recent tracks excluded from suggestions to prevent repeats
  • Fixed Spotify and AI DJ authentication race conditions
    • Added in-memory cache for client ID, tokens, and AI keys
    • Wrapped all keyring operations in tokio::task::spawn_blocking
    • Credentials now available immediately after saving
  • Fixed compatibility with updated Rust dependencies
    • Updated rand crate usage: thread_rng() -> rng()
    • Updated keyring crate: delete_password() -> delete_credential()
    • Fixed discord-rich-presence API change for client creation
  • Fixed credential storage and persistence
    • Downgraded keyring crate from v3 to v2 for better Windows compatibility
    • Secrets (tokens, API keys, client ID) stored securely in OS keyring
    • Settings stored in %APPDATA%/MiniFy/settings.json (no size limits)
    • Custom themes stored as individual JSON files in themes folder
    • Added in-memory caching for keyring operations
  • Fixed YouTube Music integration issues
    • Fixed volume control for YouTube Music (was showing "not available" message)
    • Fixed authentication flow: clicking Connect in Settings now redirects to Boot auth screen
    • YouTube Music now supports search, playlists, and volume control through the in-app player
    • App now checks provider authentication on startup and redirects to setup if needed
    • Auto-activate: if only one provider is connected, it's automatically set as active
    • YouTube embed player now uses privacy-enhanced mode (youtube-nocookie.com)
    • YouTube player is now pre-mounted during Boot for faster startup
    • Updated clear-auth script to also clear YouTube credentials
    • Fixed settings sync: active_music_provider is now properly saved to settings file

📦 Commits since v0.4.1

  • feat(settings): add provider playback cache and YouTube volume settings (2904871)
  • chore: update biome configuration and enhance desktop application functionality (ee5598a)
  • chore: update astro dependency version in pnpm-lock.yaml (70ea797)
  • chore: update biome schema and enhance desktop application functionality (6e8cdab)
  • feat(desktop): enhance music provider integration and improve track management (e875dd6)
  • refactor(desktop): unify track handling and enhance provider integration (ef86a53)
  • feat(desktop): update environment configuration and dependencies; enhance track caching and AI queue functionality (eb52655)
  • deps: bump the npm-runtime-misc group with 15 updates (fcd2bfc)
  • deps(dev): bump the npm-tooling group with 4 updates (dd99eb1)
  • deps(dev): bump the npm-typescript group with 2 updates (27620c0)
  • deps(dev): bump the npm-vite group with 2 updates (1bb2b72)
  • deps(dev): bump the npm-tailwind group with 3 updates (0fd3dde)
  • deps: bump next from 16.0.10 to 16.1.1 in the npm-next group (f4e98b0)
  • deps: bump @astrojs/starlight in the npm-astro-starlight group (7ae5b4f)
  • deps: bump the npm-radix group with 27 updates (7659540)
  • deps: bump the npm-ai-sdk group with 4 updates (eac35fb)
  • deps(rust): bump the cargo-misc group (1444ae5)
  • deps(rust): bump the cargo-async group (1494832)
  • deps: bump the npm-react group with 4 updates (e508fdc)
  • deps(rust): bump serde_json (db9509a)
  • deps: bump the npm-tauri group with 4 updates (d5e8b86)
  • deps(rust): bump the cargo-tauri group (59d0761)
  • deps(actions): bump the actions-all group with 5 updates (d392c8a)
  • deps(docker): bump node in /apps/www in the docker-www group (18dc977)
  • deps(docker): bump node in /apps/docs in the docker-docs group (8120ef1)
  • chore: configure dependabot for all ecosystems (9b9fd94)
  • chore: delete changesets after release v0.4.1 (9aaab0e)

This release was generated automatically using GitHub Actions.

Release 0.4.1

02 Jan 18:06

Choose a tag to compare

Release v0.4.1

📝 Changelog

Minor Changes

  • Added playlist browsing and add-to-playlist functionality
    • Added "Playlists" option to right-click context menu for browsing user playlists
    • Created PlaylistView to browse playlists and play tracks from them
    • Added "+" button to LayoutB for adding the current song to any playlist
    • Implemented AddToPlaylistModal component for quick playlist selection
    • Added Spotify API functions for fetching playlists and adding tracks
  • Integrated TOON format for AI DJ tool responses to reduce LLM token usage
    • Added @toon-format/toon dependency for Token-Oriented Object Notation encoding
    • Updated all Spotify tool responses to use TOON format for track and artist data
    • Track data now uses compact format: n=name, a=artists, u=uri
    • Artist data now uses compact format: n=name, g=genres, p=popularity, id=artistId
    • Updated AI DJ system prompt to explain TOON format parsing
    • Expected token savings of 30-50% on structured data responses
  • Added Discord Rich Presence integration
    • Shows currently playing track on Discord profile
    • Toggle in Settings → Connections to enable/disable
    • Displays: Track name, Artist, "Listening to MiniFy"
    • Automatically updates when track changes or playback pauses
    • "View on GitHub" button linking to the MiniFy repository
    • AI Queue indicator: Shows "Artist • AI Queue" when AI Queue is active
    • Enabled by default
  • Enhanced AI DJ with automatic user context and privacy transparency
    • AI DJ now automatically sends user context with each message for better recommendations:
      • Display name, current time, currently playing track
      • Recent tracks (last 15), top artists with genres
    • Added privacy notice in Settings → Privacy explaining what data is sent to LLM providers
    • AI Queue info box now updates in real-time showing correct "Next" track and remaining count
    • Queue monitoring interval reduced from 5s to 3s for faster updates
  • Added AI Queue feature for endless automated playlists
    • New AI Queue mode that generates continuous playlists based on listening history
    • Analyzes last 30 played tracks and top artists using TOON format (saves ~40% tokens)
    • Automatically queues 5 tracks at a time with smart prefetching
    • Caches user preferences for 10 minutes to minimize API calls
    • Red border indicator when AI Queue is active (shows token usage)
    • Toggle in Settings > AI DJ to disable the border warning
    • Queue button in AI DJ view to start/stop the feature
    • Uses compact TOON data format for efficient LLM communication
  • Performance optimizations and Volume control feature
    • New Volume control accessible via right-click menu
      • Slider for precise volume adjustment (debounced for smooth operation)
      • Preset buttons for quick volume levels (Mute, 25%, 50%, 75%, 100%)
      • Shows current playback device name
    • PlaylistView: Implemented lazy loading - loads 30 tracks initially, loads more on scroll
    • Added lazy loading for album art images (loading="lazy")
    • SpotifyClient optimizations:
      • Token caching to avoid repeated Tauri invocations
      • Request deduplication for concurrent identical GET requests
      • Fire-and-forget pattern for player controls (play, pause, next, prev)
      • Debounced seek to avoid API flooding during scrubbing
    • AI Queue auto-stops when user manually starts a different song
    • TOON format verified across all AI-related code for token efficiency

Patch Changes

  • Code cleanup and improvements
    • Replaced dynamic imports with static imports in aiQueueService for better performance
    • Added error handling for AI suggestion JSON parsing with descriptive error messages
    • Fixed stale closure issue in PlaylistView loadMoreTracks callback
    • Removed unused SplashScreen component and related CSS animations
    • Removed unused ContextMenu component
    • Fixed linter warnings in keyboard shortcuts switch statement
  • Added keyboard shortcuts for quick navigation
    • Ctrl+S: Open Search
    • Ctrl+P: Open Playlists
    • Ctrl+E: Open Settings
    • Ctrl+M: Open Volume Control
    • Ctrl+D: Open AI DJ (when configured)
    • Escape: Return to player view
      Shortcuts are displayed in the right-click context menu.

📦 Commits since v0.4.0

  • feat: add discord_rpc_enabled setting to readSettings function (6acc54a)
  • refactor: improve AI queue and playlist handling (bdfac29)
  • feat: integrate AI Queue and Discord RPC features (f4b2319)
  • chore: update development URLs in env.example (76356be)
  • chore: update README to include Discord link (e0f5be1)
  • chore: refine Dockerfile for MiniFy Docs build process (bb7e04d)
  • chore: update Dockerfile for improved asset handling (94bc15a)
  • chore: update Dockerfile and .dockerignore for improved build process (d3c490d)
  • chore: delete changesets after release v0.4.0 (b5856ee)

This release was generated automatically using GitHub Actions.

Release 0.4.0

01 Jan 22:48

Choose a tag to compare

Release v0.4.0

📝 Changelog

Minor Changes

  • Added AI DJ feature with multi-provider support
    • Integrated Vercel AI SDK (OpenAI, Anthropic, Google AI, Groq)
    • AI DJ chatbot accessible via right-click context menu
    • Natural language music control and recommendations
  • Added comprehensive Spotify tools for AI DJ
    • Search and play tracks via natural language
    • View recently played and top tracks/artists
    • Analyze music taste (energy, mood, tempo, danceability)
    • Get smart recommendations based on listening history
  • Added active status for Music and AI providers
    • Display AI model names in provider cards
    • Renamed "Music Services" to "Music Provider"
    • Added "Active" toggle for providers
    • Active providers show highlighted border
  • Moved AI API keys to secure system keyring
    • Keys stored in OS credential manager (not plain text)
    • Windows: Credential Manager, macOS: Keychain, Linux: Secret Service
    • Added Rust commands for secure key management
    • Updated clear-auth script to remove AI keys from keyring

Patch Changes

  • Expanded documentation with comprehensive technical details
    • Added detailed OAuth PKCE authentication flow documentation with diagrams
    • Enhanced security documentation explaining keyring storage and credential management
    • Expanded AI DJ documentation with architecture, tools, and data flow diagrams
    • Updated architecture documentation with comprehensive system diagrams
    • Improved desktop overview with feature matrix and application flow
    • Enhanced installation and quick-start guides with troubleshooting sections
    • Updated contributing guide with workflow diagrams and code style guidelines
    • Added detailed settings and custom themes documentation
    • Improved consistency across all documentation articles

📦 Commits since v0.3.0

  • fix: handle missing API key in getActiveProviderWithKey function (1a9cbc4)
  • chore: update README and enhance theme documentation (283f135)
  • chore: update environment configuration and enhance documentation (b6574cd)
  • chore: enhance AI integration and update documentation (53b0047)
  • chore: delete changesets after release v0.3.0 (254dcb6)

This release was generated automatically using GitHub Actions.

Release 0.3.0

01 Jan 15:55
a16afe4

Choose a tag to compare

Release v0.3.0

📝 Changelog

Minor Changes

  • Added "Choose Music Provider" screen with Spotify, Apple Music, YouTube Music options
  • Implemented secure PKCE OAuth flow with local callback server
  • Auto-opens browser for Spotify login, no manual token copy needed
  • Added state validation and XSS protection for OAuth callbacks
  • New "Connections" tab under Theme Studio showing connected music services
  • Spotify connect/disconnect functionality with status indicator
  • Apple Music and YouTube Music placeholders (coming soon)

Patch Changes

  • Added pnpm desktop:clear to reset auth data for testing
  • Supports Windows (cmdkey), macOS (security CLI), Linux (secret-tool)
  • Improved error handling with platform-specific messages
  • Semi-transparent backdrop on Boot screen matching Settings style
  • Moved SplashScreen animations to global CSS
  • Converted SplashScreen to named export

📦 Commits since v0.2.3

  • chore: add @changesets/cli to devDependencies in package.json (0f772b6)
  • chore: refine authentication handling and improve splash screen experience (32b3b10)
  • chore: enhance desktop authentication and splash screen animations (bf2b8e2)
  • chore: update package.json and desktop scripts for authentication and theme enhancements (6136b1e)

This release was generated automatically using GitHub Actions.

Release 0.2.3

31 Dec 00:03

Choose a tag to compare

Release v0.2.3

📦 Commits since v0.2.2

  • chore: update public key injection to use plugins configuration (3ca49ba)
  • chore: remove outdated Tauri key files and update public key injection path (c94609d)
  • chore: delete changesets after release v0.2.2 (64c7c9d)

This release was generated automatically using GitHub Actions.

Release 0.2.2

30 Dec 23:48

Choose a tag to compare

Release v0.2.2

📝 Changelog

Minor Changes

Added new Workflows

Patch Changes

  • Updated release workflow to include .sig files for all platforms
  • Signature files enable secure auto-updates verification

📦 Commits since v0.2.1

  • chore: automate deletion of consumed changesets in release workflow (fedc5a9)
  • chore: enhance release workflow to include artifact signatures (efa1c64)

This release was generated automatically using GitHub Actions.

Release 0.2.1

30 Dec 23:36

Choose a tag to compare

Release v0.2.1

📝 Changelog

Minor Changes

Added new Workflows

📦 Commits since v0.2.0

  • chore: update tauri build command to include script execution (b9ba0e8)
  • chore: update macOS build configuration in release workflow (2938f79)
  • chore: update package.json and pnpm-lock.yaml for changeset integration (5fcbb27)

This release was generated automatically using GitHub Actions.

MiniFy v0.2.0

30 Dec 22:41

Choose a tag to compare

Automated release for MiniFy v0.2.0

MiniFy v0.1.0

28 Oct 22:53

Choose a tag to compare

Automated release for MiniFy v0.1.0