Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Web lobby cannot reopen Setup after configuration

Aperta
#525 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@YEH-YU-YANG ci sta già lavorando.

Dal 27/10/2026.

  • #528 di @YEH-YU-YANG — aperta

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.

  1. Start codetrial web on a loopback address with an empty data directory.
  2. Complete Setup with LiveKit credentials, leaving the optional Google key empty.
  3. Sign in through the local GitHub-username form and look for a way to change the service keys.
  4. Open /setup manually.
  5. 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_SECRET and 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sysprog21/codetrial

Tutte le issue di sysprog21/codetrial

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.