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
dev2026-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)
dev2026-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)
dev2026-09-17 12:06:11 +03:00
66f7fdc1a8
refactor(settings): AI profile add/edit moved into a modal dialog (overlay click + Esc to close)
dev2026-09-17 12:00:19 +03:00
d7c793c67a
fix(settings): constrain aiActiveProfile select width so it stays inside card-foot
dev2026-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
dev2026-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
dev2026-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
dev2026-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
dev2026-09-16 20:09:06 +03:00
e8337c2845
feat(share): group entries by date on public /s/<token> page
dev2026-09-16 15:06:30 +03:00
6cfb13310d
chore: checkpoint before date grouping on share page
dev2026-09-16 15:05:56 +03:00
2c8beedc4b
feat: анти-спам блокировка повторной отправки на главной (cooldown по spam_interval_min)
dev2026-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
dev2026-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
dev2026-09-13 00:29:41 +03:00
a7692b1c35
chore: exclude wg/ from docker build context so WG config stays host-only
dev2026-09-13 00:20:51 +03:00
fac668567e
feat: редизайн страницы отчёта ученика — портфолио-стиль, галерея с листанием и видео
dev2026-09-12 23:55:35 +03:00
9203eee5d2
fix: требовать фотографию при создании записи (POST /api/entries) на уровне API
dev2026-09-12 17:26:51 +03:00
b263a735ac
fix: обязательная фотография в форме отправки; модалка редактирования шире и в две колонки; поддержка .jfif в прикреплении
dev2026-09-12 17:19:53 +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
dev2026-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
dev2026-09-12 00:53:35 +03:00