diff --git a/Sources/CodexBarCore/Providers/Amp/AmpUsageFetcher.swift b/Sources/CodexBarCore/Providers/Amp/AmpUsageFetcher.swift index 3ef31c4cb..3eeeca7a2 100644 --- a/Sources/CodexBarCore/Providers/Amp/AmpUsageFetcher.swift +++ b/Sources/CodexBarCore/Providers/Amp/AmpUsageFetcher.swift @@ -321,6 +321,16 @@ public struct AmpUsageFetcher: Sendable { } completionHandler(updated) } + + private func isLoginRedirect(_ url: URL) -> Bool { + let path = url.path.lowercased() + let query = url.query?.lowercased() ?? "" + return path.contains("/login") || + path.contains("/signin") || + path.contains("/sign-in") || + query.contains("login") || + query.contains("signin") + } } private struct ResponseInfo: Sendable { diff --git a/Sources/CodexBarCore/Providers/Factory/FactoryStatusProbe.swift b/Sources/CodexBarCore/Providers/Factory/FactoryStatusProbe.swift index b4994a1d1..4de985db6 100644 --- a/Sources/CodexBarCore/Providers/Factory/FactoryStatusProbe.swift +++ b/Sources/CodexBarCore/Providers/Factory/FactoryStatusProbe.swift @@ -651,6 +651,7 @@ public struct FactoryStatusProbe: Sendable { } catch { if case FactoryStatusProbeError.notLoggedIn = error { CookieHeaderCache.clear(provider: .factory) + await FactorySessionStore.shared.clearSession() } lastError = error }