1. Clear old token before processing OAuth callback to prevent axios
interceptor from attempting auto-refresh of expired old token while
processing new OAuth tokens
2. Add multi-stage authentication checks in AppAuthLayer with proper
timeouts to wait for React state sync before triggering logout
3. Add proactive state sync in AppConfig to ensure isAuthenticated
state matches localStorage token on mount
4. Create AppWorkspaceRedirect component to handle /app -> /app/:workspaceId
navigation after OAuth callback, preventing undefined workspace errors