Releases: netcraker01/jellyx-player
Release list
Jellyx 0.4.4
✨ What's New
- No new features in this release.
🐛 Bug Fixes
- Linuzx users Youtube bug s
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Jellyx.Player_0.4.4_amd64.AppImage |
AppImage |
| Linux | Jellyx.Player_0.4.4_amd64.deb |
Debian package |
| Linux | Jellyx.Player-0.4.4-1.x86_64.rpm |
RPM package |
| Linux | Jellyx_0.4.4_amd64.tar.gz |
Portable tarball |
| Windows | Jellyx.Player_0.4.4_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Jellyx.Player_0.4.4_x64_en-US.msi |
MSI installer |
| Windows | jellyx.exe |
Portable executable |
| macOS (Apple Silicon) | Jellyx.Player_0.4.4_aarch64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Jellyx.Player_0.4.4_amd64.AppImage.sha256Full Changelog: v0.4.4...v0.4.4
Full Changelog: v0.4.3...v0.4.4
Jellyx 0.4.3
Focus sessions and Pomodoro
Turn a music session into a deliberate work block with a persisted Focus lifecycle, playback coordination, and recovery after restart.
- Choose Pomodoro (four 25-minute work blocks with 5-minute breaks), Deep Work (two 90-minute blocks with 15-minute breaks), or Quick Focus (one 15-minute block).
- Set an intention, goal, and first action, then keep the current music, use a preset, or search for something new.
- Pause, resume, skip phases, capture quick notes and distractions, review completed sessions, and recover unfinished sessions.
- Failed deadline skips are retryable, and closing the window preserves the active session for recovery.
Playlist workflow
- Import YouTube tracks into playlists by pasting a URL or dragging a browser link.
- Add playlist tracks to the queue or place them directly after the current track with Play Next.
- Invalid source contracts now fail explicitly instead of silently defaulting to YouTube.
Player and visualizers
- Added spectrum analysis, frame interpolation, active-frequency range handling, and reactive visualizer settings.
- Integrated the visualizer runtime across fullscreen, Now Playing, and mini-player views.
- Improved Linux and WebKitGTK behavior, with active bars expanding into unused spectrum space.
Downloads
Jellyx 0.4.3 includes AppImage, Debian, RPM, and portable Linux builds; NSIS, MSI, and portable Windows builds; and an Apple Silicon macOS DMG. Windows builds are unsigned.
Every distributable includes a SHA-256 sidecar. The release also includes the generated content manifest and immutable workflow provenance.
Full Changelog: v0.4.2...v0.4.3
Jellyx 0.4.2
✨ What's New
Sidebar Collapse
- Collapsible sidebar with toggle button (240px ↔ 80px)
- Smooth CSS transition between expanded and collapsed states
- Icons stay at 20px; only the layout reflows
- BrandLockup collapses to logo-only when sidebar is collapsed
- State persists across sessions via persistent store
Global Search Bar
- Persistent search bar in the top layout bar
- Auto-searches when navigating to the Search page with an existing query
- Hidden on Home, Settings, and Search pages to avoid duplication
- Recent searches stored and accessible
NowPlaying Visualizer Rewrite
- Custom Canvas2D renderer that skips near-zero energy bins — only bars with meaningful signal fill the width
- ResizeObserver-based responsive sizing
- Rolling peak normalization (PEAK_DECAY=0.97) for stable amplitude reference across all visualizers
- Power curve applied to all 7 visualizers for better dynamic range
- Active range detection: grow-only, per-track state for frequency range optimization
Playback Improvements
- Lightweight stream URL resolve: skips full yt-dlp metadata extraction, saving 50–200ms per resolve
- Next-track prefetching: pre-resolves the next track's stream URL near the end of the current one
- Proxy Nagle disable: small writes (HTTP headers, tail chunks) no longer delayed by up to 200ms
- Proxy read/write timeouts (60s) to prevent thread leaks from stalled connections
- Benign disconnect classification:
ConnectionAbortedandNotConnectederrors no longer trigger false-positive telemetry (especially on Windows)
Welcome Modal
- First-launch welcome modal shown once per version
- Displays brand logo, version, open-source message, and community support prompt
- Telemetry opt-in toggle with clear privacy description
- GitHub star link to encourage community engagement
- Dismissed state persisted per version
Settings Improvements
- Reordered sections: Sources first, then Appearance, then About
- Skin renaming for clarity
- Responsive layout improvements
- localStorage migration utility for seamless key migration
i18n Overhaul
- Complete Spanish translation overhaul: neutral European Spanish (castellano neutro) with tuteo
- Removed anglicisms: "Cinematic mode" → "Cinema mode"
- Added translations for welcome modal, search, and new UI components
- English and Spanish locales fully synchronized
Source Improvements
- YouTube and SoundCloud
resolve_stream_url()implementations for lightweight stream resolution - DRM-protected SoundCloud tracks now show a user-friendly error message
- Source settings UI with enable/disable toggles per source
Database
get_recent_unique()query: deduplicates history by track_id, returns only the most recent entry per track- Home page "recently played" list now shows unique tracks instead of duplicates
🐛 Bug Fixes
- Fixed
svelte-checkerrors: added SVG/PNG module type declarations insvelte.d.ts - Fixed TypeScript type inference in
player.test.ts: explicitas anycasts for dynamic imports - Applied
cargo fmttodb.rsfor consistent Rust formatting - Fixed
searchQuerystore leaking across vitest tests: reset inbeforeEach - Fixed proxy false-positive telemetry on Windows:
WSAECONNABORTED(code 1236) now classified as benign disconnect - Fixed proxy thread leaks: added 60-second read/write timeouts on upstream connections
- Fixed Nagle delay on Windows: proxy now disables Nagle's algorithm for low-latency streaming
- Fixed history duplicates: deduplicated by track_id in the Home page recently played list
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Jellyx.Player_0.4.2_amd64.AppImage |
AppImage |
| Linux | Jellyx.Player_0.4.2_amd64.deb |
Debian package |
| Linux | Jellyx.Player-0.4.2-1.x86_64.rpm |
RPM package |
| Linux | Jellyx_0.4.2_amd64.tar.gz |
Portable tarball |
| Windows | Jellyx.Player_0.4.2_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Jellyx.Player_0.4.2_x64_en-US.msi |
MSI installer |
| Windows | jellyx.exe |
Portable executable |
| macOS (Apple Silicon) | Jellyx.Player_0.4.2_aarch64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Jellyx.Player_0.4.2_amd64.AppImage.sha256Full Changelog: v0.4.1...v0.4.2
Jellyx 0.4.1
✨ What's New
- Telemetry (Sentry): Optional, consent-gated crash and error reporting via Sentry. The DSN is embedded at build time only when the repository secret is set. Telemetry stays completely off until the user explicitly opts in via Settings. All events pass through a consent-aware transport and a PII sanitizer before sending.
- Local Diagnostics UI: A local-only diagnostics panel in Settings that surfaces backend health metrics (cache eviction, stream resolution, lock recovery) without sending any data anywhere.
- Cinematic mode: Distraction-free playback view with album art backdrop.
- Audio normalization: ffmpeg loudnorm-based normalization applied during cache download for consistent volume across tracks.
- Search pagination: Paginated search results across all registered sources.
- Playlist play button: Play entire playlists directly from search results with queue replacement.
- YouTube seek via local cache: Short YouTube tracks are fully downloaded and cached locally for instant seeking, eliminating the GStreamer/WebKitGTK seek regression on remote streams.
- Remote FFT visualizer: Real-time frequency spectrum visualization for remote (YouTube/SoundCloud) tracks, not just local files.
🐛 Bug Fixes
- Playback queue wiped on next/previous: Pressing the next or previous button with a queue of local tracks replaced the entire queue with a single track. Fixed by switching from
play_local()(which seeds a single-track queue) toplay_local_track()(which preserves the existing queue). - Remote auto-advance dead path: When a remote track finished playing, the next track in the queue did not start. The backend passed
stream_request_id = 0for auto-advance, but the frontend's guard explicitly rejectedid === 0. Added anAtomicU64counter toPlaybackServicethat generates unique non-zero IDs for backend-initiated requests. - Local visualizer freeze: The visualizer froze when switching between local and remote tracks. Fixed by properly tearing down and re-establishing the FFT pipeline on track source changes.
- Seek after EOF: Seeking after a track reached end-of-file caused a state desync. Fixed by using a seek generation counter so the EOF drain loop can distinguish a genuine EOF from a seek-driven position change.
- Proxy rejecting https://host:443 and [object Object] error toasts: The SSRF guard rejected any URL with an explicit port, breaking YouTube playback when googlevideo.com CDN emits
https://host:443/path. Fixed port validation to only reject non-standard ports. Also fixed a separate bug where error toasts displayed[object Object]instead of the actual error message. - Windows CI migration test failures:
FlushFileBuffers(ACCESS_DENIED) andReplaceFileW(SHARING_VIOLATION) failures on Windows CI runners caused by aggressive antivirus/indexer file locking. Added bounded retry with backoff (10x50ms for FlushFileBuffers, retries on os error 5 and 32 for ReplaceFileW). - Release pipeline fixes: Fixed draft release creation missing
--targetflag,gh api /releases/tags/returning 404 on drafts, Windowscargo testcrashing on TCP/CPAL tests, shallow clone missing git tags, and redundantcargo teston release builds.
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Jellyx.Player_0.4.1_amd64.AppImage |
AppImage |
| Linux | Jellyx.Player_0.4.1_amd64.deb |
Debian package |
| Linux | Jellyx.Player-0.4.1-1.x86_64.rpm |
RPM package |
| Linux | Jellyx_0.4.1_amd64.tar.gz |
Portable tarball |
| Windows | Jellyx.Player_0.4.1_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Jellyx.Player_0.4.1_x64_en-US.msi |
MSI installer |
| Windows | jellyx.exe |
Portable executable |
| macOS (Apple Silicon) | Jellyx.Player_0.4.1_aarch64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Jellyx.Player_0.4.1_amd64.AppImage.sha256Full Changelog: v0.4.0...v0.4.1
Jellyx 0.4.0
✨ What's New
- Rebranding to Jellyx Player — Complete rename from Helix to Jellyx across all branding, app icons, CSS tokens, Rust crates, frontend components, and documentation
- Automatic data migration — Existing Helix data (
~/.local/share/helix/orLibrary/Application Support/helix/) is automatically migrated to Jellyx paths on first launch. No data is lost - localStorage migration — Settings, queue, favorites, and other browser storage keys migrate from
helix-*tojellyx-*with automatic fallback for legacy values - New app identifier — Changed from
com.helix.musictocom.jellyx.music. macOS users will need to re-grant file/folder permissions - Updated CI/CD pipelines — GitHub Actions workflows updated to produce Jellyx-named artifacts
- Updated packaging — Flatpak, Homebrew, winget, AUR, and all platform installers now produce Jellyx-branded packages
- New screenshots and banner — Updated all screenshots and header banner to reflect the new Jellyx branding
🐛 Bug Fixes
- Fix CLA workflow failing on unsigned PRs due to missing label mutation permissions
- Fix updater allowlist to accept both old helix and new jellyx-player release URLs, so existing users can still open the release page after the repo rename
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Jellyx.Player_0.4.0_amd64.AppImage |
AppImage |
| Linux | Jellyx.Player_0.4.0_amd64.deb |
Debian package |
| Linux | Jellyx.Player-0.4.0-1.x86_64.rpm |
RPM package |
| Linux | Jellyx_0.4.0_amd64.tar.gz |
Portable tarball |
| Windows | Jellyx.Player_0.4.0_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Jellyx.Player_0.4.0_x64_en-US.msi |
MSI installer |
| Windows | jellyx.exe |
Portable executable |
| macOS (Apple Silicon) | Jellyx.Player_0.4.0_aarch64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
```bash
sha256sum -c Jellyx.Player_0.4.0_amd64.AppImage.sha256
```
Full Changelog: v0.2.3...v0.4.0
Helix 0.3.3
✨ What's New
- Improved the mini-player experience on Windows by making the borderless mini-player window draggable from non-interactive areas.
- Improved mini-player stability by keeping mini mode fixed-size, preventing accidental resizing from cutting off or misaligning the player.
- Updated release metadata to version 0.3.3 across the desktop app, Tauri configuration, Rust workspace, and UI package.
🐛 Bug Fixes
- Fixed a Windows issue where the mini-player could not be moved after entering mini mode.
- Fixed a layout issue where resizing the mini-player window could leave the player off-center or partially cut off.
- Fixed native window state restoration so the previous resizable/decorated state is restored when leaving mini mode.
✅ Verification
- Mini-player regression tests pass: 17/17.
- Svelte check passes: 0 errors, 0 warnings.
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Helix_0.3.3_amd64.AppImage |
AppImage |
| Linux | Helix_0.3.3_amd64.deb |
Debian package |
| Linux | Helix-0.3.3-1.x86_64.rpm |
RPM package |
| Linux | Helix_0.3.3_amd64.tar.gz |
Portable tarball |
| Windows | Helix_0.3.3_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Helix_0.3.3_x64_en-US.msi |
MSI installer |
| Windows | helix.exe |
Portable executable |
| macOS (Apple Silicon) | Helix_0.3.3_aarch64.dmg |
DMG |
| macOS (Intel) | Helix_0.3.3_x64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Helix_0.3.3_amd64.AppImage.sha256Full Changelog: v0.3.2...v0.3.3
Helix 0.3.2
✨ What's New
- No new features in this release.
🐛 Bug Fixes
- No bug fixes in this release.
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Helix_0.3.2_amd64.AppImage |
AppImage |
| Linux | Helix_0.3.2_amd64.deb |
Debian package |
| Linux | Helix-0.3.2-1.x86_64.rpm |
RPM package |
| Linux | Helix_0.3.2_amd64.tar.gz |
Portable tarball |
| Windows | Helix_0.3.2_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Helix_0.3.2_x64_en-US.msi |
MSI installer |
| Windows | helix.exe |
Portable executable |
| macOS (Apple Silicon) | Helix_0.3.2_aarch64.dmg |
DMG |
| macOS (Intel) | Helix_0.3.2_x64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Helix_0.3.2_amd64.AppImage.sha256Full Changelog: v0.3.2...v0.3.2
Helix 0.3.1
✨ What's New
- Added Focus Mini Player mode with an iPod-style bundled skin.
- Added a skin-driven mini player foundation so future community skins can define layout, sizing, and visual style safely.
- Added Mini Player skin selection in Settings with preview and activation.
- Mini mode now resizes the native desktop window to the active skin and restores the previous full-app size when returning.
🐛 Bug Fixes
- Fixed release workflows so Windows MSI/NSIS artifacts cannot reuse stale bundle outputs from a previous version.
- Stabilized Rust workspace tests by setting a larger default Rust test stack.
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Helix_0.3.1_amd64.AppImage |
AppImage |
| Linux | Helix_0.3.1_amd64.deb |
Debian package |
| Linux | Helix-0.3.1-1.x86_64.rpm |
RPM package |
| Linux | Helix_0.3.1_amd64.tar.gz |
Portable tarball |
| Windows | Helix_0.3.1_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Helix_0.3.1_x64_en-US.msi |
MSI installer |
| Windows | helix.exe |
Portable executable |
| macOS (Apple Silicon) | Helix_0.3.1_aarch64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Helix_0.3.1_amd64.AppImage.sha256Full Changelog: v0.3.0...v0.3.1
Helix 0.3.0
✨ What's New
- Restructured Helix into a Rust workspace to prepare the project for future Android and CLI development.
- Added
helix-corefor shared Tauri-free domain logic. - Added
helix-clias the command-line interface foundation. - Added
helix-ffias the future mobile/Android FFI boundary. - Moved the desktop app into
helix-desktopwhile keeping the current Tauri app working. - Added architecture documentation and workspace verification coverage.
🐛 Bug Fixes
- Kept the Tauri development build clean after the workspace split by removing stale warning sources.
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Helix_0.3.0_amd64.AppImage |
AppImage |
| Linux | Helix_0.3.0_amd64.deb |
Debian package |
| Linux | Helix-0.3.0-1.x86_64.rpm |
RPM package |
| Linux | Helix_0.3.0_amd64.tar.gz |
Portable tarball |
| Windows | Helix_0.3.0_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Helix_0.3.0_x64_en-US.msi |
MSI installer |
| Windows | helix.exe |
Portable executable |
| macOS (Apple Silicon) | Helix_0.3.0_aarch64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Helix_0.3.0_amd64.AppImage.sha256Full Changelog: v0.2.3...v0.3.0
Helix 0.2.3
✨ What's New
- Added support for local OPUS and FLAC audio files.
- Added the new local playlist organization flow, making local library playlists easier to structure and manage.
🐛 Bug Fixes
- Fixed the Windows fresh-install playlist bug where creating playlists or favorites could fail because existing local database schemas were missing required columns.
📦 Downloads
| Platform | File | Type |
|---|---|---|
| Linux | Helix_0.2.3_amd64.AppImage |
AppImage |
| Linux | Helix_0.2.3_amd64.deb |
Debian package |
| Linux | Helix-0.2.3-1.x86_64.rpm |
RPM package |
| Linux | Helix_0.2.3_amd64.tar.gz |
Portable tarball |
| Windows | Helix_0.2.3_x64-setup.exe |
NSIS installer (recommended) |
| Windows | Helix_0.2.3_x64_en-US.msi |
MSI installer |
| Windows | helix.exe |
Portable executable |
| macOS (Apple Silicon) | Helix_0.2.3_aarch64.dmg |
DMG |
| macOS (Intel) | Helix_0.2.3_x64.dmg |
DMG |
⚠️ Windows builds are unsigned. See the README for SmartScreen workaround.
🔑 Checksums
Every binary has a corresponding .sha256 file. Verify downloads:
sha256sum -c Helix_0.2.3_amd64.AppImage.sha256Full Changelog: v0.2.2...v0.2.3