Skip to content

feat: show determinate backup progress#35

Draft
AJV20 wants to merge 2 commits into
momenbasel:mainfrom
AJV20:feat/backup-progress-bar
Draft

feat: show determinate backup progress#35
AJV20 wants to merge 2 commits into
momenbasel:mainfrom
AJV20:feat/backup-progress-bar

Conversation

@AJV20

@AJV20 AJV20 commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a determinate backup progress fraction to BackupViewModel
  • show a linear progress bar and percentage label when backup tools report percentages
  • forward pymobiledevice3/idevicebackup2 stderr progress into the UI while preserving failure diagnostics
  • verify successful backup commands actually produce complete backup metadata before reporting success
  • track fallback idevicebackup2 backup/restore processes so cancellation can stop the correct process
  • harden message exports: CSV escaping/formula neutralization, MBOX multi-attachment output, MBOX header sanitization, and specific Messages readiness copy when manifest selection fails
  • handle decimal percentage output in the shared progress parser

Verification

  • Scripts/regression/run.py (37 checks)
  • swift build
  • swift build -c release
  • bash Scripts/build.sh
  • launched .build/Phosphor.app and verified a visible window

Device detection note

Live probes on this Mac currently return no backup-capable iOS device over USB, network usbmux, libimobiledevice, or mobdev2 Bonjour, so no live backup/export run was possible in this pass.

@AJV20 AJV20 force-pushed the feat/backup-progress-bar branch 2 times, most recently from c98597b to 1650eec Compare July 5, 2026 17:33
@AJV20 AJV20 marked this pull request as draft July 6, 2026 02:48
@AJV20 AJV20 force-pushed the feat/backup-progress-bar branch from 1650eec to 7710a5c Compare July 6, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant