Skip to content

Alpha.7 - Screen Cleaning#102

Merged
jake1164 merged 76 commits into
mainfrom
alpha.7
Jun 7, 2026
Merged

Alpha.7 - Screen Cleaning#102
jake1164 merged 76 commits into
mainfrom
alpha.7

Conversation

@jake1164

@jake1164 jake1164 commented Jun 5, 2026

Copy link
Copy Markdown
Member

This PR goes though each page and makes things more intuitive. More tweeks might be found during beta but everything is done with the exception of Adaptive stream recovery which needs more live testing.

jake1164 added 30 commits May 8, 2026 11:56
Removes FFmpeg wall-clock timestamp injection from clean relay remux, preserving negative timestamp normalization while avoiding downstream Jellyfin/NextPVR video cadence issues.
jake1164 and others added 21 commits May 22, 2026 09:26
…ions

Health derivation now counts clean-watch duration only after the last adverse health event in the 24-hour window and relaxes a defensive profile by one level after 30 minutes of clean watch time
Added test-mode stream-health debug surfaces for the lab
Added durable schema support
…eedingSetup query

Remote branch introduced proper markNewGroups/queueNewRowsForReview parameters and
GetInitialProfileProviderSyncProfileIdsAsync helper. Resolved conflict by adopting
the remote's parameter-based approach and removing the local isInitialProviderSync
detection. Updated GroupsNeedingSetup query to match the new initial-sync state
(IsNew=false + channel rows with excluded state) instead of TrackingPolicyNotify.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ssed when an internal/generated-HLS relay subscriber is attached. That means a Jellyfin/NextPVR retune should no longer kill an IPTVnator/browser HLS stream that is still alive.
Copilot AI review requested due to automatic review settings June 5, 2026 11:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the M3Undle “alpha.7” release with broad UI/UX refinements plus significant streaming/observability improvements (adaptive relay policy metadata, channel health event persistence, expanded diagnostics), along with new endpoint/security settings (Xtream enable toggle, HDHomeRun allowed-network filtering) and various reliability tweaks.

Changes:

  • Adds streaming channel-health observability (diagnostic event enrichment, persistence/retention, health evidence endpoints) and extends upstream relay decision metadata.
  • Improves UI consistency and usability across Profiles/Providers/Logs/System Events, including new shared chip components and log filtering.
  • Adds new settings/safety controls (Xtream compatibility enable flag, HDHR network allowlist filter), plus generated-HLS workdir validation and readiness output enhancements.

Reviewed changes

Copilot reviewed 131 out of 132 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/M3Undle.Web.Tests/Streaming/UpstreamStreamConnectorTests.cs Updates connector tests for new FFmpeg args and new ctor dependency.
tests/M3Undle.Web.Tests/Streaming/StreamChannelHealthEventRecorderTests.cs Adds tests validating channel-health event persistence behavior.
tests/M3Undle.Web.Tests/Streaming/HlsProxyEndpointSecurityTests.cs Updates endpoint security stubs for Xtream compatibility settings.
tests/M3Undle.Web.Tests/Streaming/GeneratedHlsSessionManagerTests.cs Adds coverage for generated-HLS workdir preparation failures.
tests/M3Undle.Web.Tests/Status/ReadinessEndpointTests.cs Validates readiness payload reason plus refresh-in-progress behaviors.
tests/M3Undle.Web.Tests/Settings/StreamingOptionsValidatorTests.cs Adds tests for new reconnect/recovery-related validation rules.
tests/M3Undle.Web.Tests/Settings/HdHomeRunSettingsServiceTests.cs Updates service construction and adds AllowedNetworks to commands.
tests/M3Undle.Web.Tests/Authentication/EndpointSecurityServiceTests.cs Updates endpoint security update commands for Xtream flag.
tests/M3Undle.Web.Tests/Authentication/ClientEndpointAccessResolverTests.cs Updates endpoint security stub for new Xtream-enabled API.
tests/M3Undle.Web.Tests/Application/ProviderPageServiceValidationTests.cs Updates refresh trigger stub for new RefreshStartedAt property.
tests/M3Undle.Web.Tests/Application/ProfilesPageServiceTests.cs Updates refresh trigger stub for new RefreshStartedAt property.
tests/M3Undle.Web.Tests/Application/LineupStatusServiceTests.cs Adds test for “no live channels” snapshot behavior and trigger stub updates.
tests/M3Undle.Web.Tests/Application/EventServiceTests.cs Adds tests for new system-event grouping semantics and titles.
tests/M3Undle.Web.Tests/Application/ChannelMappingPageServiceTests.cs Updates refresh trigger stub for new RefreshStartedAt property.
tests/M3Undle.Web.Tests/Api/XtreamEndpointTests.cs Adds tests ensuring generated HLS Xtream URLs use path credentials.
tests/M3Undle.Web.Tests/Api/OpenApiEndpointTests.cs Ensures streaming settings endpoints appear in management OpenAPI.
tests/M3Undle.Core.Tests/AppBuildInfoTests.cs Updates build info tests for new GitHash field.
src/WebVersion.props Bumps web version to 1.0.0-alpha.7.
src/M3Undle.Web/wwwroot/app.js Adds scrolling helpers and mapping-panel drag resize initializer.
src/M3Undle.Web/wwwroot/app.css UI styling updates (drawer overflow, nav active styling, hover rules).
src/M3Undle.Web/Streaming/Upstream/UpstreamStreamConnector.cs Adds health-profile-based relay decision support and FFmpeg flag updates.
src/M3Undle.Web/Streaming/Upstream/UpstreamConnection.cs Adds relay-policy metadata to connection objects.
src/M3Undle.Web/Streaming/Subscribers/SubscriberConnection.cs Normalizes IPv4-mapped IPv6 addresses for consistent logging/diagnostics.
src/M3Undle.Web/Streaming/Sessions/ChannelSessionManager.cs Avoids reusing sessions that are no longer accepting subscribers; wires health services.
src/M3Undle.Web/Streaming/Observability/StreamSessionSnapshot.cs Expands session snapshot with relay/recovery/health/rate metadata.
src/M3Undle.Web/Streaming/Observability/StreamProviderSnapshot.cs Expands provider snapshot with relay/recovery metadata.
src/M3Undle.Web/Streaming/Observability/StreamingRegistry.cs Adds background rate calculation and exposes bytes/sec for sessions/clients.
src/M3Undle.Web/Streaming/Observability/StreamDiagnosticEventKind.cs Extends diagnostic event kinds for recovery and health-related events.
src/M3Undle.Web/Streaming/Observability/StreamDiagnosticEvent.cs Extends diagnostic event payload with recovery/relay/watch fields.
src/M3Undle.Web/Streaming/Observability/StreamClientSnapshot.cs Adds per-client bytes/sec field.
src/M3Undle.Web/Streaming/Observability/StreamChannelHealthTrend.cs Introduces health-trend types and result model.
src/M3Undle.Web/Streaming/Observability/StreamChannelHealthProfile.cs Adds health profile/policy models and profiling service interfaces + noop impl.
src/M3Undle.Web/Streaming/Observability/StreamChannelHealthEventRecorder.cs Adds background recorder that persists selected health events + retention purge.
src/M3Undle.Web/Streaming/Observability/IStreamChannelHealthEventRecorder.cs Adds recorder interface and noop implementation.
src/M3Undle.Web/Streaming/Models/SessionState.cs Adds HoldingOutput session state.
src/M3Undle.Web/Streaming/GeneratedHls/GeneratedHlsSessionManager.cs Adds workdir writability probing and safer directory creation handling.
src/M3Undle.Web/Streaming/Configuration/StreamingOptionsValidator.cs Adds validation for new reconnect/recovery cooldown and limits.
src/M3Undle.Web/Streaming/Configuration/ReconnectOptions.cs Adds new reconnect cooldowns and recovery options.
src/M3Undle.Web/Streaming/Configuration/CleanRelayOptions.cs Adds Auto/On semantics and normalizes provider relay mode values.
src/M3Undle.Web/Security/XtreamPathCredentialFilter.cs Gates Xtream path-credential endpoints behind Xtream enabled setting.
src/M3Undle.Web/Security/HdhrNetworkFilter.cs Adds IP allowlist endpoint filter for HDHR endpoints.
src/M3Undle.Web/Program.cs Adds/adjusts DI registrations, hosted services, HttpClient timeout policy, SQLite pragmas.
src/M3Undle.Web/Observability/M3UndleHealthChecks.cs Adds reason string, improves readiness payload, and reason ToString behavior.
src/M3Undle.Web/M3Undle.Web.csproj Adds EF Design package (PrivateAssets) for tooling/scaffolding support.
src/M3Undle.Web/Data/Migrations/ApplicationDbContextModelSnapshot.cs Updates snapshot defaults and adds new entities/settings fields.
src/M3Undle.Web/Data/Migrations/20260525140000_Alpha7_XtreamAndHdhrNetworkSettings.cs Adds Xtream enabled + HDHR allowed networks columns.
src/M3Undle.Web/Data/Migrations/20260522120000_Alpha7_StreamHealthCleanWatch.cs Adds clean watch duration column to health events.
src/M3Undle.Web/Data/Migrations/20260521110000_Alpha7_RelayPolicyAutoDefault.cs Migrates provider relay policy values to new normalization (auto/on).
src/M3Undle.Web/Data/Migrations/20260519093000_Alpha7_StreamChannelHealthEvents.cs Adds stream_channel_health_events table and indexes.
src/M3Undle.Web/Data/Entities/StreamChannelHealthEvent.cs Adds persisted entity for channel health events.
src/M3Undle.Web/Data/Entities/SiteSettings.cs Adds XtreamCompatibilityEnabled and HdhrAllowedNetworks settings.
src/M3Undle.Web/Data/Entities/Provider.cs Defaults provider CleanRelayMode to auto.
src/M3Undle.Web/Data/Configurations/StreamChannelHealthEventConfiguration.cs Adds EF configuration for channel health event table + indexes.
src/M3Undle.Web/Data/Configurations/SiteSettingsConfiguration.cs Maps new site settings fields and seeds defaults.
src/M3Undle.Web/Data/Configurations/ProviderConfiguration.cs Updates provider clean relay mode default to auto.
src/M3Undle.Web/Data/ApplicationDbContext.cs Adds DbSet for StreamChannelHealthEvents.
src/M3Undle.Web/Contracts/Providers/ProviderContracts.cs Defaults provider DTO/request clean relay mode to auto.
src/M3Undle.Web/Contracts/ProfilesContracts.cs Adds provider fetch status/error summary and removed-groups count fields.
src/M3Undle.Web/Contracts/DashboardContracts.cs Expands dashboard profile/provider summary models.
src/M3Undle.Web/Contracts/CustomGroupContracts.cs Adds linked provider group IDs to custom group DTO.
src/M3Undle.Web/Contracts/ChannelFilterContracts.cs Adds mapped channel panel item contract.
src/M3Undle.Web/Components/Shared/TooltipChip.razor Adds reusable chip-with-tooltip component (optional click affordance).
src/M3Undle.Web/Components/Shared/StatusChip.razor Adds reusable status chip component for consistent chip rendering.
src/M3Undle.Web/Components/Shared/ChipFilterToggle.razor Adds reusable chip toggle for filters with tooltip.
src/M3Undle.Web/Components/Pages/Providers/XtreamProviderForm.razor Adds new provider creation form for Xtream providers.
src/M3Undle.Web/Components/Pages/Providers/ProviderStreamFormat.razor Adds shared stream format controls including relay policy selection.
src/M3Undle.Web/Components/Pages/Providers/ProviderProfileSelect.razor Adds shared profile association selector.
src/M3Undle.Web/Components/Pages/Providers/ProviderFormTypes.cs Adds form prefill record types and provider mode enum.
src/M3Undle.Web/Components/Pages/Providers/ProviderContentToggles.razor Adds shared content-type toggle component.
src/M3Undle.Web/Components/Pages/Providers/ProviderConcurrentStreams.razor Adds shared concurrent-stream limit control component.
src/M3Undle.Web/Components/Pages/Providers/_Imports.razor Adds provider-pages imports/namespace.
src/M3Undle.Web/Components/Pages/Profiles.razor UI refresh improvements and deferred pending-count fetch + endpoint flags display.
src/M3Undle.Web/Components/Pages/ProfileDetail.razor UI refinements, better status display, provider status tooltips, snapshot deltas.
src/M3Undle.Web/Components/Pages/Logs.razor Adds search and level filtering plus improved layout/scroll handling.
src/M3Undle.Web/Components/Pages/Channels/ChannelMapping.razor.css Adds CSS for new resizable mapping side panel.
src/M3Undle.Web/Components/Layout/SystemEventPanelGrouping.cs Adds grouping logic for system events in UI.
src/M3Undle.Web/Components/Layout/SystemEventPanel.razor Updates system event panel UI/behavior and integrates live updates.
src/M3Undle.Web/Components/Layout/NavMenu.razor Reworks nav menu layout/tooltips and adds delayed-stats handling.
src/M3Undle.Web/Components/Layout/LoginDisplay.razor.css Adds styling for updated account menu UI.
src/M3Undle.Web/Components/Layout/LoginDisplay.razor Updates account menu presentation and sign-out affordance.
src/M3Undle.Web/Components/Layout/AboutDialog.razor.css Adds styling for new About dialog.
src/M3Undle.Web/Components/Layout/AboutDialog.razor Adds About dialog content including git hash and build date formatting.
src/M3Undle.Web/Components/EndpointUrlVariant.cs Adds model type for endpoint URL variants.
src/M3Undle.Web/Components/EndpointCopyRow.razor Adds reusable copy-to-clipboard endpoint URL row component.
src/M3Undle.Web/Components/App.razor Adjusts stylesheet ordering for MudBlazor/app styles.
src/M3Undle.Web/Components/_Imports.razor Adds shared-components using.
src/M3Undle.Web/appsettings.json Adds defaults for new reconnect/recovery settings.
src/M3Undle.Web/appsettings.Development.json Adds localization logging override.
src/M3Undle.Web/Application/SnapshotRefreshService.cs Adds refresh started time and provider-data retention purging.
src/M3Undle.Web/Application/SnapshotBuilder.cs Orders enabled providers and adjusts “initial sync” review queue behavior.
src/M3Undle.Web/Application/LineupStatusService.cs Simplifies provider resolution and treats “no live channels” as no snapshot.
src/M3Undle.Web/Application/IRefreshTrigger.cs Adds RefreshStartedAt property.
src/M3Undle.Web/Application/HdHomeRunSettingsService.cs Switches to scope-factory DB usage and adds AllowedNetworks support.
src/M3Undle.Web/Application/EndpointUrlService.cs Adds env/container-aware endpoint base URL detection/normalization.
src/M3Undle.Web/Application/EndpointSecurityService.cs Adds Xtream compatibility enable flag to settings and API.
src/M3Undle.Web/Application/DashboardStatsService.cs Improves provider/run health aggregation and expands dashboard summaries.
src/M3Undle.Web/Application/CustomGroupPageService.cs Adds split query and exposes linked provider group IDs in DTO mapping.
src/M3Undle.Web/Application/ChannelStatsService.cs Optimizes queries and aggregates counts with fewer includes.
src/M3Undle.Web/Application/ChannelMappingPageService.cs Optimizes selection counts, adds mapped channel panel data, improves review listing.
src/M3Undle.Web/Api/XtreamEndpoints.cs Uses Xtream path credentials for generated HLS URLs when available.
src/M3Undle.Web/Api/SiteSettingsApiEndpoints.cs Adds streaming settings GET/PUT plus Xtream/HDHR request updates.
src/M3Undle.Web/Api/HdHomeRunEndpoints.cs Adds HDHR network filter and scopes legacy aliases under filtered group.
src/M3Undle.Web/Api/DiagnosticsApiEndpoints.cs Adds per-session stream health evidence endpoint.
src/M3Undle.Web/Api/CompatibilityEndpoints.cs Enhances readiness payload and adds debug stream-health seed/query endpoints.
src/M3Undle.Core/MpegTs/MpegTsPacketBatch.cs Adds HasKnownH264VideoStream metadata.
src/M3Undle.Core/MpegTs/MpegTsBoundaryScanner.cs Populates new packet batch metadata based on detected video PID.
src/M3Undle.Core/AppBuildInfo.cs Adds GitHash assembly metadata support and short-hash normalization.
src/Directory.Build.props Embeds git hash into assembly metadata during build.
src/CoreVersion.props Bumps core version to 1.0.0-alpha.7.
dotnet-tools.json Adds dotnet-ef tool manifest.
docs/GUI.md References the new GUI consistency contract doc.
docs/dev/GUI_CONSISTENCY_CONTRACT.md Introduces a UI consistency contract for chips/tooltips/styles.
.vscode/tasks.json Updates container run options/ports for VS Code tasks.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/M3Undle.Web/Components/Pages/Profiles.razor Outdated
Comment thread src/M3Undle.Web/Components/Pages/Profiles.razor Outdated
Comment thread src/M3Undle.Web/Components/Pages/Logs.razor Outdated
@jake1164 jake1164 merged commit 86d7f88 into main Jun 7, 2026
7 checks passed
@jake1164 jake1164 deleted the alpha.7 branch June 7, 2026 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants