Skip to content

Releases: Comms-Church/comms-church-pco

v1.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Jul 16:44

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Jul 10:36

Full Changelog: v1.1.0...v1.2.0

v1.1.0 — Compatibility, Cache & Calendar Fixes

Choose a tag to compare

@AddisonRoberts AddisonRoberts released this 02 Jul 12:45

What's Changed

This release is a full audit-and-hardening pass. Every PHP file is now lint-verified, and the cache and calendar systems are covered by functional tests.

🛡️ Compatibility & Stability

  • PHP 7.4 support — Added polyfills for str_contains() / str_ends_with(), which previously caused fatal errors on PHP < 8.0 (still common on shared church hosting). Also added a Requires PHP header and a graceful deactivation guard, so old servers get an admin notice instead of a white screen.
  • Cache system rewrite — Cache flushes previously destroyed the stale fallback copies the circuit breaker depends on, along with the updater's release cache. Invalidation is now generation-based: flushes are instant, and fallback data survives by design.
  • Stale data on any API failure — Visitors now see slightly-old event data instead of an error whenever Planning Center is unreachable, not just when rate-limited.
  • TTL floor — An empty cache-duration setting previously created never-expiring caches. Minimum is now 60 seconds.

📅 Add to Calendar Fixes

  • Fixed double URL-decoding that corrupted event titles containing % or +
  • All-day events now use the RFC 5545 exclusive end date (previously rendered a day short in some calendar apps)
  • Calendar download links are now HMAC-signed — the public .ics endpoint only serves files the site itself generated

⚡ Performance

  • Front-end CSS/JS now load only on pages that actually contain PCO content
  • Differently-styled blocks showing the same events now share a single cached API fetch
  • Category-filtered lists fetch a full API page so results aren't silently truncated

✨ Polish

  • Calendar dropdown flips downward when near the top of the viewport instead of clipping offscreen
  • Block editor color panels now show whether a custom or global color is active, with one-click reset to global
  • Webhook endpoint throttles failed-authentication logging
  • New uninstall.php — deleting the plugin removes all stored options, API credentials, and caches
  • Added prefers-reduced-motion support and visible keyboard-focus styles

Full Changelog: v1.0.0...v1.1.0

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@AddisonRoberts AddisonRoberts released this 18 Jun 15:54