# Settings form components/settings-form.tsx is the credential screen, used twice: as step 2 of the first-run guide and on /settings. It renders analyst base URL, analyst key, analyst model, extra JSON parameters, Jev key and Jev model, plus the account email change field. It renders values from settingsView only, so a stored secret is never echoed back into the DOM - the fields show bullet-masked values, and a blank submission means "keep what is stored", enforced again in the upsert (see [[SQLite schema]]). The form carries a hidden after field. When the submission comes from the wizard, the action returns the user to /setup?step=3 so the readiness screen and its "Saved." message actually render; without it a configured user was forwarded straight to the console and Save appeared to do nothing. Every field has a real label element, asserted by the responsive Playwright checks. Related: [[First-run gate]], [[Credential vault]], [[Email collision check]].