Files
interactive-story/plan/05-phase-polish.md
T

1.9 KiB

Phase 5 — Polish & quality of life

Goal: the app feels like AI Dungeon — cohesive dark UI, smooth flows, safe data handling.

UI/UX pass

  • Theming: refined dark palette, serif story typography, subtle textures/gradients à la AI Dungeon; consistent buttons, panels, modals; responsive layout.
  • Home: adventure cards with scenario name, last-played time, action count; search/filter; scenario gallery with tags.
  • Play screen: collapsible right side panel (Memory / Cards / Scripts / Insights tabs), keyboard shortcuts (Enter send, Ctrl+Z undo, Ctrl+R retry), smooth streaming autoscroll that pauses when the user scrolls up.
  • Scenario placeholders: ${Character name} style variables in prompt/memory prompt the player for values when starting an adventure (AI Dungeon behavior).

Data & robustness

  • Adventure export/import (full JSON: actions, memory, cards, script state) — backup/share.
  • Delete confirmations (trash/soft-delete skipped — plain confirm dialogs).
  • SQLite migrations story (versioned schema bootstrap via PRAGMA user_version — backend/app/migrations.py).
  • Request logging + a debug page tailing recent provider requests/responses (bodies redacted of API key) — "Recent AI requests" on the Settings page.
  • Graceful handling: provider timeout/cancel (stop generation button), concurrent turn lock per adventure.

Nice-to-haves (only if time/interest)

  • Multiple provider profiles with quick switching (e.g. local Ollama vs OpenRouter).
  • Per-scenario generation params overriding global settings.
  • Retry with "give me something different" (temperature bump / anti-repeat nudge).
  • Basic light theme toggle.

Exit criteria

A friend could sit down at localhost, start a scenario with placeholders, play comfortably, peek at Insights, and you can back up / restore everything via export files.