# web-media-preview - [x] Создан OpenSpec change (proposal/design) - [x] web/app.py: роут `/media/{filename}` (FileResponse, защита path traversal) + MEDIA_DIRS - [x] candidates.html: превью медиа (img/video) вместо бейджа - [x] published.html: превью медиа - [x] `openspec validate web-media-preview` — чисто (skip_specs: true, валиден) - [x] Перезапуск веба; /media/LinuxMastery_1079.jpg → 200 image/jpeg; mp4 (старый) → 200 video/mp4; missing → 404 - [x] Бэкап после правки (`sudo /opt/vesti/backup.sh`) - [x] Клик по картинке → полноразмер в новой вкладке (`` вокруг ``, без JS)