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

39 lines
1.9 KiB
Markdown

# Phase 5 — Polish & quality of life
**Goal:** the app feels like AI Dungeon — cohesive dark UI, smooth flows, safe data handling.
## UI/UX pass
- [x] Theming: refined dark palette, serif story typography, subtle textures/gradients à la
AI Dungeon; consistent buttons, panels, modals; responsive layout.
- [x] Home: adventure cards with scenario name, last-played time, action count; search/filter;
scenario gallery with tags.
- [x] 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.
- [x] Scenario **placeholders**: `${Character name}` style variables in prompt/memory prompt the
player for values when starting an adventure (AI Dungeon behavior).
## Data & robustness
- [x] Adventure export/import (full JSON: actions, memory, cards, script state) — backup/share.
- [x] Delete confirmations (trash/soft-delete skipped — plain confirm dialogs).
- [x] SQLite migrations story (versioned schema bootstrap via PRAGMA user_version —
`backend/app/migrations.py`).
- [x] Request logging + a debug page tailing recent provider requests/responses (bodies redacted
of API key) — "Recent AI requests" on the Settings page.
- [x] 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.