# Task 06 — `/settings`: change the password, sign out, see when the session ends **Phase:** `11_admin_login` · **Source:** operator request 2026-10-17 — "the password should be changeable once logged in" **Story:** n/a ## Objective A fifth page the operator reaches from the masthead: the session facts, a working change-password form, and a sign-out. It has to survive the secret rotation from task 04 without leaving the browser holding a stale CSRF token. ## Work 1. `src/dashboards/app.py` — add `"/settings": "settings.html"` to `PAGES`. It lands behind the gate with no extra code (task 03's route-enumeration test proves it); do not add it to the public list. 2. `src/dashboards/web/pages/settings.html` — same ``/masthead as the other pages, `.tabs` nav **without** `aria-current` (Settings is not one of the four dashboards), and in `main`: - **Session** panel: `
` with the signed-in name, the expiry as a local timestamp *and* "in 29d 14h" via `Dash.duration(seconds_left)`, and ``. - **Change password** panel: three fields — current (`autocomplete="current-password"`), new (`autocomplete="new-password"`, `id="new-password"`), confirm (`autocomplete="new-password"`, `id="confirm-password"`) — each with a real `