Skip to content

Releases: netcraker01/jellyx-player

Jellyx 0.4.4

Choose a tag to compare

@github-actions github-actions released this 02 Sep 13:35

✨ 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.sha256

Full Changelog: v0.4.4...v0.4.4

Full Changelog: v0.4.3...v0.4.4

Jellyx 0.4.3

Choose a tag to compare

@github-actions github-actions released this 01 Aug 18:34
257b062

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

Choose a tag to compare

@github-actions github-actions released this 16 Jul 09:41
cd38839

✨ 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: ConnectionAborted and NotConnected errors 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-check errors: added SVG/PNG module type declarations in svelte.d.ts
  • Fixed TypeScript type inference in player.test.ts: explicit as any casts for dynamic imports
  • Applied cargo fmt to db.rs for consistent Rust formatting
  • Fixed searchQuery store leaking across vitest tests: reset in beforeEach
  • 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.sha256

Full Changelog: v0.4.1...v0.4.2

Jellyx 0.4.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 20:12
008ef63

✨ 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) to play_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 = 0 for auto-advance, but the frontend's guard explicitly rejected id === 0. Added an AtomicU64 counter to PlaybackService that 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) and ReplaceFileW (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 --target flag, gh api /releases/tags/ returning 404 on drafts, Windows cargo test crashing on TCP/CPAL tests, shallow clone missing git tags, and redundant cargo test on 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.sha256

Full Changelog: v0.4.0...v0.4.1

Jellyx 0.4.0

Choose a tag to compare

@netcraker01 netcraker01 released this 10 Jul 20:11

✨ 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/ or Library/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-* to jellyx-* with automatic fallback for legacy values
  • New app identifier — Changed from com.helix.music to com.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

Choose a tag to compare

@netcraker01 netcraker01 released this 10 Jul 07:35

✨ 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.sha256

Full Changelog: v0.3.2...v0.3.3

Helix 0.3.2

Choose a tag to compare

@netcraker01 netcraker01 released this 09 Jul 19:37

✨ 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.sha256

Full Changelog: v0.3.2...v0.3.2

Helix 0.3.1

Choose a tag to compare

@github-actions github-actions released this 09 Jul 08:32

✨ 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.sha256

Full Changelog: v0.3.0...v0.3.1

Helix 0.3.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 16:41

✨ What's New

  • Restructured Helix into a Rust workspace to prepare the project for future Android and CLI development.
  • Added helix-core for shared Tauri-free domain logic.
  • Added helix-cli as the command-line interface foundation.
  • Added helix-ffi as the future mobile/Android FFI boundary.
  • Moved the desktop app into helix-desktop while 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.sha256

Full Changelog: v0.2.3...v0.3.0

Helix 0.2.3

Choose a tag to compare

@netcraker01 netcraker01 released this 07 Jul 17:06

✨ 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.sha256

Full Changelog: v0.2.2...v0.2.3