33 lines · 1.4 KB · Swift
RawDownload
import CodexBarCore @MainActorextension StatusItemController {    func runCodexLoginFlow() async {        // This menu action still follows the ambient Codex login behavior. Managed-account authentication is        // implemented separately, but wiring add/switch/re-auth UI through that service needs its own account-aware        // flow so this entry point does not silently change what "Switch Account" means for existing users.        self.codexAccountPromotionCoordinator.setLiveReauthenticationInProgress(true)        defer {            self.codexAccountPromotionCoordinator.setLiveReauthenticationInProgress(false)        }        #if DEBUG        let result =            if let override = self._test_codexAmbientLoginRunnerOverride {                await override(120)            } else {                await CodexLoginRunner.run(timeout: 120)            }        #else        let result = await CodexLoginRunner.run(timeout: 120)        #endif        guard !Task.isCancelled else { return }        self.loginPhase = .idle        self.presentCodexLoginResult(result)        let outcome = self.describe(result.outcome)        let length = result.output.count        self.loginLogger.info("Codex login", metadata: ["outcome": outcome, "length": "\(length)"])        if case .success = result.outcome {            self.postLoginNotification(for: .codex)        }    }}