What's new
- Refresh mirrors — re-render a mirror in place (
kage clone --refresh) from the detail page, with live WebSocket progress - Scheduled auto-refresh — per-mirror daily/weekly schedules run by a background thread; outcomes persist across restarts
- Advanced clone options — scope prefix, excluded paths (repeatable
--exclude), keep media/PDFs, mobile readability, force re-clone - Pack to binary viewer — single-file executable archives alongside ZIM, with
--incrementalre-pack support - Download artifacts — packed ZIM/viewer files download straight from the detail page
Fixes
- + New Clone button had its own Alpine
x-dataisland since v0.1.0 and could never open the clone panel - Job ID collisions when two jobs started in the same second
- GLM 5.2 code review pass: XSS hardening, WebSocket + jobs API auth, persistent session secret, bounded job registry, streaming file serving, scheduler restart reconciliation, and more (see 21a43e8)
Stats
102 tests passing. Full changelog: v0.1.1...v0.2.0