Update Codex login success page UX (#20136)

## Summary

update the local login success page to match the Codex desktop auth UX
use theme-aware colors and an inline 20px Codex mark
keep the actual localhost success page aligned with the browser auth UX
PR

## Tests

<img width="1728" height="1117" alt="Screenshot 2026-04-29 at 12 00
34 PM"
src="https://github.com/user-attachments/assets/76a40c3f-07c3-452c-97da-e7c43717cd2c"
/>
This commit is contained in:
rafael-jac authored and GitHub committed 2026-04-29 19:14:53 -04:00
1 parent 74f06dcdfb
commit 98f67b15d3
15 files changed
+550 -188

No files matched your search

@@ -122,6 +122,7 @@ async fn end_to_end_login_flow_persists_auth_json() -> Result<()> {
open_browser: false,
force_state: Some(state),
forced_chatgpt_workspace_id: Some(chatgpt_account_id.to_string()),
codex_streamlined_login: false,
};
let server = run_login_server(opts)?;
assert!(
@@ -183,6 +184,7 @@ async fn creates_missing_codex_home_dir() -> Result<()> {
open_browser: false,
force_state: Some(state),
forced_chatgpt_workspace_id: None,
codex_streamlined_login: false,
};
let server = run_login_server(opts)?;
let login_port = server.actual_port;
@@ -222,6 +224,7 @@ async fn forced_chatgpt_workspace_id_mismatch_blocks_login() -> Result<()> {
open_browser: false,
force_state: Some(state.clone()),
forced_chatgpt_workspace_id: Some("org-required".to_string()),
codex_streamlined_login: false,
};
let server = run_login_server(opts)?;
assert!(
@@ -279,6 +282,7 @@ async fn oauth_access_denied_missing_entitlement_blocks_login_with_clear_error()
open_browser: false,
force_state: Some(state.clone()),
forced_chatgpt_workspace_id: None,
codex_streamlined_login: false,
};
let server = run_login_server(opts)?;
let login_port = server.actual_port;
@@ -346,6 +350,7 @@ async fn oauth_access_denied_unknown_reason_uses_generic_error_page() -> Result<
open_browser: false,
force_state: Some(state.clone()),
forced_chatgpt_workspace_id: None,
codex_streamlined_login: false,
};
let server = run_login_server(opts)?;
let login_port = server.actual_port;
@@ -490,6 +495,7 @@ async fn cancels_previous_login_server_when_port_is_in_use() -> Result<()> {
open_browser: false,
force_state: Some("cancel_state".to_string()),
forced_chatgpt_workspace_id: None,
codex_streamlined_login: false,
};
let first_server = run_login_server(first_opts)?;
@@ -510,6 +516,7 @@ async fn cancels_previous_login_server_when_port_is_in_use() -> Result<()> {
open_browser: false,
force_state: Some("cancel_state_2".to_string()),
forced_chatgpt_workspace_id: None,
codex_streamlined_login: false,
};
let second_server = run_login_server(second_opts)?;