Repository navigation
fix(acpmux): preserve expired harness auth evidence - #26631
teamleaderleo wants to merge 2 commits into
Conversation
Agent-Session: aid-cfe9c4465ee07565bad2
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
|
Bead |
|
Found 4 test failures on Blacksmith runners: Failures
|
|
Owned by an agent session · session |
… matcher cmux setup's harness report matches the new Auth::Expired (signed_in false, with the login action), and the expired-credential matcher moves to claude_auth::is_expired_credential so a failed turn can use the same one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-1288bbb2b5d2f5c6b66a
|
Replaced by #26658 (merged as 988565e). It carries this PR's expired harness-health evidence, the clippy fix for |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
A failed harness auth check currently collapses an explicit expired-token answer into signedOut, so the composer cannot distinguish a session that needs re-authentication from an ordinary first login. This PR keeps the failed check's output inside the daemon long enough to classify an explicit credential expiration as expired, while preserving unknown when the daemon has no evidence. It does not read the keychain or change active-session send policy.
Leo: “you gotta re-authenticate. You gotta log in again on the modal picker before the user even sends a prompt.”
The test covers “OAuth token has expired,” a Codex refresh-token expiry, ordinary “Not logged in,” a bare “session expired” (stays signedOut), and serialization.
Adopted by the acpmux daemon area (second commit):
cmux setup's harness report now matchesAuth::Expired(signed_in: false, with the same login action as signed out).claude_auth::is_expired_credential, so the failed-turn classification (auth.expired, next PR) uses the same words and the two cannot drift. It no longer counts a bare "session ... expired" as a credential.Risk: low.
harness/healthrows can now sayauth: "expired"; the web settings card and the Swift settings row readauthas a string and show it as not signed out (no decode failure).Related: #26526 owns the selected-harness signed-out UI. The per-session
_acpmux/session/authmethod builds on this.Agent session: agent session
🤖 Generated with Claude Code