Files
dap-tui/src
Sebastian c406e31a1e mirror: fix cloud→local rclone progress (gauge stuck at 0%)
Real `rclone sync --progress --stats 1s` output piped (non-TTY) contains
two traps that made the mirror gauge show no progress:

- after the byte-weighted `Transferred: 8 MiB / 80 MiB, 10%, …` line,
  rclone prints a unit-less file-count summary `Transferred: 0 / 6, 0%`
  on every tick; the parser accepted it and reset done/total/pct to 0
  immediately after each real update
- rclone does not newline-terminate the last `Transferring:` entry, so
  the next stats line arrives glued to a per-file line
  (` * file: 51% / 8 MiB, … -Transferred: 32 MiB / 80 MiB, 40%, …`),
  which parsed as garbage with pct 0 (after the first tick the only byte
  lines arrive this way)

parse_rclone_stats now takes the text after the last `Transferred:`
marker and requires byte units, so the count summary and glued variants
are handled. Per-file lines are parsed into the mirror's "current file"
display, and progress-block noise (Checks/Elapsed/Transferring/count
summary) is consumed instead of spamming the log every second.

Tests: replay of captured multi-tick rclone blocks (keeps 40%, never 0%),
glued-line and summary rejection cases, plus a TestBackend render test
asserting the mirror gauge, bytes and current file appear on the Sync tab.
2026-09-10 19:38:34 +02:00
..