Fluxtuner 1.0.6
Highlights
FluxTuner 1.0.6 completes the post-1.0 architecture and Web player hardening cycle.
This release focuses on clearer ownership boundaries, deterministic browser playback behavior and stronger executable contracts before future Web metadata work begins.
Changed
- Completed the post-1.0 Web architecture refactor while keeping
fluxtuner/web/app.pyandfluxtuner/web/static/app.jsas focused composition roots. - Split shared SQLite persistence into focused domain modules for users, profiles, stations, favorites, history, playlists, password changes and public statistics.
- Retained compatibility wrappers and centralized schema/bootstrap ownership in
db.py. - Split the Web stylesheet into focused shell, public, authentication, forms, dialogs, dashboard, stations, player and admin stylesheets.
- Added an explicit Web player model with validated
idle,loading,playing,pausedanderrortransitions. - Made playback replacement, pause, stop and lifecycle recovery deterministic.
- Added conservative offline/online recovery that preserves the selected station and requires explicit resume.
- Clarified FluxTuner's terminal, desktop and self-hosted Web positioning.
- Clarified private non-commercial self-hosting, commercial licensing and external catalog/stream dependencies.
Fixed
- Prevented stale asynchronous playback attempts from updating the current player state.
- Prevented late
playing,pauseandwaitingevents from overwriting newer state. - Fixed lifecycle reconciliation across connectivity, visibility,
pagehideandpageshowevents. - Fixed responsive Web layout ownership and regressions discovered while extracting feature-local CSS.
Documentation
- Added and completed the architecture refactor roadmap for the Web JavaScript and player state-model phases.
- Added a transparent engineering-process document describing AI-assisted development under human direction.
- Expanded README guidance for Docker Compose, self-hosting, licensing and privacy boundaries.
Internal
- Added executable Node-based contracts for browser modules, bootstrap ordering, player runtime delegation, playback replacement and lifecycle reconciliation.
- Added focused persistence tests for the extracted storage domains.
- Added source-boundary and CSS ownership tests to protect the completed architecture.
Scope
Web Now Playing metadata is not included in this release.
Backend metadata caching, workers, polling and SSRF-safe stream inspection remain planned for a future update.
Validation
- Full release gate passed.
- Python wheel and source archive built successfully.
- AppStream metadata validated.
- Installed package reported version
1.0.6. - Release tag points to the current
mainrelease commit.