dev
8bf54fb95d
feat(trash): deferred purge after configurable days, groups in trash
2026-09-24 13:11:31 +03:00
dev
e6c69c8a78
feat(settings): option to show/hide camera button, preview click opens camera
2026-09-24 12:00:20 +03:00
dev
4623358f21
feat(students): multi-photo gallery, group photos in export, KIBERone rebrand
2026-09-23 13:32:09 +03:00
dev
5e2533b876
feat(groups): assign tutor to group
2026-09-19 13:17:40 +03:00
dev
1ef81f9d1c
wip: student profile/report
2026-09-19 13:06:21 +03:00
dev
d7d4cc1133
feat(modules): soft delete with restore and active filter
2026-09-18 20:04:02 +03:00
dev
e6291a0235
feat(modules): module topics for student form, admin CRUD with pagination
...
- db: modules table (name, lessons_count) + entries.module_id (ON DELETE SET NULL), migration + idempotent startup ensure
- api: GET /api/modules (public, search + limit/offset, entries_count), POST/PUT/DELETE (admin, audit-logged)
- entries: accept/validate module_id on create/update, return module_name, module_id filter
- backup/restore: include modules and entries.module_id
- student form: required module select, hidden while no modules exist
- admin: modules.html + js/modules.js list with pagination, search, create/edit/delete modal
- journal: module filter, module select in edit modal, module badge, CSV column
2026-09-18 18:56:42 +03:00
dev
5874e2b619
feat: photo jobs apply/reject flow with applied flag in history
...
- DB: add photo_jobs.applied column (init + migration + ensure)
- Worker: generate preview only (after_path), no longer mutates entry
- New POST /api/entries/:id/photo/jobs/:jobId/apply — apply done job
result to entry (backs up current photo, marks applied)
- New POST /api/entries/:id/photo/jobs/:jobId/reject — discard result,
delete temp file, mark rejected
- saveEnhance: apply AI result directly when sliders are at defaults
- Photo history: '✓ Применить' action for unapplied done AI jobs;
'rejected' status label
- sweepOrphanedUploads keeps done-not-applied preview files
2026-09-17 18:51:26 +03:00
dev
1145be02f3
feat: persistent photo job queue, worker, history with rollback
...
- Replace in-memory photoAiJobs Map with DB-backed photo_jobs table
- Background photo worker (worker.js) with retry, backoff, stale reset
- Handles both AI (Real-ESRGAN) and server-side (sharp) enhancement
- Controlled via photo_worker_enabled setting
- Photo job history in enhance modal with before/after thumbnails + rollback
- Worker dashboard: photo jobs section with status counts, recent table,
compare slider for before/after, rollback from worker UI
- New endpoints: /api/photo-jobs/status|wake|enabled|requeue-failed,
/api/entries/:id/photo/jobs (history), .../rollback
- swapEntryPhotoFiles logs every mutation to photo_jobs table
2026-09-17 17:36:56 +03:00
dev
3a345cbefd
feat: AI photo enhancement (Real-ESRGAN container) + restore original
...
- new photo-ai service: FastAPI + Real-ESRGAN x2plus on CPU, internal only
- async job queue in server (POST enhance-ai / GET status), 5min timeout, sequential processing
- keep original photo backup (entries.photo_original_path, uploads/.originals), restore-original endpoint
- UI: AI button and restore-original button in enhance modal
- db: photo_original_path column (init.sql, migration.sql, runtime ensure)
2026-09-17 15:37:49 +03:00
dev
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
2026-09-17 14:12:36 +03:00
dev
bbfde902a5
feat(journal): live AI status updates in entry cards via Postgres NOTIFY trigger + SSE ai_status events
2026-09-17 11:14:27 +03:00
dev
fd753c1318
Add cookie notice with settings, jfif preview support, and share page title from link name
2026-09-12 10:05:02 +03:00
dev
2c7ec17c8b
Add IP autoban system: banned_ips table, global ipGuard middleware, 24h bans on honeypot fill / 10 failed logins / 10 wrong share passwords; trust proxy for real client IPs behind funnel; admin API and settings UI to manage active bans
2026-09-12 00:35:51 +03:00
dev
275ed46dfb
Add HF model auto-download with configurable AI env, and share link visibility toggles
2026-09-11 13:12:13 +03:00
dev
b7e798b867
Add AI auto-check worker, share link message/link fields, and update journal/settings UI
2026-09-11 10:29:49 +03:00
dev
3850fe35e4
Update project files
2026-09-10 11:26:51 +03:00
dev
7ccc9199e0
Add cover_path column to groups table for group cover photo feature
2026-09-10 01:16:32 +03:00
dev
f13031e9b3
add detach files feature, utf8 filename fix, and error pages
2026-09-07 09:42:28 +03:00
dev
621c3c3b5c
add soft delete with trash page and group photo chronology with styling
2026-09-06 13:51:47 +03:00
dev
ac8621c5aa
serve project files by token hash, preview images inline and download other files
2026-09-06 11:33:33 +03:00
dev
3b1341a0c2
add autocomplete input for student selection in journal filters, link creation, and links admin
2026-09-05 20:26:21 +03:00
dev
6dc54e49b8
batch add students: add optional group selection in batch modal
2026-09-05 18:31:28 +03:00