• v2026.06.01
    test-web / test (push) Successful in 45s
    release / Build signed APK (tag releases only) (push) Successful in 3m57s
    release / Build + push container image (push) Successful in 19s
    Stable

    bvandeusen released this 2026-06-01 21:55:49 -04:00 | 318 commits to main since this release

    First release on the new per-day mutable tag scheme. Batch release covering web UX tiers A/B/C, M8 native-Android port, M7 server polish, and the CI dedup pass.

    Web UX (this session)

    • Tier A — Full-screen NowPlaying view, global keyboard shortcuts (Space/J/L/M/Arrows), multi-select + bulk actions on track lists, Home secondary system-playlists backflow.
    • Tier B — Debounced quick-filter on every Library tab; smart empty-state onramps everywhere.
    • Tier C — Keyboard reorder on playlist tracks, position-derived crossfade (0-12s, default off), copy-link button on owned public playlists.

    Platform

    • M8 Android native — full Kotlin/Compose client with Media3, Room cache-first storage, hydration prewarmer; ships as minstrel-v2026.06.01.apk.
    • M7 web feature sweep — full Subsonic-API parity client + admin UI, system playlists v2 (For You / Discover / Deep Cuts / Rediscover / Most Played multi-row), event bus, cache-first Library, offline v2.
    • Server — skip classification moved server-side, Lidarr bootstrap, admin dashboard, admin requests queue with override modal.

    Infrastructure

    • Migrated to Gitea Actions with keystore signing, registry auth via REGISTRY_TOKEN.
    • CI dedup pass: dropped pull_request triggers (push covers it on a single-author repo), added concurrency with cancel-in-progress to every workflow.
    • Tag scheme changed to per-day mutable CalVer (vYYYY.MM.DD). Same-day re-releases force-move the tag.
    • Main pushes now tag both :main and :latest; tag pushes tag both :vYYYY.MM.DD and :latest.
    Downloads