Upgrade Modgud from SignalARRR 4.3.2 to 5.0.0-beta.3. The v4 client could lose the authorization payload for streams created after the authentication cache aged out, producing Authorization not provided while navigating between Admin SPA views. The migration also hardens frontend stream restoration so reconnects do not create duplicate subscriptions.
Surface touched
Authentication slice (Modgud.Authentication/)
Authorization slice (Modgud.Authorization/)
OAuth/OIDC server (OpenIddict, /connect/*, OAuth aggregates)
Admin API (Modgud.Api/Features/Admin/)
Admin SPA (src/frontend-vue/)
Plattform area (branding, assets, observability, inbox, settings)
Recovery CLI (Modgud.Authentication/Cli/)
Realm provisioning / multi-tenancy
Docs (docs/)
Build / CI / Docker
Other: SignalARRR server integration and package migration
Tests
Unit tests added / updated for the changed code
Integration tests added / updated where applicable
dotnet test is green locally
Frontend changes verified in the browser (login and repeated Admin SPA navigation)
Local verification:
Backend build green
Frontend type-check and production build green
Frozen pnpm lockfile install green
1,542 Modgud unit tests green
78 SignalARRR v5 authentication regression tests green across net8/net9/net10
40 authenticated SPA view switches without Authorization not provided or duplicate subscriptions
Forced local backend outage recovered automatically; active streams reloaded once and another 12 view switches remained clean
Fresh Magic-Link session stayed authenticated beyond the five-minute SecurityStamp validation point
Docs
docs/ updated where user-visible behavior changed
docs/roadmap.md updated if a roadmap item moved
N/A — internal dependency migration and connection lifecycle fix
Breaking changes
No breaking changes
Breaking change(s) described below:
Notes
The backend endpoint registration follows the v5 API (MapSignalARRRHub). Frontend reconnect callbacks now run only after reconnect; initial stream creation is explicit. Active stream subscriptions survive automatic reconnect and a manual restart after reconnect exhaustion without being duplicated.
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
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.
Motivation
Upgrade Modgud from SignalARRR 4.3.2 to 5.0.0-beta.3. The v4 client could lose the authorization payload for streams created after the authentication cache aged out, producing Authorization not provided while navigating between Admin SPA views. The migration also hardens frontend stream restoration so reconnects do not create duplicate subscriptions.
Surface touched
Tests
Local verification:
Docs
Breaking changes
Notes
The backend endpoint registration follows the v5 API (MapSignalARRRHub). Frontend reconnect callbacks now run only after reconnect; initial stream creation is explicit. Active stream subscriptions survive automatic reconnect and a manual restart after reconnect exhaustion without being duplicated.