-
Release 0.6.0
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 50sreleased this
2026-02-02 21:55:53 +00:00 | 0 commits to main since this releaseChanged
- Replaced Twig with native PHP templates - Major refactoring to remove external dependency
- Removed
twig/twigfrom 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
Removed
- Twig template engine dependency
- All
.twigtemplate files (replaced with.phpequivalents) - Twig-related initialization code in Plugin.php
Downloads
- Replaced Twig with native PHP templates - Major refactoring to remove external dependency
-
Release 0.5.1
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 1m2sreleased this
2026-02-02 19:50:10 +00:00 | 6 commits to main since this releaseAdded
- 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
- Detects
Downloads
- Localhost license bypass - License check is automatically bypassed on local development environments
-
Release 0.5.0
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 1m0sreleased this
2026-02-02 19:46:27 +00:00 | 7 commits to main since this releaseAdded
- 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
- Content metrics:
Downloads
- Prometheus Metrics Integration - Expose FediStream metrics for monitoring
-
Release 0.4.9
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 1m1sreleased this
2026-02-02 19:06:04 +00:00 | 10 commits to main since this releaseChanged
- 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
- Reverted nuclear option - Restored conditional the_content filter usage
-
Release 0.4.8
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 1m2sreleased this
2026-02-02 18:59:10 +00:00 | 11 commits to main since this releaseFixed
- 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', ...)orget_the_excerpt() - FediStream posts don't need shortcode processing in their content anyway
- This guarantees no recursion through WordPress hook system
Downloads
- Nuclear option: NEVER apply the_content filter - Completely removed the_content filter usage
-
Release 0.4.6
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 1m2sreleased this
2026-02-02 16:09:21 +00:00 | 13 commits to main since this releaseFixed
- Page template loading lock - Block ALL shortcode rendering during page template loading
- Added
$loading_page_templateflag 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)
- Added
Downloads
- Page template loading lock - Block ALL shortcode rendering during page template loading
-
Release 0.4.5
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 57sreleased this
2026-02-02 16:04:42 +00:00 | 14 commits to main since this releaseFixed
- 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
- Added render depth tracking in
Downloads
- Multi-layer recursion protection - Added additional safeguards against infinite Twig rendering
-
Release 0.4.4
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 58sreleased this
2026-02-02 15:56:58 +00:00 | 15 commits to main since this releaseFixed
- Fix excerpt-triggered recursion -
get_the_excerpt()internally callsthe_contentfilter when generating auto-excerpts- When in shortcode context, now uses raw
$post->post_excerptor generates simple excerpt withwp_trim_words()instead - This was the remaining recursion path causing memory exhaustion in
class-wp-hook.php
- When in shortcode context, now uses raw
Downloads
- Fix excerpt-triggered recursion -
-
Release 0.4.3
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 58sreleased this
2026-02-02 15:52:18 +00:00 | 16 commits to main since this releaseFixed
- Further memory leak fix - v0.4.2 fix was still incomplete
- Changed
$in_shortcode_contextboolean to$shortcode_context_depthcounter to properly handle nested shortcodes - Added shortcode context protection to
template-wrapper.phpfor single page views - This fixes the remaining recursion path where
the_contentfilter was still being applied when viewing single FediStream posts (artists, albums, tracks, playlists)
- Changed
Downloads
- Further memory leak fix - v0.4.2 fix was still incomplete
-
Release 0.4.2
StableAll checks were successfulCreate Release Package / build-release (push) Successful in 57sreleased this
2026-02-02 15:44:56 +00:00 | 17 commits to main since this releaseFixed
- Complete fix for memory leak - v0.4.1 fix was incomplete
- Added
$in_shortcode_contextflag 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_contentfilter is always skipped to prevent recursive shortcode processing - This prevents infinite recursion when post content contains FediStream shortcodes
- Added
Downloads
- Complete fix for memory leak - v0.4.1 fix was incomplete
You've already forked wp-fedistream