Repository navigation
First-time OAuth provider add shows no copyable authorization link #2533
Description
Client or integration
OpenCodex dashboard
Area
Dashboard
Summary
Adding an OAuth provider for the first time shows no copyable authorization link. Once the provider exists, its workspace panel shows the URL with a copy button — but during the first login, the one time the operator has no other way in, the dialog shows only "Waiting for the browser…".
Because the proxy opens the URL in the OS default browser and the link is not copyable, there is no way to complete that first login in a different Chrome profile, or from a different machine when the dashboard is being used against a remote host.
Reproduction
- Start with no xAI provider configured.
- Open the dashboard → Providers → Add provider → Accounts tab.
- Press Log in on a provider that is not yet added.
- Observe: a spinner and "Waiting for the browser…". No URL, no copy button, no device code, no paste field.
- Now add the provider, log out, and press Log in from its workspace panel instead.
- Observe: the authorization URL with a copy button, and a device code when the provider sends one.
Step 4 and step 6 are the same operation against the same endpoint.
Version
2.32.1
Operating system
macOS 15.5
Provider and model
xai / any (reproduces on any OAuth provider)
Logs or error output
No error is logged. The login starts normally; the hint is simply never rendered.Screenshots and supporting files
The cause is visible in the code rather than in a log. gui/src/pages/use-providers-oauth.ts reads url, instructions and deviceCode from the login response and stores them via setLoginInfo. gui/src/pages/Providers.tsx passes that state to ProviderDetails → ProviderAuthPanel, which is the workspace surface for a provider that already exists.
During a first add there is no such provider, so no panel is mounted and the hint has no renderer. The account row falls back to a spinner label.
Redacted configuration
{ "providers": {} }Checks
- I searched existing issues and documentation.
- I removed secrets, tokens, account details, request credentials, and personal data.
Activity
lidge-jun commentedon Aug 25, 2026
리뷰 · 우선순위 57 / 80
설명: 이 이슈는 제공자를 처음 넣을 때 복사할 인증 링크가 안 보인다고 적는다. 작성자는 lidge-jun 이다. 라벨은 bug, account-pool, gui 다. 지금 CURRENT dev HEAD 는 98ed186 이다. 이번 시간에 SHA 는 안 움직였다. 구현 풀은 2534 다. 2534 베이스는 2530 브랜치지 origin/dev 가 아니다. 이슈를 연다. 닫지 말 것. 라벨은 바꾸지 말 것.
HEAD 에서 원인을 읽었다. use-providers-oauth.ts 93-95줄은 url, instructions, deviceCode 를 읽어 loginInfo 에 넣는다. Providers.tsx 는 그 상태를 이미 있는 제공자의 ProviderAuthPanel 로만 넘긴다. 첫 추가에는 그 패널이 없다. ProviderCatalog.tsx 148-211줄은 계정 탭 행에 로그인과 취소 버튼만 있다. url, 코드, 붙여넣기가 모두 없다. busy 이면 스피너 문구만 남는다. 이슈가 적은 재현과 맞다. 같은 엔드포인트인데 화면만 다르다.
2529 는 힌트 조각이 화면마다 다른 구멍이다. 2530 이 그 조각을 작업공간과 모달 OAuth 칸과 코덱스 대기에 심는다. 이 이슈는 그 조각이 있어도 그릴 칸이 없는 첫 추가 구멍이다. 둘을 한 이슈로 다시 합치지 말 것. 2530 이 머지되어도 카탈로그 행은 HEAD 와 같이 비어 있다. 그래서 2530 의 Closes 2529 가 이 이슈를 닫으면 안 된다. 2530 본문은 2533 을 닫지 않는다.
구현은 2534 다. 그 풀은 loginInfo 를 페이지에서 모달을 거쳐 카탈로그로 넘기고, shouldShowLoginHint 가 행과 제공자와 바쁨을 같이 본다. 코덱스 행은 그리지 않는다. 다만 2534 는 2530 위에 쌓여 있다. 2530 이 먼저다. 이 이슈를 2534 가 머지되기 전에 닫지 말 것. 1769 로 닫지 말 것. 2221 도 연다. types.ts 와 config.ts 가르기와는 무관하다. 프리뷰 배포가 아니다.
원격 대시보드와 다른 크롬 프로필이 이 구멍의 실제 피해다. 프록시가 서버 쪽에서 브라우저를 열면 그 기계의 기본 브라우저만 열린다. 링크가 화면에 없으면 다른 기계나 다른 프로필로 옮길 수 없다. 작업공간 패널은 이미 그 링크를 보여 준다. 첫 추가만 빼먹었다. 내가 머지하지 않는다. 구현이 착지하기 전에 닫지 말 것.
gui/src/pages/use-providers-oauth.ts 93-95줄 - 힌트를 이미 저장한다. 문제는 저장이 아니라 그릴 칸이 없는 것이다
gui/src/components/provider-catalog/ProviderCatalog.tsx 148-211줄 HEAD - 계정 탭 행에 url 코드 붙여넣기가 없다
gui/src/pages/Providers.tsx - loginInfo 가 작업공간 패널로만 가서 첫 추가 모달에 안 내려간다
2530 - 공유 힌트 조각을 만든다. 이 이슈의 카탈로그 칸은 안 고친다
2534 - 구현 풀이다. 베이스가 origin/dev 가 아니다. 이 이슈보다 먼저 닫지 말 것
메인테이너의 판단이 필요한 지점
너의 추천
이 이슈는 연다. 2530 이 먼저 착지한 뒤에 2534 를 기다린다. 지금은 닫지 말 것. 2529 와 합치지 말 것. 내가 머지하지 않는다. 라벨은 그대로 둔다. 프리뷰 배포가 아니다.
이 댓글은 grok-bot이 작성했습니다
lidge-jun commentedon Aug 25, 2026
Landed via #2534 at 315f5bf