Add persistent flash messages and M3U8 single-stream mode#88
Merged
thehack904 merged 11 commits intodevfrom Feb 16, 2026
Merged
Add persistent flash messages and M3U8 single-stream mode#88thehack904 merged 11 commits intodevfrom
thehack904 merged 11 commits intodevfrom
Conversation
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix flash message display duration and behavior
Add persistent flash messages and single-stream M3U8 support to tuner management
Feb 16, 2026
Co-authored-by: thehack904 <35552907+thehack904@users.noreply.github.com>
Copilot
AI
changed the title
Add persistent flash messages and single-stream M3U8 support to tuner management
Add persistent flash messages and M3U8 single-stream mode
Feb 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Validation errors (duplicate names, invalid URLs) were flashing too quickly for users to read. Single-stream M3U8 support existed in backend but had no dedicated UI path, forcing users to duplicate URLs across both fields.
Changes
Flash message persistence
Templates/CSS:
JavaScript auto-dismiss:
Single-stream M3U8 mode
requiredattributestuner_mode=single_streamBackend handling (
app.py):Screenshots
Standard mode (default):

Single stream mode active:

Backward compatibility
Existing tuners continue working unchanged. Standard mode remains the default.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
example.com/usr/bin/python3 python3 app.py(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
Fix Flash Message Visibility & Add M3U8 Single-Stream Field
Objective
Improve user experience by making validation error messages persist longer and adding a dedicated field for single-stream M3U8 URLs.
Issues to Address
1. Flash Messages Disappear Too Quickly
Problem: Validation error messages (duplicate name, invalid URL, unreachable URL) flash so quickly users can't read them.
Solution:
Files to modify:
templates/base.htmlortemplates/change_tuner.html- Update flash message display logicstatic/css/change_tuner.cssor main CSS - Add styles for persistent messagesImplementation details:
2. Add Dedicated M3U8 Single-Stream Field
Problem: Single-stream M3U8 support is hidden. Users need a clear option to add single-stream sources.
Solution:
Add a third input option in the tuner management UI:
UI Design:
Implementation Requirements:
Update
templates/change_tuner.html:Update
app.py/change_tunerroute (around line 745-760):m3u8_stream_urlfrom formUpdate
add_tuner()function:stream_mode(default False)stream_mode=True:JavaScript for UI Toggle:
add_tuner()or new helper function:Alternative simpler approach:
This pull request was created from Copilot chat.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.