Files
transcription/docs/ui/pages/settings.md
T
Jim Lancaster c05c054b94
Quality Gate / gate (push) Failing after 47s
Refine Settings page
2026-08-24 17:08:09 -05:00

2.1 KiB

Settings Page Contract

Purpose

Settings manages installation-local registries, safe runtime .env settings, and editable text assets from one route.

Route

Route Purpose
/settings Manage Runtime Settings, Document Types, Person Roles, Tags, Prompts, and Home Page Text.

Behavior

  • The page title is Settings.
  • Configuration surfaces are grouped as tabs:
    • Document Types
    • Person Roles
    • Tags
    • Prompts
    • Home Page Text
    • Runtime Settings
  • Runtime Settings exposes an allowlisted set of non-secret fields synchronized with Settings model fields except excluded secret/unsafe fields.
  • Runtime Settings is rendered as a compact two-column editor (Setting, Value) in a centered, narrower responsive container.
  • Runtime Settings persists changes to .env, validates by constructing a Settings instance, and reports validation failures through the shared UI error presenter.
  • Runtime Settings changes require application restart to take effect.
  • Runtime Settings includes an explicit "Other settings not shown here" markdown table listing:
    • secrets (OPENROUTER_API_KEY, DATABASE__PASSWORD)
    • high-risk database connection settings (DATABASE__DRIVER, DATABASE__PATH, DATABASE__HOST, DATABASE__PORT, DATABASE__DATABASE, DATABASE__USER) and directs edits for those keys to .env.
  • Document Types, Person Roles, and Tags support Add/Edit/Delete with existing guardrails.
  • Prompts exposes only transcribe_document.md for editing and restore-from-backup.
  • Home Page Text edits the same Markdown content rendered on /homepage.

Acceptance Checklist

  • /ui/settings renders all six tabs.
  • Registry and prompt workflows keep existing validation and error handling.
  • Runtime Settings excludes secret fields and rejects invalid values.
  • Saving Home Page Text persists content for the homepage view.

Implementation Anchors

  • src/transcription/ui/pages/settings_page.py
  • src/transcription/ui/runtime_settings_store.py
  • src/transcription/ui/homepage_store.py
  • tests/ui/test_pages_registration.py