v1.0.7 — UpdateChecker filtre isBeta selon canSeeBetas de la license
Fix latent identifié en marge du v1.0.6 : UpdateChecker.CheckAsync retournait toujours la plus haute version disponible sans filtrer par isBeta, indépendamment des droits de la license courante. Conséquence possible : un client sans droits beta pouvait recevoir un popup « Nouvelle version disponible : 1.5.4.32 » puis ne pas voir cette version dans la liste (RebuildList applique le filtre canSeeBetas), et au clic il n'aurait pas pu la télécharger (entitlement backend). UX incohérente + confusion opérationnelle. Fix : IUpdateChecker.CheckAsync prend maintenant un paramètre `bool canSeeBetas`. UpdateChecker filtre les entrées isBeta=true de la sélection LatestRemote quand ce flag est false. Le manifest complet reste retourné dans le UpdateCheckResult pour le rendu ultérieur — seule la variable "quelle version est proposée comme MAJ ?" est concernée. Côté caller (MainViewModel.CheckForUpdatesAsync), on passe `_license?.CanSeeBetas ?? false` — même défaut que RebuildList, comportement cohérent bout-en-bout. Rétrocompat : aucun autre caller de CheckAsync dans le codebase (grep vérifié). Le nouveau param est requis mais n'a qu'un site d'appel. Bump : 1.0.6 → 1.0.7 (petit fix isolé, mérite d'être tracé séparément puisque la sémantique change). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -763,7 +763,13 @@ public sealed partial class MainViewModel : ObservableObject
|
||||
// on garde le cache silencieusement (pas de crash).
|
||||
await RefreshLicenseFromServerAsync(CancellationToken.None);
|
||||
|
||||
var result = await _updateChecker.CheckAsync(CancellationToken.None);
|
||||
// Passe canSeeBetas depuis la license courante — UpdateChecker exclut les
|
||||
// betas de la sélection LatestRemote quand le client n'a pas les droits.
|
||||
// Évite le popup « MAJ dispo : 1.5.4.32 beta » pour un client qui ne peut
|
||||
// pas voir cette version dans la liste après filtrage RebuildList.
|
||||
var result = await _updateChecker.CheckAsync(
|
||||
_license?.CanSeeBetas ?? false,
|
||||
CancellationToken.None);
|
||||
if (result.Error is not null)
|
||||
{
|
||||
StatusMessage = Strings.StatusError(result.Error);
|
||||
|
||||
Reference in New Issue
Block a user