- New SYNC STATUS card on the dashboard: every device with its last sync
result (✓ ok / ✗ error / — never) + ages, and an ok/error/never/last summary
- Sidebar: the sync spinner is now bright cyan on unselected (dark) rows and
dark on the selected (accent) row, so it's visible in both states
- m key toggles mount/unmount of the selected device via udisksctl
(resolves the block device from mount point or lsblk label)
- rsync-style device sync auto-mounts the target first
- mlove finalize unmounts via udisksctl, falling back to sudo -n umount
- keybar/help/README updated
- New Firmware::Sony mapped from firmware = "sony"; behaves like
rockbox/android (rsync to mounted volume, no fatsort)
- Green badge on dashboard; config parsing test included
- Real config: Sony NW-A55 + Walkman WM1 switched to firmware = "sony"
- Remove the separate Config tab (3 tabs now); each player's settings
(content type, mount point, music folder, fat order, sync command) are shown
in a PLAYER SETTINGS card on the dashboard
- Show mounted storage on the device card: total/free space (statvfs) plus a
usage gauge
- Add library + sync-pipeline cards and full-width SYNC PATH chain
- Update keybar/help/README for 3 tabs
- Use rsync --info=progress2 + --out-format=%n for device sync so the gauge
shows byte-weighted overall progress instead of per-completed-file jumps
- Fix oscillation: starting a new file no longer resets the bar to 0% (set_current_file
only updates the filename, never the percentage)
- Mirror step: per-file byte segments only update speed/ETA, not the overall pct
- Parse rsync live per-file byte progress (\r segments without xfr#) so the
progress bar advances continuously during large file transfers instead of
only per completed file; also stops logging those lines as noise
- Update the active step detail during scan/remove/copy phases
- smooth_pct helper combines completed files + current file's byte fraction
- unit tests for byte-progress parsing and smooth_pct
Full rewrite of dap-sync as a Rust TUI on ratatui:
- Tokyo Night theme, gradient title rule, rounded panels
- Devices sidebar with live mount status + last-sync age
- Dashboard / Sync / Logs / Config tabs
- Live sync engine: rclone mirror, NFC-aware diff, rsync
progress parsing, podkit + mlove (fatsort) finalize
- Abort-safe subprocess handling, persisted sync state