Skip to content

Settings and accessibility

/settings collects all the toggles. Five panels: skill profile, review voice, profile, accessibility, weekly reflection.

Skill profile

  • Shows latest assessment date.
  • Retake the assessment → starts a new run at /assess/<run_id>.
  • or reset all progress → link goes to /settings/reset (see below).

Review voice

A pointer to /voices where you browse the named-thinker roster and set your default. See Hints and voices.

Profile

Local single-user mode. Three fields, all persisted to users.settings_json:

  • Display name (used in the home page greeting)
  • Email (for future hosted mode; not sent anywhere now)
  • Time zone (IANA list — empty = system default; affects "today" boundary in scheduler)

Live email validation mirrors the server-side regex; surfaces the error on blur once you've left an invalid value.

Accessibility

Three toggles, all persisted to users.settings_json.a11y. Applied via data-* attributes on <html> in base.html, with CSS in static/css/main.css.

Toggle What it does Implementation
Reduce motion Zeroes animations + transitions. Also respects the OS prefers-reduced-motion media query automatically. [data-reduce-motion="1"] selector + @media (prefers-reduced-motion: reduce) global rule
Larger text Bumps base font 16px → 19px (matches WCAG large-text threshold). html[data-larger-text="1"] { font-size: 19px; }
Higher contrast Pure black/white body text, thicker focus rings, underlined links. html[data-high-contrast="1"] overrides several --text-color and --border-* variables

All three persist across reload (server-side) and apply on the next render.

Weekly reflection

A pointer to /reflect. See Reflect.

Reset progress

/settings/reset is the destructive escape hatch. Useful for:

  • Testing the onboarding flow
  • Starting over after a stretch of test attempts
  • Wiping practice data while keeping authored work

What it deletes

Table Why
attempts Practice submissions
content_progress Read/watched/rated content rows
review_state Per-problem recall scoring
sessions Session aggregates
assessment_runs + assessment_responses The assessment itself
attempt_reviews Cascades from attempts
reflections Hamming-mode replies

Also clears users.settings_json.onboarding_skipped so the next visit to / redirects to /onboarding.

What it keeps

  • JDs you've pasted
  • Writings + drafts
  • Feedback inbox
  • Credential uploads (CV parses)
  • Your account itself (no re-sign-in)

Confirmation gate

The big red button is disabled by default. To enable: retype the visible row-count number into the confirmation input. Prevents single-click fat-finger deletes.

See also