Modernized Streaming & Advanced Controls
This major release introduces significant enhancements to stream reliability, client-side resource optimization, and interactive card controls, alongside a modernized development and testing framework.
Bug Fixes & Improvements
- Backend: Isolated camera HTTP client sessions to prevent PHPSESSID cookie and stream bleeding between multiple camera entities.
- Backend: Added automatic token invalidation and refresh logic to the HLS proxy view when detecting expired tokens, empty playlists, or copyright warning pages.
- Backend: Implemented a thread-safe LRU cache (up to 15 chunks) in the camera entity to store binary
.tschunks, speeding up card startup and reducing upstream server load. - Lovelace Card: Implemented viewport pausing via
IntersectionObserverto automatically pause HLS loading and playback when cards are off-screen, saving network bandwidth and CPU. - Lovelace Card: Added a custom interactive controls overlay with manual Play/Pause, Picture-in-Picture (PiP), and Fullscreen toggle buttons.
- Lovelace Card: Integrated page visibility listener to correctly play/pause and recover player instances on tab change.
- Lovelace Card: Introduced the
show_linkconfig option to display direct links to the original webcams on SkylineWebcams.
Maintenance
- Tooling: Set up a dedicated frontend workspace with TypeScript, Rollup, Prettier, and ESLint.
- Testing: Rebuilt the frontend testing architecture from scratch using Vitest, Happy DOM, and clean prototype mocks.
- Workflows: Automated version updates, frontend bundling, and draft release generation triggered by git tags in GitHub Actions.