From 372b8c646316aa7906ab7e1dc5db091e3e6d048a Mon Sep 17 00:00:00 2001 From: achiez Date: Tue, 10 Feb 2026 16:40:36 +0200 Subject: [PATCH] fix(maac): portable MacClient status reset and prepare release - Add changelog/1.8.2.html with details for version 1.8.2 - Client status is properly updates after successful MAAC request - Bump version to 1.8.2 --- NebulaAuth.sln | 1 + changelog/1.8.2.html | 78 +++++++++++++++++++ .../Model/MAAC/MAACRequestHandler.cs | 13 ++-- .../Model/MAAC/MultiAccountAutoConfirmer.cs | 6 +- .../Model/MAAC/PortableMaClientErrorData.cs | 5 +- src/NebulaAuth/NebulaAuth.csproj | 2 +- 6 files changed, 95 insertions(+), 10 deletions(-) create mode 100644 changelog/1.8.2.html diff --git a/NebulaAuth.sln b/NebulaAuth.sln index 44b9672..7133794 100644 --- a/NebulaAuth.sln +++ b/NebulaAuth.sln @@ -25,6 +25,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "changelog", "changelog", "{ changelog\1.7.4.html = changelog\1.7.4.html changelog\1.8.0.html = changelog\1.8.0.html changelog\1.8.1.html = changelog\1.8.1.html + changelog\1.8.2.html = changelog\1.8.2.html EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamLibForked", "src\SteamLibForked\SteamLibForked.csproj", "{224F9DB0-3D20-A614-BA2A-12F22B13A2C6}" diff --git a/changelog/1.8.2.html b/changelog/1.8.2.html new file mode 100644 index 0000000..7a44a8a --- /dev/null +++ b/changelog/1.8.2.html @@ -0,0 +1,78 @@ + + + + + + Changelog + + + + +
+
+
Version 1.8.2
+
10.02.2026
+
+
    +
  • FIX: AutoConfirm timer now correctly resets the status after a successful request (Warning → Ok).
  • +
+
+
+
+ + \ No newline at end of file diff --git a/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs b/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs index 27ea060..bf3f5e6 100644 --- a/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs +++ b/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs @@ -94,11 +94,16 @@ public static class MAACRequestHandler private static void InformRequestSuccessful(Mafile mafile) { - if (_errors.TryGetValue(mafile, out var data)) + if (_errors.TryGetValue(mafile, out var data) && data.Clear()) { - Shell.Logger.Info("MAAC request for {name} MAAC account succeeded, clearing error history.", + Shell.Logger.Info("MAAC request for {name} MAAC account succeeded, error history cleared", mafile.AccountName); - data.Clear(); + } + + var client = mafile.LinkedClient; + if (client != null && client.Status.StatusType != PortableMaClientStatusType.Ok) + { + client.SetStatus(PortableMaClientStatus.Ok()); } } @@ -169,6 +174,4 @@ public static class MAACRequestHandler { return LocManager.GetCodeBehindOrDefault(key, LOC_PATH, "PortableMaClientStatus", key); } - - } \ No newline at end of file diff --git a/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs b/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs index ce041d0..03d0b3e 100644 --- a/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs +++ b/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs @@ -58,7 +58,6 @@ public static class MultiAccountAutoConfirmer private static async Task TimerConfirmInternal() { - var clients = Lock.ReadLock(() => Clients.ToArray()); var enabledClients = GetReadyAccounts(); enabledClients = DistributeEvenly(enabledClients).ToArray(); var confirmed = 0; @@ -121,15 +120,16 @@ public static class MultiAccountAutoConfirmer var res = new List(); foreach (var maf in clients) { - if(maf.LinkedClient == null) continue; + if (maf.LinkedClient == null) continue; if (MAACRequestHandler.IsReady(maf)) { res.Add(maf); } } - return res; + return res; } + public static bool TryAddToConfirm(Mafile mafile) { return Lock.WriteLock(() => diff --git a/src/NebulaAuth/Model/MAAC/PortableMaClientErrorData.cs b/src/NebulaAuth/Model/MAAC/PortableMaClientErrorData.cs index 9235ed5..5e0f930 100644 --- a/src/NebulaAuth/Model/MAAC/PortableMaClientErrorData.cs +++ b/src/NebulaAuth/Model/MAAC/PortableMaClientErrorData.cs @@ -23,10 +23,13 @@ public sealed class PortableMaClientErrorData Values[DateTime.UtcNow] = ex; } - public void Clear() + public bool Clear() { + if (NoErrors) return false; lock (_lock) Values.Clear(); + + return true; } public TimeSpan? GetTimeFromLastError() diff --git a/src/NebulaAuth/NebulaAuth.csproj b/src/NebulaAuth/NebulaAuth.csproj index e626474..d27c630 100644 --- a/src/NebulaAuth/NebulaAuth.csproj +++ b/src/NebulaAuth/NebulaAuth.csproj @@ -10,7 +10,7 @@ en;ru;ua Theme\lock.ico 7.0 - 1.8.1 + 1.8.2 true