Files
ozone-tech_owl_prime/docs/IMPLEMENTATION_REPORT.md
Даня Архипов 985f7c327d feat: maximize sorter demo realism and add safe agent MVP
Wire live classifyItem into continuous playback, add jam/E-stop cases,
presenter controls (seek/speed/hotkeys), quality modes, demo scripts,
audit docs, and a verify-only autonomous agent CLI with hard safety limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 16:53:35 +00:00

7.6 KiB
Raw Blame History

Отчёт о реализации — maximum-demo-realism

Ветка: feature/maximum-demo-realism
База: dan_branch @ e89c728
Backup tag: backup/pre-maximum-demo-realism-20260715
Дата: 2026-07-15
Проект: OZON Tech Sorter Simulation (Track 3)


1. Цель итерации

Максимально поднять убедительность живой демонстрации: live-классификация, safety-сценарии, proof UI, управление показом, адаптивное качество, ops-скрипты и безопасный MVP агента — без выдуманных секретов и без auto-deploy.


2. Все выполненные изменения (реальные)

# Изменение Зачем
1 classifyItem встроен в continuous playback Live classification, не только подписи playlist
2 measurementSystem → DIMENSION_LIMITS + classifyItem; min dims; confidence 0.65 Согласованность измерений и правил
3 Playlist 8→10: jam + emergency_stop timelines Safety story для жюри
4 physicalItemMotion: fault freeze/recover + seeded jitter Правдоподобие и воспроизводимость
5 Demo controls: seek, speed 0.5–2×, hotkeys Space/N/B/R/P/E/F/1–0, presentation, event journal Управление живым показом
6 Quality modes low/medium/high/demo FPS на разных клиентах
7 Proof HUD: DIM pass/fail, K, reason; CV overlay RULE Доказательство работы алгоритма
8 simulation.test.ts: jam / estop / c_priority Регрессия safety/логики
9 Agent MVP agent/cli.mjs: dry-run|run-once|status|stop|resume|pause|report Автономия уровня verify-only
10 Scripts: demo-start/stop/reset/health, agent-dry-run, agent-run-once One-command ops
11 resolveItem для SKU-*-LC Стабильность данных

3. Изменённые / затронутые области файлов

Точный git diff зависит от незакоммиченного состояния рабочей копии. Ниже — карта модулей по смыслу изменений (проверено по коду репозитория).

Область Файлы (ключевые)
Continuous / classify src/domain/continuousPlayback.ts, measurementSystem.ts, classifier.ts
Playlist / faults src/domain/demoPlaylist.ts, physicalItemMotion.ts, seededRng.ts
UI demo src/pages/MainPage.tsx, Proof/CV components, styles
Quality src/domain/qualityMode.ts, qualityMode.test.ts
Data src/data/resolveItem.ts
Tests src/domain/simulation.test.ts, связанные domain tests
Agent agent/cli.mjs, agent/state/*, agent/reports/*
Scripts scripts/demo-*.sh, scripts/agent-*.sh
Package scripts package.json (demo:*, agent:*)
Docs этот набор docs/*.md аудита

4. Причины изменений (кратко)

  1. Жюри должно видеть причинно-следственную связь измерений → правила → маршрут.
  2. Без jam/e-stop демо выглядит «идеальной анимацией».
  3. Без hotkeys/presentation оператор теряет контроль на сцене.
  4. Без quality modes слабые ноутбуки дают рывки и подрывают доверие.
  5. Agent/scripts нужны для устойчивой эксплуатации и будущего цикла улучшений с лимитами.

5. Результаты тестов

Проверка До После Тип
Vitest passed 144 153 Измерено
Test files 14 16 Измерено
E2E CI нет нет Измерено
Lint (отдельный) не выделен в package не выделен Измерено
Typecheck через tsc -b в build OK вместе с build Измерено

6. Метрики до и после

Метрика До После Изменение
Tests 144 153 +9
Test files 14 16 +2
Build OK ~391 ms OK стабильно
CSS — 39.66 kB / gzip 8.79 зафиксировано
Continuous twin chunk — 51.29 kB / gzip 13.68 зафиксировано
Playlist size 8 10 +faults
Agent нет MVP CLI +ops
Live classify on / слабо wired +proof

Main R3F chunk baseline до итерации: ~881 kB (Измерено historically).


7. Оставшиеся ограничения

Ограничение Комментарий
Нет real physics engine Детерминированная кинематика
Pseudo-CV Synthetic measurements
Dual 3D twins diverge / vs /details
Нет e2e в CI Playwright вручную
Agent без auto-patch By design MVP
Production :3100 Может служить старый dist до redeploy
Нет docker CLI в этой среде Redeploy — внешняя ops-процедура
GPU idle Не используется для demo render

8. Инструкции запуска

Демо (preview, не путать с prod :3100)

cd /home/coder/arhipovdan/app
npm run demo:start          # build + vite preview 127.0.0.1:3101
npm run demo:health         # :3100 / :3101 / public + vitest
npm run demo:stop           # остановить preview
# также: bash scripts/demo-reset.sh

Разработка

npm install                 # при необходимости
npm run dev                 # 127.0.0.1:3100 (vite dev — не prod nginx)
npm test
npm run build

Агент

npm run agent:dry-run
npm run agent:run-once
npm run agent:status
node agent/cli.mjs stop     # перед живым показом
node agent/cli.mjs resume
node agent/cli.mjs report

Откат кода

git fetch --tags
git checkout backup/pre-maximum-demo-realism-20260715
# или сброс ветки к e89c728 по необходимости (только осознанно)

Production

Публичный URL: https://arhipovdan.ru/ (nginx loopback :3100 + cloudflared).
После merge/сборки нужен ручной redeploy образа/dist — агент этого не делает.


9. Hotkeys (оператору демо)

Клавиша Действие
Space Play / pause
N Next case
B Back / previous
R Reset
P / F Presentation / fullscreen-related
E Event journal focus/toggle (UI)
1–0 Seek/jump по кейсам playlist

Speed: 0.5×–2× через demo controls UI.


10. Вывод

Итерация достигла измеримого улучшения демо-контура (тесты +9, playlist +faults, live classify, proof, controls, agent MVP). Критический остаточный ops-риск — рассинхрон production dist. Технический потолок реализма без смены архитектуры — кинематика + pseudo-CV; это задокументировано честно.