Changed version number from 1.12.2 to 1.12.3 (Visual only, patch was already applied before)
Wings-Dedup v6.5.21
Deduplicated backups that fix themselves.
New
- Applied Wings v1.12.3 fixes
- Database backup API. Wings now accepts server database dumps over HTTP and stores them as Borg or Kopia archives, the same way it handles server file backups. The Auto Backup panel addon uses this to schedule and retrieve server DB dumps without touching the filesystem directly.
- Transfer grace period. When a server moves to another node, this node keeps its backup archives for a configurable number of days (default 30) instead of deleting them on the spot. The setting is
transfer_grace_daysin the Wings config.- Transferred servers admin API.
GET /api/admin/transferred-serversreturns all servers in the grace period with their archive state and transfer timestamp.DELETE /api/admin/transferred-servers/:uuidpurges that server's archives early. The Auto Backup panel addon uses these to show the Transferred Servers tab.
Fixed
- Borg self-heal regression. The v6.5.0 lock-healing code was triggering during active
borg createruns and killing them. Fixed so it only runs when the lock is confirmed stale.- Borg native sync trailing bytes.
exec.Cmd.StdoutPipedrops the last chunk of the pipe buffer when a slow consumer reads it; replaced withos.Pipeto stop losing the end of large tarballs.- Borg lock handling. Added
--lock-waittoborg createso brief contention resolves itself instead of failing. Error messages now include the actual reason instead of just the SSH wrapper trailer.- Kopia DB backup arg order. Fixed the stdin source argument and snapshot tag arguments being passed in the wrong order, which caused DB backup archives to fail silently.
- Borg skip Compact when nothing was pruned. Previously Compact ran after every prune pass, including ones that removed zero archives, wasting I/O on no-ops.
- Borg remote lock broken prematurely. The unconditional
breakRemoteLockcall before every remote operation was causing false lock breaks during concurrent backups. Now only breaks a lock that is confirmed stale.- Restore event and orphan pagination. Restore completion events were not being published to the panel, and the orphan cleanup scan had an off-by-one on large repos.
What it does
- Deduplicated and compressed backups, so you store a lot less.
- Borg or Kopia, your call.
- Local, hybrid (local plus offsite), or remote storage.
- Automatic offsite copy for disaster recovery.
- Archives repair themselves when something goes wrong.
Binaries for AMD64 and ARM64, each with a SHA-256 checksum. Database backup and transfer grace period require Auto Backup v5.1.3 or later.
Changelog: wings-dedup v6.5.15
- Fixed: Remote Borg backup syncs crashing with
unexpected end of dataand entering endless retry loops.- Fixed: Excessive bandwidth waste caused by failed archives continuously retrying.
- Resolved: Silent truncation of large archives on nodes using
upload_bwlimit. This was caused by premature pipe closures before the rate-limited buffer could fully drain.- Under the Hood: Replaced
exec.Cmd.StdoutPipe()with an explicitly managedos.Pipe()to guarantee the buffer fully drains before closing. Addedsync_pipe_test.goto prevent future regressions.- Action Required: Update to v6.5.15. No configuration changes or manual cleanups are required; currently failing backups will automatically sync on their next attempt.
Wings-Dedup Changelog — v6.5.5 → v6.5.9
Restores
[] The frontend now learns about every restore outcome. Previously the panel could be left
thinking a Borg, Local, or Kopia restore was still running long after it had finished (success or
failure), because the completion event wasn't always being emitted.
[] Restores that get stuck on a frozen SSH connection now give up cleanly instead of hanging
forever. If your remote storage box quietly drops the connection mid-extract, the restore aborts
and reports the failure within seconds.
Remote backup sync (Borg)
[] Way fewer false-alarm Discord notifications. A noisy error classifier was treating temporary
network and lock issues as permanent failures and firing alerts for things that would have retried
successfully on their own.
[] The "lock.exclusive timeout" failure people were seeing when downloading remote backups while
other backup activity was running is gone. Each download now gets its own cache space and stops
fighting with concurrent operations.
[] On multi-node setups sharing one remote repository, the prophylactic "break stale lock" step
that used to run before every sync — and could clobber another node's in-progress sync — has been
removed. Sync activity from peers is no longer interrupted.
[] Failures to persist the sync queue to disk (e.g. disk full, permissions) now show up as actual
errors in the log instead of being silently lost on restart.
Pruning
- After a prune that didn't actually delete anything, the heavyweight Borg compact step no
longer runs — saving I/O and avoiding contention with active backups and syncs.
Server deletion cleanup
[] If your node is configured for Borg but Borg is currently disabled, deleting a server no longer
silently orphans its archives. The cleanup gate now reflects the real Borg enabled state.
Operational visibility
- TLS handshake errors no longer disappear into a black hole. If your node stops accepting panel
connections because of a cert problem — expired CA, mismatched SNI, bad certificate — switching
wings to Debug logging now surfaces the actual reason instead of just silently dropping the
message.
Wings-dedup
- Fixed backups failing (self-heal was interrupting active backups)
- Backups now wait properly when a sync is running instead of crashing
Fullsource updated with same fixes.
Autobackups:
Now correctly dispatches backups and prune jobs
Added DRC for kopia and added local only, and hybrid mode, longer timeout for borg create, separate lock file per borg export.
Wings-Dedup v6.5.0 - Wings 1.12.2 Update
Deduplicated backups that fix themselves.
New: backups recover on their own[/HEADID]
- If a node runs into a backup repo problem, Wings-Dedup now sorts it out and retries by itself.
No more SSHing in to clear a cache or break a lock at 3am.- It handles the usual culprits: stale caches, leftover locks, a missing remote repo, and
corruption, on both the local repo and the offsite one.- Archives don't get "permanently skipped" anymore. They keep retrying and repairing until they
go through.- The repairs are rate-limited, so a rough night doesn't turn into a flood of commands hammering
the node or your storage box.
Improved and fixed
- When a backup does fail, the log now tells you the actual reason instead of a generic exit
code.- Kopia is now level with Borg: local, hybrid, and remote (S3) modes, disaster-recovery restore,
and correct repo stats.- Deduplication and space-saved numbers are accurate.
What it does
- Deduplicated and compressed backups, so you store a lot less.
- Borg or Kopia, your call.
- Local, hybrid (local plus offsite), or remote storage.
- Automatic offsite copy for disaster recovery.
Binaries for AMD64 and ARM64, each with a SHA-256 checksum.
