diff --git a/NebulaAuth.sln b/NebulaAuth.sln
index 8959eed..44b9672 100644
--- a/NebulaAuth.sln
+++ b/NebulaAuth.sln
@@ -24,6 +24,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "changelog", "changelog", "{
changelog\1.7.3.html = changelog\1.7.3.html
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
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamLibForked", "src\SteamLibForked\SteamLibForked.csproj", "{224F9DB0-3D20-A614-BA2A-12F22B13A2C6}"
diff --git a/changelog/1.8.1.html b/changelog/1.8.1.html
new file mode 100644
index 0000000..03a1b77
--- /dev/null
+++ b/changelog/1.8.1.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+ Changelog
+
+
+
+
+
+
+
Version 1.8.1
+
25.01.2026
+
+
+ - NEW: Added Mafile Export tool with templates, batch export and flexible field filtering.
+ - IMPROVEMENT: Reworked auto-confirmation error handling logic (MAAC) — fewer false disables, smarter retries.
+ - UPDATE: Added “Unattach Proxy” option to the account context menu.
+ - LOCALIZATION: Added Chinese (Simplified) and French languages.
+ - FIX: Fixed crashes related to duplicate mafiles, timers, search filtering and import logic.
+ -
+ DETAILS: Full patch notes:
+ ENG |
+ RUS
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs b/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs
index 4ab9e9b..27ea060 100644
--- a/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs
+++ b/src/NebulaAuth/Model/MAAC/MAACRequestHandler.cs
@@ -148,6 +148,12 @@ public static class MAACRequestHandler
return false;
}
+ public static bool IsReady(Mafile maf)
+ {
+ if (maf.LinkedClient is {Status.StatusType: PortableMaClientStatusType.Ok}) return true;
+ return maf.LinkedClient is {Status.StatusType: PortableMaClientStatusType.Warning}
+ && maf.LastErrorWasAtLeast(Settings.Instance.MaacRetryInterval);
+ }
private static string GetTimerPrefix(Mafile mafile)
{
@@ -161,6 +167,8 @@ public static class MAACRequestHandler
private static string GetPortableMaClientStatus(string key)
{
- return LocManager.GetCodeBehindOrDefault(key, LOC_PATH, key);
+ 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 d01be16..ce041d0 100644
--- a/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs
+++ b/src/NebulaAuth/Model/MAAC/MultiAccountAutoConfirmer.cs
@@ -59,8 +59,7 @@ public static class MultiAccountAutoConfirmer
private static async Task TimerConfirmInternal()
{
var clients = Lock.ReadLock(() => Clients.ToArray());
- var enabledClients = clients.Where(x => x.LinkedClient is {Status.StatusType: PortableMaClientStatusType.Ok})
- .ToArray();
+ var enabledClients = GetReadyAccounts();
enabledClients = DistributeEvenly(enabledClients).ToArray();
var confirmed = 0;
await Task.Run(async () =>
@@ -116,6 +115,21 @@ public static class MultiAccountAutoConfirmer
}
}
+ private static IEnumerable GetReadyAccounts()
+ {
+ var clients = Lock.ReadLock(() => Clients.ToArray());
+ var res = new List();
+ foreach (var maf in clients)
+ {
+ if(maf.LinkedClient == null) continue;
+ if (MAACRequestHandler.IsReady(maf))
+ {
+ res.Add(maf);
+ }
+ }
+ return res;
+
+ }
public static bool TryAddToConfirm(Mafile mafile)
{
return Lock.WriteLock(() =>
diff --git a/src/NebulaAuth/Model/MAAC/PortableMaClient.cs b/src/NebulaAuth/Model/MAAC/PortableMaClient.cs
index 1b8ec3b..6395256 100644
--- a/src/NebulaAuth/Model/MAAC/PortableMaClient.cs
+++ b/src/NebulaAuth/Model/MAAC/PortableMaClient.cs
@@ -44,7 +44,7 @@ public partial class PortableMaClient : ObservableObject, IDisposable
ClientHandler = pair.Handler;
UpdateCookies(mafile.SessionData);
Mafile.PropertyChanged += Mafile_PropertyChanged;
- SetStatus(PortableMaClientStatus.Error("123123"));
+ SetStatus(PortableMaClientStatus.Ok());
}
private void Mafile_PropertyChanged(object? sender, PropertyChangedEventArgs e)