Offer Claude sign-in from failed sessions

This commit is contained in:
iris-ai committed 2026-09-15 12:24:25 -04:00
1 parent 0be15adbee
commit f0661919bb
9 files changed
+140 -12

No files matched your search

+11 -9
View File
@@ -759,15 +759,17 @@ it. A concurrent read serves the last answer when there is one; a first read
waits for the single producer. Different machines and providers proceed
independently.
When Claude cannot renew an expired login, the phone offers sign-in from both
the Machines tab and the usage dialog. The backend starts the configured
Claude CLI's headless `auth login` on that machine, returns only its Anthropic
authorization URL, and accepts the one code copied back from the browser. The
CLI remains the OAuth client and the only credential writer: the backend keeps
the URL and code only for the live attempt and never sees or persists an access
token or refresh token. An explicit login holds
the same machine/provider gate as usage refresh, is cancelable, expires after
ten minutes, and is killed when the backend stops.
When Claude cannot renew an expired login, the driver records that as an
actionable authentication event rather than leaving the phone to recognise
the CLI's error sentence. The phone opens sign-in directly over the affected
session, and also offers it from the Machines tab and the usage dialog. The
backend starts the configured Claude CLI's headless `auth login` on that
machine, returns only its Anthropic authorization URL, and accepts the one code
copied back from the browser. The CLI remains the OAuth client and the only
credential writer: the backend keeps the URL and code only for the live attempt
and never sees or persists an access token or refresh token. An explicit login
holds the same machine/provider gate as usage refresh, is cancelable, expires
after ten minutes, and is killed when the backend stops.
**The five-hour window has no reset time between blocks, and that is not a
missing value.** Measured 2026-08-31: the API anchors the window to the block