feat(dashboard): демо-консоль, проигрывание сценария, сплит-экран #69

Merged
Eleboba merged 2 commits from feat/17-demo-console into dev 2026-10-04 12:53:15 +03:00
Owner

Что меняется

Демо-консоль и сплит-экран для показа жюри: веб-чат пациента (запасной к React-приложению), управление демо-часами, проигрывание сценария data/synthetic/<персона>.jsonl («проиграть день N», «прокрутить до дня N») с паузой при ошибке, сплит-экран «пациент | врач» с живыми алертами. Всё только через HTTP API.

Closes #17

Зона

C

Как проверить

make up   # или: uv run uvicorn app.main:app & API_BASE_URL=http://localhost:8000 uv run streamlit run dashboard/app.py
  • http://localhost:8501 → «Демо-консоль»: выбрать пациента (или «Подключить демо-пациента» в сайдбаре, если сида нет) → «🚀 Начать» → кнопки в чате; «Следующий день», «К 08:00».
  • При наличии data/synthetic/andrey.jsonl (#18): «▶ Проиграть день N» / «⏭ Прокрутить до дня N», журнал шагов.
  • «Сплит-экран»: слева чат (или iframe при PATIENT_WEB_URL=http://localhost:5173), справа пациенты и алерты, красный баннер на новый острый алерт.
  • uv run pytest -q tests/test_dashboard_console.py tests/test_dashboard_console_pages.py — 30 тестов.

Чек-лист

  • rebase на origin/dev
  • make lint + make test зелёные
  • лог в issue (### 2026-10-04)
  • нет ПДн в логах, нет реальных данных, нет секретов
  • общие файлы не тронуты (dashboard/app.py, api_client.py — зона #16)
## Что меняется Демо-консоль и сплит-экран для показа жюри: веб-чат пациента (запасной к React-приложению), управление демо-часами, проигрывание сценария `data/synthetic/<персона>.jsonl` («проиграть день N», «прокрутить до дня N») с паузой при ошибке, сплит-экран «пациент | врач» с живыми алертами. Всё только через HTTP API. Closes #17 ## Зона C ## Как проверить ```bash make up # или: uv run uvicorn app.main:app & API_BASE_URL=http://localhost:8000 uv run streamlit run dashboard/app.py ``` - http://localhost:8501 → «Демо-консоль»: выбрать пациента (или «Подключить демо-пациента» в сайдбаре, если сида нет) → «🚀 Начать» → кнопки в чате; «Следующий день», «К 08:00». - При наличии `data/synthetic/andrey.jsonl` (#18): «▶ Проиграть день N» / «⏭ Прокрутить до дня N», журнал шагов. - «Сплит-экран»: слева чат (или iframe при `PATIENT_WEB_URL=http://localhost:5173`), справа пациенты и алерты, красный баннер на новый острый алерт. - `uv run pytest -q tests/test_dashboard_console.py tests/test_dashboard_console_pages.py` — 30 тестов. ## Чек-лист - [x] rebase на origin/dev - [x] make lint + make test зелёные - [x] лог в issue (### 2026-10-04) - [x] нет ПДн в логах, нет реальных данных, нет секретов - [x] общие файлы не тронуты (`dashboard/app.py`, `api_client.py` — зона #16)
Eleboba added 2 commits 2026-10-04 12:51:13 +03:00
- pages/2_Демо-консоль.py: persona selector, virtual clock bar (+1 h, to 08:00/20:00,
  next day, reset with confirm), fallback patient web chat (buttons from Reply.buttons,
  kind styling, outbox drained after every action and on a 2 s fragment poll), scenario panel
- pages/3_Сплит-экран.py: patient chat or PATIENT_WEB_URL iframe on the left, compact doctor
  panel (patients, live alerts, red banner on a new acute alert) on the right
- console/playback.py: data/synthetic/<persona>.jsonl runner (advance_to/press/text/
  expect_color/start), date chaining between days, pause on failure with retry/skip/manual
- console/api.py: own HTTP client over the frozen API contract, ApiError only

Refs #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(dashboard): console fallbacks for the real API (#12)
CI / ruff · pytest (pull_request) Successful in 1m37s
8d12aa3d08
- personas degrade: /demo/personas → doctor's patients (hero first) → env token
- scenario file guessed from the transliterated first name (andrey.jsonl), like the backend
- «Подключить демо-пациента»: connects the synthetic hero via /patients/connect when no seed
- connect code prefilled from ?code= of the console link

Refs #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit 497fb551f5 into dev 2026-10-04 12:53:15 +03:00
Eleboba deleted branch feat/17-demo-console 2026-10-04 12:53:16 +03:00
Sign in to join this conversation.