Commit Graph

  • 76d36e5c35 feat(backup): формат бэкапа v2 — audit/уведомления/баны, counts и одноразовый тикет master dev 2026-10-04 01:36:58 +03:00
  • 32aabe9a80 fix(lesson-ai): обновление промпта у существующих БД + правило в AGENTS.md dev 2026-10-04 00:58:12 +03:00
  • 2363d099d2 feat(lesson-ai): новый шаблон промпта + предупреждение о дубле отчёта dev 2026-10-04 00:54:23 +03:00
  • b931c0a760 feat(lesson-ai): проверка отчёта о занятии по шаблону + история версий dev 2026-10-04 00:12:24 +03:00
  • a84f33307e feat(lessons): отчёты о занятиях — таблица, CRUD, страница и блок на дашборде dev 2026-10-03 23:33:45 +03:00
  • 0dc8ffdb87 feat(export): фото ученика и логотип в экспорте профиля dev 2026-10-03 22:57:35 +03:00
  • 2377707297 feat(students): аватары в списке студентов с превью и лайтбоксом dev 2026-10-03 21:33:25 +03:00
  • 70b0c7ae9b feat: env-driven upload limits + request timeout, inline video playback, range requests dev 2026-10-03 12:00:48 +03:00
  • 104bdc4f49 feat(uploads): лимиты загрузки в env, 50 МБ на файл и 200 МБ на запись dev 2026-10-03 10:38:36 +03:00
  • 449b86955e feat(groups): расширенный экспорт фото — галерея и оригиналы dev 2026-10-02 13:07:47 +03:00
  • 55c4b281c3 feat(groups): ZIP-архив группы с выбором категорий и режима фото dev 2026-10-02 12:48:36 +03:00
  • 45033bffa8 feat(photo-ai): Stage 5 — фронтенд фото-ИИ (режимы, статус, метаданные) dev 2026-09-30 11:15:54 +03:00
  • 884188e9ec feat(photo-ai): Stage 4 — face-режим, апскейл-модели и метаданные в аудите dev 2026-09-29 15:08:46 +03:00
  • 4c63a46d24 fix(photo-ai): лестница OOM на CUDA + приёмка face-режима и GPU-оверрайда dev 2026-09-29 12:02:03 +03:00
  • 7367d66ac3 build(photo-ai): CPU/GPU сборка, gfpgan+facexlib без dev-зависимостей, healthcheck dev 2026-09-29 09:35:40 +03:00
  • e8c15cc425 feat(photo-ai): реестр моделей и авто-выбор устройства dev 2026-09-29 00:36:16 +03:00
  • 88dbff0136 chore(photo-ai): Stage 0 закрыт, решения D1–D6 зафиксированы dev 2026-09-28 23:38:48 +03:00
  • 00fbf41efb build(photo-ai): loopback-порт 8081 и раздел про фото-ИИ в README dev 2026-09-28 23:38:39 +03:00
  • 1a25ce7170 fix(photo-ai): отдавать health фото-сервиса в статусе заданий dev 2026-09-28 23:38:32 +03:00
  • 403574fe79 chore(photo-ai): раздел 0 — жёсткие инварианты I1–I7 зафиксированы dev 2026-09-28 23:19:16 +03:00
  • 31542de33b feat(photos): раздел «Фото» — единая галерея всех загруженных фотографий dev 2026-09-28 00:15:32 +03:00
  • 2afe676969 feat(notifications): центр уведомлений о системных событиях dev 2026-09-27 23:34:47 +03:00
  • f31b8deea2 feat(settings): блок «Статус стека» — на чём всё крутится dev 2026-09-27 12:46:49 +03:00
  • 4d3df1de37 fix(redis): разбирать INFO по разделителю, а не по фиксированному смещению dev 2026-09-27 12:46:41 +03:00
  • 3ecf87146a build(docker): перейти на Node 22 (AWS SDK требует node >=22) dev 2026-09-27 12:05:55 +03:00
  • eea42eb704 style(audit): кнопка закрытия деталей в общем стиле сайта dev 2026-09-27 12:01:48 +03:00
  • 54cf5bbfa4 feat(audit): показывать изменения текста записи по шагам dev 2026-09-27 11:29:17 +03:00
  • 19676c9b64 test(auth): зафиксировать контракт авторизации в smoke-тесте dev 2026-09-26 16:08:32 +03:00
  • 87541a5ce8 docs(auth): исправить устаревшее описание авторизации dev 2026-09-26 16:05:47 +03:00
  • 4b620d3e59 chore(repo): перестать отслеживать генерируемый public/version.json dev 2026-09-26 15:36:32 +03:00
  • cb0e68d04a chore(deploy): обновить version.json на 0e38a28 dev 2026-09-26 15:27:47 +03:00
  • 0e38a280d7 feat(redis): кэш, rate limit, баны IP и pub/sub через Redis dev 2026-09-26 15:26:00 +03:00
  • e4d58d6525 chore(storage): убрать неиспользуемый код и стабилизировать деплой dev 2026-09-26 11:16:36 +03:00
  • ddd49707ae feat(storage): S3-совместимое хранилище файлов (SeaweedFS/MinIO) и миграция uploads dev 2026-09-26 11:08:53 +03:00
  • 8bf54fb95d feat(trash): deferred purge after configurable days, groups in trash dev 2026-09-24 13:11:31 +03:00
  • e6c69c8a78 feat(settings): option to show/hide camera button, preview click opens camera dev 2026-09-24 12:00:20 +03:00
  • e4704c2dc6 fix(index): paste fills only project files, photo stays webcam-only dev 2026-09-24 11:21:58 +03:00
  • a72600af13 feat(index): paste photos and project files from clipboard with Ctrl+V dev 2026-09-24 11:18:08 +03:00
  • 2e1d36bc4d chore(deploy): exclude generated version.json from deploy dirty check dev 2026-09-23 23:02:37 +03:00
  • d943b77f58 chore(deploy): bake commit version into image and add scripts/deploy.sh dev 2026-09-23 23:01:36 +03:00
  • a95af7daa7 fix(backup): accept /uploads/.originals paths in photo_jobs on restore dev 2026-09-23 22:23:38 +03:00
  • 69d46a0e5f fix(backup): stream backup download via resumable token link instead of buffering dev 2026-09-23 19:03:19 +03:00
  • 16aba3efb0 fix(settings): constrain logo preview size so it does not overflow the card main dev 2026-09-23 16:56:31 +03:00
  • cb3f010cd9 fix(photo): preserve photo_jobs history in backup/restore; paginate photo history on worker page dev 2026-09-23 16:37:27 +03:00
  • 30cf04b0cf feat(branding): logo and system name on share and report pages, drop logo border-radius dev 2026-09-23 16:25:13 +03:00
  • f2d465e0c4 feat(branding): system name/logo, horizontal logo on all pages dev 2026-09-23 15:19:23 +03:00
  • e435b4ad43 feat(ui): show current commit version and date in admin sidebar dev 2026-09-23 14:14:29 +03:00
  • 218c3f825d fix(backup): restore new fields, share_links and photo originals dev 2026-09-23 13:49:25 +03:00
  • 4623358f21 feat(students): multi-photo gallery, group photos in export, KIBERone rebrand dev 2026-09-23 13:32:09 +03:00
  • 5e2533b876 feat(groups): assign tutor to group dev 2026-09-19 13:17:40 +03:00
  • 1ef81f9d1c wip: student profile/report dev 2026-09-19 13:06:21 +03:00
  • 72eeb5cf9b fix(entries): keep AI description and status when editing entry dev 2026-09-18 23:32:55 +03:00
  • d7d4cc1133 feat(modules): soft delete with restore and active filter dev 2026-09-18 20:04:02 +03:00
  • d3dd922e32 feat(modules): batch module import in admin, module usage in journal dev 2026-09-18 19:36:32 +03:00
  • 12a527b3ee chore(report): add design reference and screenshots dev 2026-09-18 19:26:34 +03:00
  • e6291a0235 feat(modules): module topics for student form, admin CRUD with pagination dev 2026-09-18 18:56:42 +03:00
  • d434732f41 feat(report): student report page with works/gallery/files sections dev 2026-09-18 17:50:50 +03:00
  • 12c612eccd feat(audit): translate photo job audit actions to Russian dev 2026-09-17 22:25:17 +03:00
  • 5874e2b619 feat: photo jobs apply/reject flow with applied flag in history dev 2026-09-17 18:51:26 +03:00
  • 881b5b4c67 fix: repair photo worker broken code; add pending queue view dev 2026-09-17 17:52:51 +03:00
  • 1145be02f3 feat: persistent photo job queue, worker, history with rollback dev 2026-09-17 17:36:56 +03:00
  • 27a2238082 feat: compare slider UI for photo enhance modal dev 2026-09-17 17:02:35 +03:00
  • dec8790a3a fix: AI photo enhance modal stays open with result preview; fix basicsr build dev 2026-09-17 16:44:44 +03:00
  • 3a345cbefd feat: AI photo enhancement (Real-ESRGAN container) + restore original dev 2026-09-17 15:37:49 +03:00
  • c4fd31cd53 feat: hybrid photo enhance engine (server sharp + client canvas), denoise dev 2026-09-17 15:16:42 +03:00
  • 049df61e55 feat: photo quality improvements dev 2026-09-17 15:07:43 +03:00
  • 57e48a9d4f fix(ai): adaptive max_tokens per backend (reasoning profiles get 1024+, native llama.cpp stays compact; per-profile max_tokens override); include entry texts in ai_status SSE notify so journal updates live without reload; audit log action filter; links pagination; settings validation & UI improvements dev 2026-09-17 14:12:36 +03:00
  • a93e37a6b1 fix(settings): prevent aiActiveProfile select from overflowing card-foot (shrinkable label+select, min-width:0 on grid cards) dev 2026-09-17 12:11:18 +03:00
  • 0b4243fe91 feat(docker): add host.docker.internal:host-gateway to app so it can reach host Ollama (AI profiles) dev 2026-09-17 12:06:11 +03:00
  • 66f7fdc1a8 refactor(settings): AI profile add/edit moved into a modal dialog (overlay click + Esc to close) dev 2026-09-17 12:00:19 +03:00
  • d7c793c67a fix(settings): constrain aiActiveProfile select width so it stays inside card-foot dev 2026-09-17 11:58:34 +03:00
  • efe2a42d1d feat(settings): AI model profiles management — native llama.cpp + custom OpenAI-compatible providers, default model selection, connection test dev 2026-09-17 11:54:08 +03:00
  • bbfde902a5 feat(journal): live AI status updates in entry cards via Postgres NOTIFY trigger + SSE ai_status events dev 2026-09-17 11:14:27 +03:00
  • cc9a9e6c2d feat(journal): beautiful entrance animation for entries — cascade fade-up on load, yellow glow pop for newly submitted entries dev 2026-09-16 20:14:09 +03:00
  • 2784084c68 feat(journal): live updates on new entry via SSE (/api/events) — admin journal auto-refreshes when a student submits dev 2026-09-16 20:09:06 +03:00
  • e8337c2845 feat(share): group entries by date on public /s/<token> page dev 2026-09-16 15:06:30 +03:00
  • 6cfb13310d chore: checkpoint before date grouping on share page dev 2026-09-16 15:05:56 +03:00
  • 2c8beedc4b feat: анти-спам блокировка повторной отправки на главной (cooldown по spam_interval_min) dev 2026-09-13 12:27:35 +03:00
  • 0b763e5738 feat(cloudflared): timeout+fallback for WG handshake (WG_HANDSHAKE_TIMEOUT) so tunnel still starts when VPN peer is down main-server-backup dev 2026-09-13 00:34:43 +03:00
  • 1fc17225b0 fix(cloudflared): chmod 600 wg config in /tmp before wg-quick so WG starts regardless of host perms dev 2026-09-13 00:29:41 +03:00
  • a7692b1c35 chore: exclude wg/ from docker build context so WG config stays host-only dev 2026-09-13 00:20:51 +03:00
  • fac668567e feat: редизайн страницы отчёта ученика — портфолио-стиль, галерея с листанием и видео dev 2026-09-12 23:55:35 +03:00
  • 3c40e94a57 fix: get cloudflared WireGuard tunnel actually serving dev 2026-09-12 18:51:19 +03:00
  • dd4d306a4e feat: cloudflared container with optional WireGuard egress dev 2026-09-12 17:40:42 +03:00
  • 9203eee5d2 fix: требовать фотографию при создании записи (POST /api/entries) на уровне API dev 2026-09-12 17:26:51 +03:00
  • b263a735ac fix: обязательная фотография в форме отправки; модалка редактирования шире и в две колонки; поддержка .jfif в прикреплении dev 2026-09-12 17:19:53 +03:00
  • 854f2d4650 feat: публикация наружу через Cloudflare Quick Tunnel (cloudflared) dev 2026-09-12 15:06:56 +03:00
  • 779270fb73 UI: пагинация, вынос пагинатора, быстрые действия dev 2026-09-12 14:18:15 +03:00
  • 1d706f1356 Dashboard: add Блокировки link to navigation dev 2026-09-12 12:52:23 +03:00
  • a8e1aa743d Build app image on host network to bypass bridge egress/TLS issues dev 2026-09-12 12:22:59 +03:00
  • 1e38419f07 Dockerfile: cascade apk mirror fallback to HTTP (signature-verified) with diagnostics on total failure dev 2026-09-12 12:09:15 +03:00
  • 21b00a8e09 Dockerfile: fall back to edge.kernel.org mirror when dl-cdn TLS fetch fails dev 2026-09-12 11:30:13 +03:00
  • db684efe9e Dockerfile: retry apk add on transient Alpine mirror TLS failures dev 2026-09-12 11:04:40 +03:00
  • fd753c1318 Add cookie notice with settings, jfif preview support, and share page title from link name dev 2026-09-12 10:05:02 +03:00
  • 192de5e690 Sidebar: color inactive nav icons by section meaning via data-nav attribute dev 2026-09-12 01:18:57 +03:00
  • 809b978c4b Bans: confirm unban via alert; audit labels for ip.ban/ip.unban; worker page lucide icons dev 2026-09-12 01:14:58 +03:00
  • c54a5b180c Settings bans card: unban also requires confirmation dev 2026-09-12 01:06:24 +03:00
  • e69426882a Bans: unban requires inline confirmation row with yes/cancel dev 2026-09-12 01:01:59 +03:00
  • 5aee2ce3f5 Bans page: users-style table with badges, client-side pagination, manual ban modal (POST /api/bans with ip/reason/hours), unban row buttons dev 2026-09-12 00:59:32 +03:00
  • 7dd816cfce Add dedicated Bans page (bans.html) with active IP bans table, unban and refresh; nav item for admins; settings card kept dev 2026-09-12 00:53:35 +03:00