Skip to content

v0.0.1-alpha6

Choose a tag to compare

@javi11 javi11 released this 27 Feb 16:21
· 396 commits to main since this release

What's Changed

✨ New Features

Core & Architecture

  • Internal FUSE mount with auto-start support (#275) — AltMount can now manage its own FUSE mount lifecycle, no external setup required
  • Segment cache — persistent on-disk segment cache to dramatically reduce repeat download overhead (#309)
  • Nested RAR extraction — full support for RAR-in-RAR and 7zip nested archives (#324, #343)
  • ISO expansion inside RAR/7zip containers; keeps only the largest file (#366)
  • SOCKS5 proxy support for NNTP providers (#170)
  • Configurable nested RAR extraction toggle in UI and API (#348)

Importer & Queue

  • Persistent import history with category support — survive restarts (#289)
  • Manual queue priority control — PATCH /api/queue/{id}/priority + UI button (#361)
  • Directory Watcher — automatically imports NZBs dropped into a watched folder (#208)
  • NZBLNK resolver — resolves NZBLNK links via NZBKing and NZBIndex (#202)
  • Import deduplication & validation optimization (#266)
  • Enhanced NZBDav import UI with progress and detailed status (#264)
  • Sample file auto-ignore on import
  • PAR2 files now exported to meta to enable proper exports (#95)

Health & Monitoring

  • Advanced health monitoring with path recovery and data verification (#290)
  • Hybrid data verification mode to detect corrupted files (#263)
  • Metadata integrity checks and zombie cleanup (#265)
  • Automatic metadata backup system (#269)
  • Symlink regeneration for files without library association (#201)

Authentication & Security

  • Simplified single admin user model — cleaner, more predictable auth (#332)
  • JWT secret hardening — auto-generated cryptographically secure secrets (#329, #325)
  • Path traversal, CORS, and auth hardening (#325)
  • Secure unauthenticated NZBDav import endpoints (#317)
  • JWT cookie configuration options (#117)
  • Auto-redirect to login on 401 / expired JWT (#331)
  • Admin password change from UI (#330)

Frontend & UI

  • GitHub version check and in-app update mechanism (#322)
  • DaisyUI theme selector — multiple built-in themes (#316)
  • Dashboard overhaul with Activity Hub and real-time metrics (#288)
  • Modern redesign of Queue, Health, Files, and Import pages (#287)
  • Responsive mobile layouts for Queue and Health tables (#299)
  • Active streams display on dashboard (#130)
  • File format labels in FileExplorer cards and info modal (#368)
  • Queue sorting functionality (#96)
  • Speed test for NNTP providers
  • Ping (ms) metric in NNTP provider status cards (#293)

ARR Integration

  • Improved path matching with filename and folder fallbacks (#267)
  • Fix SABnzbd category compatibility for Sonarr/Radarr (#272)
  • Improved category handling for ARR auto-setup (#182)
  • Pause and additional SABnzbd queue methods (#119)
  • --links flag support for symlink mounts (#363)

Configuration

  • All missing backend configuration parameters now exposed to frontend (#296)
  • Exposed allow_nested_rar_extraction in GET config response (#354)
  • Configurable host in generated .strm files (#252)

⚡ Performance Improvements

  • Raise default max_download_prefetch from 3 → 10 for faster streaming (#359)
  • 6 targeted NZB import pipeline optimizations — significant throughput improvement (#345)
  • 4 targeted NZB parser optimizations (#347)
  • Lazy segment loading — segments loaded on first read instead of at file open (#319)
  • FUSE Linux mount options optimized inspired by rclone (#308)
  • FUSE metadata cache to reduce filesystem lookups (#276)
  • Library sync optimization for large libraries (#333)
  • NNTP connection pool upgraded to nntppool v4 (#282)
  • Improved FUSE performance and unified mount configuration (#285)

🐛 Bug Fixes

Importer

  • Prevent NZB filename collision from overwriting existing files (#353)
  • Skip download when no NNTP providers configured (#355)
  • Fix nested RAR extraction error handling (fail instead of fallback) (#346)
  • Fix context cancellation propagation to prevent stuck imports (#172)
  • Strip virtual path prefix correctly (#304)
  • Prevent panic on NZB files with segment-less entries (#306)
  • Fix fallback item not removed from queue after SABnzbd transfer (#350)
  • Use PackedSize for RAR segment validation (#222)
  • Ignore persistent .nzbs path in virtual directory calculation (#220)
  • Fix replace strategy for persistent NZB storage (#219)
  • Use relative paths in directory watcher (#232)
  • Remove ID prefix from NZB filenames (#215)

API & Backend

  • Validate numeric prefix before stripping from queue target_path (#356)
  • Add User-Agent header for NZB URL downloads to avoid 403 errors (#352)
  • Include allow_nested_rar_extraction in GET config response (#354)
  • Prevent accidental metadata deletion via ARR webhooks (#256)
  • Ignore EpisodeFileDelete webhook to prevent accidental library wipes (#253)
  • Handle boolean deletedFiles and MovieDelete events in webhooks (#251)
  • Return error if ARRs disabled on SABnzbd auth (#213)
  • Remove redundant ARR scan triggers causing errors in v4+ (#166)
  • Fix SABnzbd category compatibility for Sonarr/Radarr (#272)
  • Prevent file descriptor leak in stream tracker (#167)

Health

  • Fix 4 DB-ordering and state-management bugs in health worker (#344)
  • Reset stuck pending jobs on startup and add disable toggle (#335)
  • Move metadata to corrupted only after ARR repair is confirmed (#334)
  • Fix health check scheduling and ARR integration (#188)
  • Fix library sync deleting files
  • Ensure playback failures trigger immediate repair (#176)
  • Fix health status not updating from checking to healthy (#257)

FUSE / Filesystem

  • Resolve FUSE mount hanging on file reads with context propagation (#302)
  • Resolve mount stuck state showing mounted when not ready (#292)
  • Handle context cancellation as debug (not errors) (#291)
  • Implement Statfs to report filesystem size (#295)
  • Improve move/rename operations with atomic renames and proper cleanup (#297)
  • Set DiskSpaceTotalSize to match VFSCacheMaxSize (#351)
  • Reset originalRangeEnd on Seek to fix video playback (#277)
  • Skip rclone VFS notifications for FUSE/none mounts (#320)

Authentication

  • Properly handle disabled auth state in UI (#261)
  • Fix XSRF check and admin password change (#330)
  • Auto-redirect to login on 401 (#331)

Usenet / Streaming

  • Prevent memory leak by closing all segments in Clear() (#254)
  • Prevent premature segment closure during streaming (#216)
  • Resolve send on closed channel panic in UsenetReader (#307)
  • Prevent use-after-free race condition in NZB parser (#160)
  • Fix memory leak — replace bufpipe with io.Pipe in UsenetReader (#165)
  • Fix AES-encrypted 7z file download blocking on last bytes (#162)
  • Resolve nil pointer dereference in triggerFileRepair (#161)

Frontend

  • Resolve sidebar always showing 0.0.0 version (#365)
  • Fix import queue display, health % with pending, and auto-clear (#338)
  • Ensure fresh playback data on tab switch (#342)
  • Fix TypeScript build errors with missing type definitions (#301)
  • Require save button for provider reorder and extend cache size range (#321)

🔐 Security

  • JWT secrets hardened — auto-rotated if weak/missing (#325, #329)
  • Path traversal protection added (#325)
  • CORS policy tightened (#325)
  • NZBDav import endpoints secured — require authentication (#317)

🔧 Refactoring & Internals

  • Importer decomposed into focused sub-packages (#175)
  • ARR module split into sub-packages with injected dependencies
  • Config path validation extracted to separate package
  • Standardized API responses with shared utilities (#174)
  • NNTP connection pool upgraded to nntppool v4 (#282)
  • cgofuse updated to v1.6.0 (#318)
  • Go version updated to 1.25.1
  • rardecode updated to v2.1.2

📚 Documentation

  • Improved integration and import strategy documentation
  • Added migration tool from NZBDav to AltMount
  • Docker volume plugin documentation by @VEEC023
  • Improved general documentation (#298)

🎉 New Contributors

Full Changelog: v0.0.1-alpha5...v0.0.1-alpha6