• v0.6.0 1f256b236c

    Release 0.6.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 50s
    Stable

    magdev released this 2026-02-02 21:55:53 +00:00 | 0 commits to main since this release

    Changed

    • Replaced Twig with native PHP templates - Major refactoring to remove external dependency
      • Removed twig/twig from composer.json dependencies
      • All 25 Twig templates converted to native PHP templates
      • New render() method in Plugin.php uses PHP include with output buffering
      • New render_partial() helper method for including partials from within templates
      • Templates support theme overrides via fedistream/ directory in themes
      • Improved performance by eliminating Twig compilation overhead
      • Reduced plugin size by removing Twig and its dependencies (symfony/polyfill-ctype, symfony/polyfill-mbstring)

    Removed

    • Twig template engine dependency
    • All .twig template files (replaced with .php equivalents)
    • Twig-related initialization code in Plugin.php
    Downloads
  • v0.5.1 0627dd0db7

    Release 0.5.1
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m2s
    Stable

    magdev released this 2026-02-02 19:50:10 +00:00 | 6 commits to main since this release

    Added

    • Localhost license bypass - License check is automatically bypassed on local development environments
      • Detects localhost, 127.0.0.1, ::1
      • Detects common local TLDs: .local, .test, .localhost, .dev.local
      • Allows full plugin functionality without license on development sites
    Downloads
  • v0.5.0 df3b8a7ec2

    Release 0.5.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m0s
    Stable

    magdev released this 2026-02-02 19:46:27 +00:00 | 7 commits to main since this release

    Added

    • Prometheus Metrics Integration - Expose FediStream metrics for monitoring
      • Content metrics: fedistream_content_total (by type/status), fedistream_genres_total, fedistream_moods_total
      • Engagement metrics: fedistream_plays_total, fedistream_plays_today, fedistream_favorites_total, fedistream_local_follows_total, fedistream_listening_history_entries
      • User metrics: fedistream_users_with_library, fedistream_users_following_artists, fedistream_notifications_total, fedistream_notifications_pending
      • WooCommerce metrics (conditional): fedistream_purchases_total, fedistream_customers_total, fedistream_products_total
      • ActivityPub metrics (conditional): fedistream_activitypub_followers_total, fedistream_activitypub_followers_by_artist, fedistream_activitypub_reactions_total
      • New setting in Integrations tab to enable/disable Prometheus metrics
      • Requires WP Prometheus plugin to be active
    Downloads
  • v0.4.9 bdc11d8769

    Release 0.4.9
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m1s
    Stable

    magdev released this 2026-02-02 19:06:04 +00:00 | 10 commits to main since this release

    Changed

    • Reverted nuclear option - Restored conditional the_content filter usage
      • get_post_data() now uses the_content filter only when NOT in shortcode context, NOT at depth > 1, and NOT loading page template
      • All other protections remain in place (render depth, page template loading flag, main template lock, shortcode context)
      • Memory leak investigation to be continued later
    Downloads
  • v0.4.8 35ad390aeb

    Release 0.4.8
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m2s
    Stable

    magdev released this 2026-02-02 18:59:10 +00:00 | 11 commits to main since this release

    Fixed

    • Nuclear option: NEVER apply the_content filter - Completely removed the_content filter usage
      • get_post_data() now ALWAYS strips shortcodes and uses raw content
      • NEVER calls apply_filters('the_content', ...) or get_the_excerpt()
      • FediStream posts don't need shortcode processing in their content anyway
      • This guarantees no recursion through WordPress hook system
    Downloads
  • v0.4.6 a41eddbc49

    Release 0.4.6
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m2s
    Stable

    magdev released this 2026-02-02 16:09:21 +00:00 | 13 commits to main since this release

    Fixed

    • Page template loading lock - Block ALL shortcode rendering during page template loading
      • Added $loading_page_template flag in TemplateLoader
      • template-wrapper.php now sets this flag before loading theme header/footer
      • Shortcodes::render_template() checks this flag and returns early if set
      • This prevents any recursion triggered by theme components, widgets, or other plugins during page template loading
      • Main template rendering still works (uses Plugin::render() directly, not through Shortcodes)
    Downloads
  • v0.4.5 eb85870909

    Release 0.4.5
    All checks were successful
    Create Release Package / build-release (push) Successful in 57s
    Stable

    magdev released this 2026-02-02 16:04:42 +00:00 | 14 commits to main since this release

    Fixed

    • Multi-layer recursion protection - Added additional safeguards against infinite Twig rendering
      • Added render depth tracking in Plugin::render() with max depth of 5
      • Strip shortcodes from content when in shortcode context (prevents any later do_shortcode() calls from triggering recursion)
      • This addresses the Twig StagingExtension.php recursion error
    Downloads
  • v0.4.4 6988e49287

    Release 0.4.4
    All checks were successful
    Create Release Package / build-release (push) Successful in 58s
    Stable

    magdev released this 2026-02-02 15:56:58 +00:00 | 15 commits to main since this release

    Fixed

    • Fix excerpt-triggered recursion - get_the_excerpt() internally calls the_content filter when generating auto-excerpts
      • When in shortcode context, now uses raw $post->post_excerpt or generates simple excerpt with wp_trim_words() instead
      • This was the remaining recursion path causing memory exhaustion in class-wp-hook.php
    Downloads
  • v0.4.3 166a5e6f7c

    Release 0.4.3
    All checks were successful
    Create Release Package / build-release (push) Successful in 58s
    Stable

    magdev released this 2026-02-02 15:52:18 +00:00 | 16 commits to main since this release

    Fixed

    • Further memory leak fix - v0.4.2 fix was still incomplete
      • Changed $in_shortcode_context boolean to $shortcode_context_depth counter to properly handle nested shortcodes
      • Added shortcode context protection to template-wrapper.php for single page views
      • This fixes the remaining recursion path where the_content filter was still being applied when viewing single FediStream posts (artists, albums, tracks, playlists)
    Downloads
  • v0.4.2 fedab21c2a

    Release 0.4.2
    All checks were successful
    Create Release Package / build-release (push) Successful in 57s
    Stable

    magdev released this 2026-02-02 15:44:56 +00:00 | 17 commits to main since this release

    Fixed

    • Complete fix for memory leak - v0.4.1 fix was incomplete
      • Added $in_shortcode_context flag to TemplateLoader to track when we're rendering shortcodes
      • All shortcode render methods now call enter_shortcode_context() before loading data
      • When in shortcode context, the_content filter is always skipped to prevent recursive shortcode processing
      • This prevents infinite recursion when post content contains FediStream shortcodes
    Downloads