Updated People search results to use alphabetical ordering and a maximum of 50 entries.
Reworked the automatic radio queue selection to take recent tracks, recent productions, the current track and the existing queue into account when building future rotation.
Simplified radio priority handling by removing the obsolete numeric priority system and relying on explicit queue ordering instead.
Updated administrator and user radio requests so they are inserted behind the already announced next track rather than replacing it.
Simplified queue items by removing temporary request metadata once it is no longer needed.
Centralized queue source handling and track file validation across the radio scheduler.
Improved queue persistence reporting so save failures are now logged instead of being silently ignored.
Hardened queue JSON generation against invalid UTF-8 data.
Updated the emergency automatic track fallback to use the same recent-track protection as normal automatic selection while still retaining a last-resort unrestricted fallback.
Updated recent-track history handling so radio jingles are not treated as ordinary soundtrack tracks.
Simplified the radio daemon by removing obsolete streaming, waiting and metadata routines left over from previous radio implementations.
Removed remaining legacy YouTube-stream and overlay fallbacks from the public radio system.
Simplified the public radio configuration and removed obsolete client-side configuration values and state variables.
Cleaned obsolete debug logging and unused callbacks from the public radio JavaScript.
Updated listener reporting to distinguish the website listener limit from the Icecast listener count.
Simplified Radio Chat refreshes: the chat now explicitly reloads the current 100-message window instead of pretending to use an incremental message API.
Simplified Radio Chat responses by removing unused message counts, timestamps and message identifiers.
Changed Radio Chat posting so message submission and message retrieval are handled separately: the message is saved first, then the chat display is refreshed.
Improved Radio Chat SQL error propagation so database failures are reported as failures rather than being converted into an empty chat or a fake cooldown.
Removed the old 24-hour form lifetime restriction from Radio Chat, allowing radio pages to remain open indefinitely.
Retained the existing smart chat scrolling behavior while simplifying message rendering.
Cleaned several obsolete helper functions and unused queue-management routines from the radio libraries.
Reduced duplicated source-detection and queue-normalization logic throughout the radio scheduler.
Improved radio queue and Icecast handoff JSON handling for malformed character data.