feat(account-health): allow silent refresh on scheduled probes and stop treating wangyihao token misses as auth failure
Scheduled probes and reportAccountFailure now request a silent refresh before marking an account expired, and a missing wangyihao publish token is classified as ok instead of auth_failure so the cookie-based refresh path can recover the session. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -611,7 +611,7 @@ async function runDueProbes(): Promise<void> {
|
||||
const trigger = record.suspectedExpiredAt ? "confirm" : "scheduled";
|
||||
void enqueueAccountProbe(account, {
|
||||
trigger,
|
||||
allowSilentRefresh: false,
|
||||
allowSilentRefresh: true,
|
||||
}).catch((error) => {
|
||||
console.warn("[desktop-account-health] scheduled probe failed", {
|
||||
accountId: account.id,
|
||||
@@ -946,7 +946,7 @@ export async function reportAccountFailure(
|
||||
|
||||
return await performProbeLocked(account, {
|
||||
trigger: "confirm",
|
||||
allowSilentRefresh: false,
|
||||
allowSilentRefresh: true,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ describe("platform auth adapters", () => {
|
||||
).toBe("auth_failure");
|
||||
});
|
||||
|
||||
it("classifies Wangyihao missing token as auth failure", () => {
|
||||
it("does not classify Wangyihao publish token misses as auth failure", () => {
|
||||
const adapter = getPlatformAdapter("wangyihao");
|
||||
|
||||
expect(
|
||||
@@ -79,7 +79,7 @@ describe("platform auth adapters", () => {
|
||||
code: "wangyihao_token_missing",
|
||||
},
|
||||
}),
|
||||
).toBe("auth_failure");
|
||||
).toBe("ok");
|
||||
});
|
||||
|
||||
it("classifies Weixin GZH verification as challenge", () => {
|
||||
|
||||
@@ -167,9 +167,12 @@ function classifyJuejinFailure(input: PlatformFailureInput): PlatformFailureClas
|
||||
|
||||
function classifyWangyihaoFailure(input: PlatformFailureInput): PlatformFailureClassification {
|
||||
const code = typeof input.error?.code === "string" ? input.error.code : "";
|
||||
if (code === "wangyihao_not_logged_in" || code === "wangyihao_token_missing") {
|
||||
if (code === "wangyihao_not_logged_in") {
|
||||
return "auth_failure";
|
||||
}
|
||||
if (code === "wangyihao_token_missing") {
|
||||
return "ok";
|
||||
}
|
||||
if (code === "wangyihao_challenge_required") {
|
||||
return "challenge";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user