Fix browser login URL wrapping and fallback
- Lenguaje dominante
- Shell
- Estrellas
- 11.2k
- Forks
- 1.9k
- Merge medio
- 14 h 16 min
- PR fusionados (30 d)
- 6
Descripción
## Describe the bug
The Device Code login flow works as expected: it displays a one-time code and URL, opens the URL automatically, and offers to copy the code to the clipboard when a key is pressed.
The **Sign in with your browser (recommended)** flow behaves differently. Although it displays a message such as “If your browser didn't open, visit:”, pressing a key does not open the browser. The fallback URL is also difficult or impossible to use in the terminal:
- The URL is long enough to wrap across terminal lines.
- Only the beginning of the URL (for example, `https://github.com/login/oauth/authorize?`) is rendered as a clickable link.
- The query string containing `client_id` and the remaining parameters appears after the line break and is neither clickable nor reliably selectable/copied.
- Resizing the terminal changes the wrapping behavior unpredictably; depending on the width, the URL may appear on one line with its end clipped or wrap inconsistently.
This prevents users from completing browser authentication when automatic browser opening fails.
## Affected environment
- GitHub Copilot CLI
- Linux under WSL2
## Steps to reproduce
1. Start the GitHub Copilot CLI login flow.
2. Select **Sign in with your browser (recommended)**.
3. Observe the fallback message and URL.
4. Press a key when prompted.
5. If the browser does not open, try selecting or clicking the displayed URL, then resize the terminal and observe the URL again.
## Expected behavior
The browser login flow should use the same browser-opening behavior as the Device Code flow: pressing a key should open the browser automatically.
If automatic browser opening fails, the complete fallback URL should be rendered as one usable clickable link without being split into a non-interactive suffix. The CLI should also provide a final copy-to-clipboard option so users can paste the complete URL into a browser manually.
## Additional context
Please preserve the full URL and its query parameters across terminal widths, or otherwise provide a terminal-safe presentation that remains clickable and copyable.
Guía de contribución
Línea de trabajo
Comienza en el flujo de inicio de sesión de GitHub Copilot CLI y compara la ruta „Sign in with your browser“ con el flujo Device Code. Traza la presentación de la URL de fallback en distintos anchos de terminal; se considera completado cuando al pulsar una tecla se abre el navegador y una URL de fallback completa sigue siendo accesible mediante clic y copiable, con una opción final para el portapapeles.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- shell
- Área
- authentication, cli
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 48/100