Files
wp-fedistream/CHANGELOG.md
magdev f3cd19efe0 feat: Add license management and tabbed settings (v0.3.0)
- Implement license management using magdev/wc-licensed-product-client
- Reorganize settings page into License, Default Settings, Integrations tabs
- Add license validation and activation via AJAX
- Frontend features require valid license (admin works always)
- Update translations with German (de_CH) for license strings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:03:05 +01:00

6.5 KiB

Changelog

All notable changes to WP FediStream will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.3.0] - 2026-01-29

Added

  • License management integration using magdev/wc-licensed-product-client package
  • Tabbed settings page with License, Default Settings, and Integrations tabs
  • License validation and activation via AJAX with real-time status updates
  • License status banner showing current license state and expiration
  • License checks for frontend components (unlicensed sites show message instead of content)

Changed

  • Reorganized settings page into three tabs for better organization
  • Frontend features (player, shortcodes, ActivityPub) now require valid license
  • Admin/backend functionality works regardless of license status

Security

  • Server secret stored securely in WordPress options
  • HMAC signature verification for license server responses
  • Nonce verification for all license AJAX operations

0.2.0 - 2026-01-28

Added

  • Settings and Dashboard links on the WordPress Plugins page for quick access
  • Comprehensive user guide (USERGUIDE.md) covering installation, configuration, and all features

0.1.1 - 2026-01-28

Fixed

  • WooCommerce product types (FediStream Album/Track) not appearing in product type selector
    • Fixed timing issue where WooCommerce integration hooks were registered too late during plugins_loaded

0.1.0 - 2026-01-28

Initial release of WP FediStream - a WordPress plugin for streaming music over ActivityPub.

Added

Core Plugin Structure

  • Plugin structure with WordPress Plugin API
  • Composer setup with Twig 3.0 template engine
  • Internationalization support with .pot template and German (de_CH) translation

Custom Post Types

  • fedistream_artist - Artist/band profiles with social links, biography, and member management
  • fedistream_album - Albums, EPs, singles, and compilations with release metadata
  • fedistream_track - Individual tracks with audio upload, duration, BPM, key, and ISRC codes
  • fedistream_playlist - User-created playlists with drag-drop ordering

Custom Taxonomies

  • fedistream_genre - Hierarchical music genres with default terms
  • fedistream_mood - Non-hierarchical mood tags for tracks and playlists
  • fedistream_license - Copyright and Creative Commons license options

User Roles

  • fedistream_artist - Manage own content, upload files, view stats
  • fedistream_label - Manage all content, taxonomies, and view all statistics

Admin Interface

  • Dashboard with statistics and quick actions
  • Organized menu under "FediStream"
  • Meta boxes for all post types with full metadata support
  • Settings page for ActivityPub and WooCommerce configuration
  • Custom list table columns with sortable fields
  • Artwork thumbnails, artist links, and duration display

Frontend Display

  • Archive templates for all post types and taxonomies
  • Single templates with full metadata display
  • Card partials for responsive grid layouts
  • Comprehensive CSS styling with custom properties for theming

Shortcodes

  • [fedistream_artist] - Display artist profile
  • [fedistream_album] - Display album with tracklist
  • [fedistream_track] - Display track with player
  • [fedistream_playlist] - Display playlist with tracks
  • [fedistream_latest_releases] - Recent releases grid
  • [fedistream_popular_tracks] - Popular tracks list
  • [fedistream_artists] - Artists grid
  • [fedistream_player] - Audio player widget
  • [fedistream_library] - User library page

Widgets

  • Recent Releases Widget
  • Popular Tracks Widget
  • Featured Artist Widget
  • Now Playing Widget

Audio Player

  • Full playback controls (play, pause, next, previous)
  • Queue management with add, clear, shuffle functionality
  • Repeat modes (none, all, one)
  • Shuffle mode with Fisher-Yates algorithm
  • Progress bar with seek functionality
  • Volume control with mute toggle and localStorage persistence
  • Media Session API integration for system controls
  • Play count tracking via AJAX

ActivityPub Integration

  • Integration with WordPress ActivityPub plugin
  • Artists represented as Person/Group actors
  • RSA key generation for HTTP Signatures
  • Webfinger support for artist discovery
  • Object transformers for tracks, albums, and playlists
  • Inbox handling for Follow, Like, Announce, and Create activities
  • Outbox publishing with Create, Update, and Delete activities
  • Follower management with shared inbox deduplication
  • REST API endpoints for actors, inbox, outbox, and collections

WooCommerce Integration (Optional)

  • Album product type extending WC_Product
  • Track product type extending WC_Product
  • Multiple download formats (MP3, FLAC, WAV, AAC, OGG)
  • Pricing models: Fixed, Pay What You Want, Name Your Price
  • Secure digital delivery with purchase verification
  • Album ZIP downloads with all tracks and cover art
  • Streaming access control based on purchases
  • 30-second preview for non-purchasers
  • Purchase tracking database table

User Library

  • Favorite tracks, albums, and playlists
  • Follow local artists
  • Listening history tracking with clear option
  • Library page with tabs (Favorites, Artists, History)
  • Filter favorites by content type
  • AJAX endpoints for all library operations

Notification System

  • In-app notifications with admin bar indicator
  • Email notifications with HTML templates
  • Notification types: new_release, new_follower, fediverse_like, fediverse_boost, playlist_added, purchase, system
  • Event triggers for releases, follows, and Fediverse interactions
  • User preference settings for email notifications
  • Real-time polling and mark as read functionality

Database Tables

  • fedistream_plays - Track play statistics
  • fedistream_playlist_tracks - Playlist-track relationships
  • fedistream_followers - ActivityPub followers
  • fedistream_purchases - WooCommerce purchase tracking
  • fedistream_favorites - User favorites
  • fedistream_user_follows - Local artist follows
  • fedistream_listening_history - Track play history
  • fedistream_notifications - User notifications
  • fedistream_reactions - Fediverse reactions (likes, boosts)