This website requires JavaScript.
19b2365b4c
fix(backup): ссылка на архив переживает F5 и повторное скачивание
master
dev
2026-10-04 09:07:16 +03:00
76d36e5c35
feat(backup): формат бэкапа v2 — audit/уведомления/баны, counts и одноразовый тикет
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