Design login now accepts a manually pasted authorization code more flexibly, with clearer failure reasons
The sign-in flow behind /design-login (which connects your claude.ai account so /design-sync can read and write design-system projects) has been reworked. It now supports pasting in an authorization code manually even in situations where it previously wasn't offered, since Claude Code can no longer always assume whether a browser can reach the local sign-in listener.
When the login fails, it now returns one of several specific reason codes: interrupted, unconfigured, remote, invalid, save_failed, timed_out, or failed, instead of just a generic message. A new check can also abort the flow partway through, after a login slot is validated.
The more flexible manual-code path means you're less likely to get stuck when Claude Code can't tell whether a browser-based login will work, particularly on remote sessions. The structured failure reasons make it clearer why a login attempt didn't succeed.