Skip to content

Releases: hesner/punkbackup

PunkBackup v1.7.12

Choose a tag to compare

@hesner hesner released this 24 Sep 04:31

Minor

  • Added temporary internal diagnostic logging to help investigate why the "already had" counter on a run's summary rarely reflects real activity. No user-facing behavior change.

PunkBackup v1.7.11

Choose a tag to compare

@hesner hesner released this 24 Sep 03:48

Fixes

  • Fixed a real crash in the second-copy (mirror) sync: re-verifying a file that's already correctly present in the mirror could, in a specific edge case, cause the sync to fail outright with a database error instead of just confirming the file is fine. Re-recording an already-present file now always succeeds and simply keeps its record up to date.

See PLAN.md for the full technical write-up.

PunkBackup v1.7.10

Choose a tag to compare

@hesner hesner released this 24 Sep 03:39

Fixes

  • Fixed a real bug affecting every video with a known date: the internal date-correction step for videos (so tools like PhotoPrism show the real capture date) changed file bytes after the file's identity hash had already been recorded, so the recorded hash permanently stopped matching the file's real content. This had no visible effect on the primary backup itself, but made the second-copy (mirror) sync's verification fail on every affected video. New video uploads are recorded correctly from now on. Existing videos already backed up before this update keep their old recorded hash unless corrected separately -- this does not happen automatically as part of installing the update.
  • Second-copy (mirror) sync speed and progress-accuracy improvements from the last two releases are included here too (see v1.7.8 and v1.7.9 notes).

See PLAN.md for the full technical write-up.

PunkBackup v1.7.9

Choose a tag to compare

@hesner hesner released this 24 Sep 01:10

Fixes

  • The second-copy (mirror) sync progress counter now shows real, successfully-copied files, not attempts. Previously the counter advanced on every attempt, even ones that failed verification (e.g. under heavy drive contention) -- so a sync that was actually failing almost every file still looked like it was progressing normally. It now only advances on genuine successes, and shows a "⚠ N failed" indicator when verification failures are happening, so that's visible at a glance instead of requiring a manual investigation.

See PLAN.md for the full technical write-up.

PunkBackup v1.7.8

Choose a tag to compare

@hesner hesner released this 24 Sep 00:34

Improvements

  • Second-copy (mirror) sync is significantly faster. Measured on real data: syncing to a second USB drive was spending ~81% of its time on a database confirmation after every single file, not on copying or verifying content. That confirmation is now batched (every 25 files instead of every file), cutting real sync time by 4-5x with copying and hash verification completely unchanged -- same protection against corrupted copies as before. Safe to interrupt at any point, same as always.

See PLAN.md for the full technical write-up.

PunkBackup v1.7.7

Choose a tag to compare

@hesner hesner released this 23 Sep 11:23

Fixes

  • Fixed a real ~10 second UI freeze when switching between the Principal/Settings screens or when switching to PunkBackup's window from another app. Root cause: periodic status checks were doing disk/database work directly on the UI thread; they now run in the background, so the window stays responsive even when a destination drive has latency.

See PLAN.md for the full technical write-up.

PunkBackup v1.7.6

Choose a tag to compare

@hesner hesner released this 23 Sep 02:14

New

  • Activity log now shows which profile/device each line belongs to: every line is now formatted as date -> profile -> message (previously just date -> message). Lines not tied to any one profile (server start/stop, etc.) show "-". Useful once you have more than one device backing up (e.g. "iPhone de Hesner" and "iPad").

See PLAN.md for the full technical write-up.

PunkBackup v1.7.5

Choose a tag to compare

@hesner hesner released this 22 Sep 18:16

Fixes

  • Duplicate-video bug fixed: videos that went through Shortcuts' "Encode Media" retry (used when a video's direct upload arrives as 0 bytes) could create unbounded duplicate copies, since the re-encoded container's hash changes on every pass even though the actual video content doesn't. The backup engine now compares videos by their actual audio/video sample data, not the raw file hash.
  • /check now recognizes already-backed-up items that have no filename extension (a normal case for some Photos items). Previously these items always re-attempted upload on every backup run, even when already safely backed up — for problem videos, that meant repeating the costly Encode Media step every single run.

See PLAN.md for the full technical write-up.

PunkBackup v1.7.3

Choose a tag to compare

@hesner hesner released this 22 Sep 15:20

What's new since v1.6.0

New: optional second copy (mirror) backup. Each profile can now keep a second, independent copy of its whole backup on a different folder/USB — manual, one-way, verified by hash after every copy (catches a bad USB write instead of silently leaving a corrupted file). See the Usage Manual's "Second copy (optional)" section. If your main drive is ever lost, this second copy works as a real failover — just point the profile's main destination at it, no re-upload needed.

Fixed: a full destination drive could silently drop uploads. The server now always tells you clearly when a file couldn't be saved (disk full or otherwise), instead of failing silently.

Fixed: the second-copy sync could make an active backup look "stuck." Syncing the second copy while a real backup from the iPhone was still running could, in a specific timing case, make the app show that backup as finished early — the files kept uploading correctly the whole time, but the display was misleading. Fixed.

Fixed: log noise for paused/unconfigured profiles, and the startup log now always ends on "A darle" — any leftover notice from a previous session appears before it, never after.

New: the app now shows its own version — in the window title and in "⚙ Settings", useful when comparing against a manual or reporting an issue.

Documented: exactly how Avast interacts with PunkBackup. Avast scans the app for its first ~10 seconds after opening (it looks fine at first), then silently closes and reopens it. A backup started from the iPhone in that exact window gets cut off (nothing lost, just needs restarting) — see the Installation Manual for the full explanation and the one-time fix (an Avast exception) that makes it stop happening.

Docs: the .shortcut file is now a real downloadable release asset (below) with a direct link in the iPhone Setup Manual, the "Allow Untrusted Shortcuts" iOS step is documented, and the manual-build walkthrough moved to a separate alternate guide so the main iPhone Setup Manual stays short. Real backup-speed numbers (WiFi upload and local USB-to-USB mirror sync) are now published in the Troubleshooting Manual, measured from this project's own real usage, not estimated.


See v1.1.0 through v1.6.0 release notes for everything before this.

PunkBackup v1.6.0

Choose a tag to compare

@hesner hesner released this 18 Sep 22:13

What's new since v1.5.0

Fixed: videos showing today's date in other apps (PhotoPrism, Finder, etc.)

When a video needs the automatic retry (fails 0-byte on first upload), the retry process was leaving the video's own internal date stamp set to the day of the retry instead of the real recording date — even though PunkBackup's own folder placement was always correct. The server now corrects that internal date automatically for every video it receives, validated against a real device video before rolling out (only the exact date fields change — nothing else about the video, including quality, is touched). Every previously-affected video already backed up has also been corrected retroactively.

See the Troubleshooting Manual for details.


See v1.1.0 through v1.5.0 release notes for everything since v1.0.0 (server-start verification with auto-retry, extension/EXIF content-based fallbacks, persistent activity log, configurable Preferences panel, and more).