fix: report auth state based on session validation
Instead of trusting cached metadata, it actually ensures the session is valid,
and distinguishes between lack of auth and an expired session.
Co-authored-by: Claude (claude-opus-4-8) <noreply@anthropic.com>