From be5f5dbc2910bded49ccdd1ea9f945c033dc9ee6 Mon Sep 17 00:00:00 2001 From: OpeOginni Date: Mon, 22 Jun 2026 17:13:47 +0200 Subject: [PATCH] fix: prefer azure cli expires_on for token cache --- packages/opencode/src/plugin/azure.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/plugin/azure.ts b/packages/opencode/src/plugin/azure.ts index 936f4020eab..58f7776150d 100644 --- a/packages/opencode/src/plugin/azure.ts +++ b/packages/opencode/src/plugin/azure.ts @@ -135,12 +135,18 @@ function azureCliTokenProvider() { throw new Error(stderr.trim() || "Failed to get Azure access token. Run `az login` and try again.") } - const result = JSON.parse(stdout) as { accessToken?: string; expiresOn?: string } + const result = JSON.parse(stdout) as { accessToken?: string; expires_on?: number; expiresOn?: string } if (!result.accessToken) throw new Error("Azure CLI did not return an access token") cached = { token: result.accessToken, - expires: result.expiresOn ? new Date(result.expiresOn).getTime() : Date.now() + 30 * 60 * 1000, + // Azure CLI's expiresOn is a timezone-less local datetime; expires_on avoids DST ambiguity. + expires: + typeof result.expires_on === "number" + ? result.expires_on * 1000 + : result.expiresOn + ? new Date(result.expiresOn).getTime() + : Date.now() + 30 * 60 * 1000, } return cached.token }