Files
fusion/packages/dashboard/app/components/AuthTokenRecoveryDialog.css
gsxdsm 0ff60a79d1 FN-7243: focus auth token recovery on unauthorized
Focus daemon authorization failures on auth-token recovery instead of engine remediation.

- Pass auth-token recovery state into dashboard banners so engine unavailable and status remediation banners stay hidden while recovery is open.
- Improve auth recovery dialog focus styling and tests for unauthorized daemon responses.
- Add release notes for focused auth-token recovery behavior.

Files changed:
 .changeset/auth-token-recovery-focus.md            |   7 ++
 .changeset/fn-7243-auth-recovery-banner.md         |   7 ++
 packages/dashboard/app/App.tsx                     |   1 +
 packages/dashboard/app/__tests__/auth.test.ts      |  31 ++++-
 .../app/components/AuthTokenRecoveryDialog.css     |   7 +-
 .../__tests__/AuthTokenRecoveryDialog.test.tsx     |  41 +++++-
 .../app/components/dashboard/DashboardBanners.tsx  |  14 ++-
 .../dashboard/__tests__/DashboardBanners.test.tsx  | 138 ++++++++++++++++++++-
 .../dashboard/app/components/dashboard/types.ts    |   1 +
 .../hooks/__tests__/useAuthTokenRecovery.test.ts   |   9 +-
 10 files changed, 238 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-7243

Fusion-Task-Lineage: 8292080d-a310-4fdc-9b5f-baa17a592bad

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-29 15:34:06 -07:00

39 lines
855 B
CSS

/*
FNXC:AuthTokenRecovery 2026-06-29-00:00:
The daemon-auth recovery dialog is blocking but must use the shared modal-overlay stacking contract. Do not add auth-specific z-index rules; the dashboard banner stack is suppressed separately while recovery is open.
*/
.auth-token-recovery-header h3 {
margin: 0;
}
.auth-token-recovery-content {
display: flex;
flex-direction: column;
gap: var(--space-lg);
padding: var(--space-lg) var(--space-xl);
}
.auth-token-recovery-content p {
margin: 0;
color: var(--text-muted);
}
.auth-token-recovery-field {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}
.auth-token-recovery-field label {
color: var(--text-muted);
font-size: 0.75rem;
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.auth-token-recovery-actions {
gap: var(--space-sm);
}