From 1461507866b970162259e960b49e58bf15914aa4 Mon Sep 17 00:00:00 2001 From: explosion3975 Date: Thu, 22 Oct 2026 13:54:48 +0800 Subject: [PATCH] Match setup page to the lobby theme The first-run form no longer matched the lobby, and its required LiveKit fields were hard to distinguish from the optional Google AI key. Align the layout and colors with the lobby while preserving credential handling. Keep the two palettes in sync as the theme evolves and make status updates available to screen readers. Align the CLI check with the revised optional-key guidance. --- src/web/setup.rs | 223 ++++++++++++++++++++++++++----- tests/browser/setup-page.test.js | 164 +++++++++++++++++++++++ tests/cli.rs | 9 +- 3 files changed, 359 insertions(+), 37 deletions(-) create mode 100644 tests/browser/setup-page.test.js diff --git a/src/web/setup.rs b/src/web/setup.rs index 7266bb6a0..58723b0da 100644 --- a/src/web/setup.rs +++ b/src/web/setup.rs @@ -111,46 +111,201 @@ async fn setup_page() -> Html<&'static str> { /// launch with no console to print it on. Blank is a server that looks /// finished: the lobby loads, the interview starts, and nothing ever joins. const SETUP_PAGE: &str = r#" - + -codetrial Setup + +CodeTrial - Setup -

Setup

-

Enter your LiveKit and Google credentials to get started.

-
- - - From your project at cloud.livekit.io. - - - - - - - Both come from the same project's Keys page. - - - - From aistudio.google.com. - Optional, and what it decides is whether this server hosts the interviewer. Without it - the app still loads and an interview still starts, but nobody joins the room: something - running elsewhere would have to. - - -
-
+
+
CODETRIAL
+
+ First-time setup +

Set up CodeTrial

+

Connect your services to start practicing live technical interviews.

+
+
+
+ LiveKit credentials Required +

Use the URL and keys from the same LiveKit project.

+
+ + + Find it at cloud.livekit.io. +
+
+
+ + +
+
+ + +
+
+ Find both on the project's Keys page. +
+
+ Google AI Optional +

Add a key if this server will host the interviewer.

+
+ + + Get a key from aistudio.google.com. + Without a key, the app still loads and an interview can start, but an interviewer running elsewhere must join the room. +
+
+
+ +
+
+
+