Skip to content

Releases: stealth-factory/r2-stateless-media-offloader

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 18 Jun 09:19
b376ed7

0.3.4 (2026-06-17)

Bug Fixes

  • front-end fatal — wp_tempnam() not loaded outside wp-admin (#16) (dcd95c5)

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 14 Jun 06:21
4f4271b

0.3.3 (2026-06-14)

Documentation

  • rename GitHub org stealths-labs → stealth-src (#14) (429eaa0)

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 11 Jun 16:45
41d34c6

0.3.2 (2026-06-11)

Documentation

  • revise README cover poster (5565999)
  • update README cover poster (199d6d2)

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 11 Jun 16:36
073a9b5

0.3.1 (2026-06-11)

Refactoring

  • rename plugin to "R2 Stateless Media Offloader" (c7422a4)

Documentation

  • add brand logo/icon assets + centered README hero (f3b0249)
  • add developer wiki — hooks & WP-CLI reference (a338115)
  • readme: add commas after "In CDN mode" / "In Stateless mode" (6215716)
  • stop implying the plugin is "S3-compatible" (it's R2-only) (82dcf0c)
  • use cover poster as the README hero banner (60a3222)

v0.3.0

Choose a tag to compare

@wiiiimm wiiiimm released this 10 Jun 11:16

The first release packaged for general use. An installable zip is attached below — it unpacks to a single r2-stateless-media-offload/ directory, ready for wp-content/plugins/ or the Plugins → Add New → Upload screen.

What's new

  • Uploads no longer touch R2 during image processing. Thumbnail generation runs uninterrupted; one batched upload ships the original and every size afterwards. Dramatically friendlier to small containers and shared-CPU hosts.
  • A URL never precedes its object. Media URLs only switch to the CDN once every file is confirmed present in R2 — a fresh upload can never render a CDN URL that 404s (or poison an edge cache with that 404).
  • Interrupted uploads self-heal. WordPress's REST post-process resume is fully supported via a shutdown backstop; metadata-less programmatic inserts offload too.
  • Evidence-based Stateless cleanup. Local copies are removed at request end only when the attachment finished fully synced; regeneration sources (image and PDF originals) stay on disk until completion is proven. Multisite blog-aware.

Docs

All changes reviewed across multiple rounds of automated review (CodeRabbit, Cursor Bugbot, Codex, Blocks) with every finding fixed or explicitly dispositioned.

🤖 Generated with Claude Code

v0.2.1

Choose a tag to compare

@wiiiimm wiiiimm released this 10 Jun 03:17

Patch release — five fixes from the post-v0.2.0 review round on the vendor release PR:

  • wp r2offload reset aborts with a clear error if a database delete fails mid-run (re-run to resume) instead of reporting success with rows left behind.
  • wp r2offload pull accepts files already on disk when validating legacy registrations (CDN mode / partial-restore re-runs) instead of erroring, and its dry-run / restored counts no longer include files that needed no download.
  • Retry All button is restored when every retry fails, rather than staying stuck disabled until reload.
  • The Start confirmation now also fires when clicked before the first status poll completes (server-side bootstrap), and after Clear All Errors.

🤖 Generated with Claude Code

v0.2.0

Choose a tag to compare

@wiiiimm wiiiimm released this 10 Jun 02:17

Highlights

  • Background migration UI (Media → Migrate to R2): resumable WP-Cron-driven runs with live progress, Pause/Resume/Stop, an activity log, and a "How does the background job work?" explainer. Single-pass: no automatic re-scans on large libraries.
  • Plaintext secret key storage (SWR-383): survives WordPress updates and salt rotation; DB value overrides the R2OFFLOAD_SECRET_KEY constant; legacy encrypted blobs auto-migrate on the next settings save.
  • Safe deactivation CLI: wp r2offload pull (restore everything to local uploads, then clear registration — keyset pagination, legacy-manifest derivation, subdir-size-safe path mapping) and wp r2offload reset (clear registration only, chunked with cache invalidation).
  • Error management: per-error Retry (mode-aware, lock-held, CAS-persisted), Retry All, Clear All Errors, and a Start confirmation when unresolved errors exist.
  • Fixes: stateless partial migrations no longer un-register attachments whose variants exist only in R2; 404 source files count as skipped rather than errors; connection loss auto-pauses the run.

All changes were reviewed across PRs #3#6, #9, #10 with multiple rounds of automated review (CodeRabbit, Cursor Bugbot, Codex, Blocks) — every finding fixed or explicitly dispositioned.

🤖 Generated with Claude Code