- OidcLoginPhase enum + IProgress<OidcLoginPhase> on YavscApiClient.LoginInteractiveAsync, surfaced in the UI as PhaseLabel (FR). Lets operators see where the flow actually stalls, in particular whether the postit://callback ever arrives on the running instance. - YavscApiClient.TrySilentLoginAsync: silent refresh at boot. Returns false (and purges the store) when the refresh token is rejected by the OP. - App.OnFrameworkInitializationCompleted auto-routes: HomePage is the navigation root; on Opened the app calls TrySilentLoginAsync and pushes MainPage if a session is restored. Logout pops back to HomePage via the new persistent SessionStatusBanner (Connecté / Déconnecté + Logout button). - PostIt.Desktop.Program.Main now detects the postit://callback URL BEFORE Avalonia boots, hands it off via SingleInstance, and exits. Stops the 2nd PostIt instance from flashing its own MainWindow while the 1st instance is still waiting on the named pipe. The check in App.OnFrameworkInitializationCompleted is kept as belt-and-braces defence-in-depth. - SchemeUrlDetector: pure platform-independent detector extracted for unit testing. - Tests: 7 new SchemeUrlDetectorTests + 5 new phase / silent refresh tests in YavscApiClientTests. |
||
|---|---|---|
| .. | ||
| app.manifest | ||
| PlatformBootstrap.cs | ||
| PostIt.Desktop.csproj | ||
| Program.cs | ||