Skip to content

Trickle 0.1.14

Choose a tag to compare

@jonschr jonschr released this 31 Oct 16:27
· 8 commits to master since this release

Trickle 0.1.14 adds resumable continuous streaming as the default transfer method, reducing remote request overhead while retaining the immutable source snapshots and verification used by chunked transfers.

  • Resume interrupted downloads and uploads at the receiver’s saved byte offset; verify the complete snapshot digest before staging or application.
  • Make All media skip matching year/month/file checksums by default; add explicit Force retransfer and --force-media while retaining saved settings and the legacy compare alias.
  • Keep 512 KiB chunks selectable in the dashboard and CLI (--transport=chunks); recent transfers retain their method.
  • Preserve matching plugin/theme folder skips in mixed selections and oversized-plan fallbacks; validate pinned folder tokens and negotiate older-source compatibility.
  • Replace paginated plugin/theme checksum listings with one compressed manifest, skipping per-file comparisons for missing destination folders.
  • Add bounded backoff for safe reads/transfer steps, honor server Retry-After cooldowns, and retain paused sessions. Apply requests are never blindly replayed.
  • Retry busy source generation separately from network failures; recognize older source-lock errors and retain bounded recovery.
  • Refresh older recovery loaders after authenticated upgrades and preserve the full activation list on the first request.
  • Expose sanitized request metrics and an automation user-agent filter.
  • Detect stalled snapshot downloads and resume saved bytes without limiting the total duration of a healthy stream.
  • Show PHP compatibility notices naming the plugin/theme, destination PHP version, failing file and line.
  • Fix primary-key discovery on MariaDB; preserve compound-key ordering for bounded export pages.

Validation: 321 backend checks, JavaScript workflow/selection/version/progress/compatibility-notice regressions, and browser checks of both transport choices. Tests include interrupted signed-TLS downloads/uploads, automatic resume, corrupted-prefix rejection, snapshot ownership/digest checks, rate-limit cooldowns, Git/environment exclusions, activation, rollback, retained backups, and JSON-based updates.

Live pull validation: a 1 GB archive verified in one continuous request on two PHP runtimes; a full local pull recovered from a deliberate timeout and a real SSL EOF. Independent file/table/activation checks passed. Fresh and warm incremental pulls passed, including year-level media skips. A real stalled-TLS fixture verified timeout and byte-offset recovery. No migration pushes were performed in this comparison.

Source snapshot generation and final staging remain foreground PHP operations; wider hosting and concurrent-write testing remains necessary.

Live reliability follow-up: 11 completed verified pulls across SiteDistrict and Flywheel, including seven of seven post-fix runs. A fresh large media pull recovered automatically from a real EOF and busy-source responses. Flywheel tests exclude one inactive PHP-incompatible theme; an earlier activation result was invalidated and rerun against an independent WordPress administrator check. No source-content pushes were performed. A separate full Classic Editor pull transferred six files in 9.3 seconds including verification/cleanup (10.6 seconds with WordPress startup), with one EOF recovered automatically.