Synced from monorepo
Synced from monorepo Changes: - Temporarily disable session share link creation in the TUI - Do not approve plan on empty Enter from the revise prompt - Expose chat product Skills via ACP available_commands_update - Return immediately from a blocking wait on an already-completed ACP task - Split headless pager module for clearer structure - Stop git worktree prune from removing user registrations on resume - Use compaction sampler tokenizer for item token counts - Opt-in extra root CAs via GROK_EXTRA_CA_BUNDLE - Cancel all session subagents when the user stops - Let the session persistence actor exit when its session ends - Make fullscreen terminal resize much cheaper on long sessions - Report honestly from kill_task when an ACP task does not exist - Hide /usage for external-auth deployments - Forward the history-load trailer’s computer_reason to the client - Remove ineffective no-op tool reminder - Declare slash-command screen-mode support in one place - Keep settings enum picker on the committed value until Enter - Reap a PTY’s full process tree - Stream tool calls from headless mode over ACP - Bridge gateway task lifecycle to ACP for chat session background tasks - Don’t warn about truncated history on a suppressed replay - Fit full-replace summarizer input and recover on context-length errors - Stop dropping agents over an unrecognized frontmatter color - Add /undo as a slash alias for /rewind - Harden sleep/wake token-refresh paths against forced re-login - Add session/list ACP method - Give each sampling backend its own conversion module - Treat an unenrolled child process as a lint error - Suppress the cancelled marker on send-now wake turns - Stop tearing down Roslyn on every edit, and read C# diagnostics Source-Revision: 2a28b4a86cfc4a4c133c35b7fc2a6a9964387c39
This commit is contained in:
parent
500129c714
commit
dd04f397b1
367 changed files with 29489 additions and 10051 deletions
|
|
@ -478,6 +478,7 @@ pub(super) async fn refresh_tokens(
|
|||
principal_id = ?principal_id,
|
||||
"OIDC: refreshing token"
|
||||
);
|
||||
let probe = super::refresh::SuspendProbe::start();
|
||||
(|| {
|
||||
refresh_tokens_once(
|
||||
token_endpoint,
|
||||
|
|
@ -488,7 +489,23 @@ pub(super) async fn refresh_tokens(
|
|||
)
|
||||
})
|
||||
.retry(refresh_retry_policy())
|
||||
.when(is_transient_refresh_error)
|
||||
.when(move |err: &anyhow::Error| {
|
||||
if !is_transient_refresh_error(err) {
|
||||
return false;
|
||||
}
|
||||
if probe.straddled_past_grace() {
|
||||
crate::unified_log::warn(
|
||||
"auth.refresh.retry_suppressed_suspend",
|
||||
None,
|
||||
Some(serde_json::json!({
|
||||
"suspended_ms": probe.suspended_ms(),
|
||||
"error": err.to_string(),
|
||||
})),
|
||||
);
|
||||
return false;
|
||||
}
|
||||
true
|
||||
})
|
||||
.await
|
||||
}
|
||||
/// One unretried POST to `token_endpoint`. Errors carry the typed
|
||||
|
|
|
|||
Loading…
Reference in a new issue