Web lobby cannot reopen Setup after configuration
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
After initial configuration, the local web lobby provides no way to reopen Setup and update service credentials. This proposal covers editing those credentials through the web interface and applying them after a server restart.
Reproduction
Tested on Linux using the upstream CI binary reporting codetrial 0.1.0 (ce2c50a) and Chromium, with isolated local service fixtures.
- Start
codetrial webon a loopback address with an empty data directory. - Complete Setup with LiveKit credentials, leaving the optional Google key empty.
- Sign in through the local GitHub-username form and look for a way to change the service keys.
- Open
/setupmanually. - Stop and restart the server using the same data directory.
The lobby has no entry back to Setup. /setup returns HTTP 200 with the same HTML as the lobby, without a Setup form. Subsequent launches skip Setup because the configuration file exists. All three independent browser runs reproduced this behavior.
A local user should be able to reopen credential settings from the lobby, including adding a Google key after initially leaving it empty. The current workaround is to edit codetrial.env.local manually and restart.
Impact on the existing implementation
Restarting reuses credential loading, provider-pool construction and dispatcher creation in run_web. An unmanaged web server needs a manual restart. Local interviewer tasks stop with the process, so applying changes requires an idle check and admission control.
Reloading in place requires consistent updates to runtime configuration, the provider pool, quota refresh and dispatcher availability; changing the LiveKit URL also affects CSP. Updating only the file leaves existing consumers using old settings. See web_router.
Both approaches need an editing path because the cold-start Setup writer refuses an existing file.
Proposed web-server change
- Add a "Change keys" entry for locally reachable deployments, retaining the loopback-listener, proxy and Host restrictions on the editing routes.
- Show the current endpoint and key-presence indicators without returning secrets. Preserve keys left unchanged and unrelated settings, including
SESSION_SECRETand database paths. - Reuse field validation and credential probes before safely updating the configuration file this launch actually reads. A failed validation or write must preserve the original file.
- Use the restart approach: accept changes while idle, show a restart-required notice and block new interview admission until restart. Keep the process running until explicitly restarted, so an unmanaged web launch can be restarted manually.
I would like to work on the web-server change described here.
Validation and limits
Three-run checks confirmed that retaining the database and SESSION_SECRET preserves local sign-in across restart, while changing the secret invalidates the session. The 286 existing Setup, account and lobby browser tests passed after restoring their checksum-pinned vendor resources. Additional HTTP and protocol-fixture checks covered file updates, failed probes, file permissions and local-access restrictions.
These results cover the original Linux web implementation. Actual interviews, GitHub OAuth, Windows restart and a new reload implementation were not tested.
- Lingua principale
- Rust
- Stelle
- 215
- Fork
- 141
- Merge medio
- 1g 10h
- PR unite (30g)
- 220
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sysprog21/codetrial
-
Audio output can be confirmed without playing a test soundForse già presa @ChenYingHan1121 l’ha presa 9 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
sysprog21/codetrial#359 · 5 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Offer a way back to Setup from the lobbyForse già presa @Patriciaath999 l’ha presa 1 giorno fa. Aperta
sysprog21/codetrial#513 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Jim's stage covers the editor, and Hide avatar does not free the spaceForse già presa @Phonlin l’ha presa 1 giorno fa. Aperta
sysprog21/codetrial#512 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Add LeetCode problem numbers to UI problem mappingsForse già presa @seallllllllll l’ha presa 1 giorno fa. Aperta
sysprog21/codetrial#507 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Collapse the specific-problem picker after choosing a specific problemForse già presa @8woodyc l’ha presa 2 giorni fa. Aperta
sysprog21/codetrial#505 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di sysprog21/codetrial
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Bump rustls-webpki, webpki-roots and webpki-root-certs for the emSign distrust (CVE-2026-111943)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
I maintainer di solito rispondono entro 1 giorno
-
type: enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
franciscoBSalgueiro/en-croissant#1061 ·
I maintainer di solito rispondono entro 3 giorni
-
chore good first issue macros spire
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno