Changelog: From May 1 through 12, 2026

New

  • Realtime alert emails use a single body block — Email events render through one cleanly assembled body instead of stitched-together slots, producing more consistent formatting.

Improved

  • Daily sync skips plugins with no changelog file — Plugins flagged as having no dedicated changelog are no longer retried on every sync, cutting wasted work and ops noise.
  • Daily sync repair pass deduplicates by slug — The repair pass no longer attempts the same plugin twice in one run.
  • Changelog parser accepts both header styles — Plugins using ## Changelog (Markdown-style) headers are now detected alongside the standard format.
  • Daily-sync holds back last-updated date on SVN fetch failure — When the readme SVN fetch fails, the plugin’s last_updated timestamp is preserved instead of being overwritten with a wrong value.
  • Quieter daily-digest framing for N=1 events — When the digest contains only one event, the subject and body framing now agree instead of saying “1 update” with multi-event copy.
  • Ops report renders repair-budget warning correctly — The repair-budget hit warning now displays even when no null hashes were found.

Fixed

  • Daily sync no longer crashes during its repair pass — A fault that broke daily sync runs is resolved.
  • Carry-forward lookups now read each column independently — A missing piece of the change-detection setup was restored, so per-column repairs work as designed.

Rivale updates

Get new posts and the Rivale Diff, in your inbox

New posts when they go out, short notes when something new ships, and the monthly report about the WordPress plugin market. No account needed.