Commit Graph
11 Commits
Author SHA1 Message Date
Enes Köksal 3cfea40fbd refactor: eslint and prettier conflict will be resolved and formatted 2026-04-23 17:05:43 +03:00
Yusuf İpek db1c594fae feat(progress): add validation for progress and duration to ensure they are non-negative finite numbers within a reasonable range 2026-04-10 21:51:18 +03:00
Yusuf İpek c6f06627f2 feat(progress): add validation for duration to ensure it is a non-negative finite number 2026-04-10 21:50:13 +03:00
Yusuf İpek 8014fc3986 Refactor error logging across the application to use a centralized logger
- Introduced a new logger utility (`logError`) to standardize error logging.
- Replaced all instances of `console.error` with `logError` in various API routes and libraries.
- Enhanced error logging to sanitize sensitive information, particularly for Prisma and Stripe errors.
- Ensured consistent error handling and logging practices throughout the codebase.
2026-04-10 21:10:09 +03:00
Yusuf İpek ea05f9c929 feat(cache): implement max entries limit for Bunny download source cache 2026-04-09 17:18:34 +03:00
Yusuf İpek 26cf58a28c feat(auth): enhance project access handling with pre-fetched data and new utility functions 2026-04-09 17:17:39 +03:00
Yusuf İpek 9f32aeafe6 optimize watch progress persistence with debounced client saves and tiny-delta server skip 2026-02-24 17:51:40 +03:00
Yusuf İpek 68c63ce020 fix(watch-progress): validate versionId and enforce video access/version ownership before saving progress 2026-02-24 17:20:45 +03:00
Yusuf İpek 81c0d41a26 feat(watch): add pause and visibility change progress saving with rate limiting
- Save watch progress immediately when video is paused using player instance directly
- Save progress when tab becomes hidden (user switches tabs or minimizes)
- Add rate limiting (30/min) to watch progress API endpoint to prevent abuse
- Use player instance directly instead of React state for current time/duration to avoid stale values
2026-02-15 09:22:25 +03:00
Yusuf İpek 413fc9cec6 fix(api): add project access validation to video progress route 2026-02-14 15:28:50 +03:00
Yusuf İpek 88c74d646e feat: add video watch progress tracking with resume functionality
Implements a complete watch progress system that allows users to:
- Save playback position automatically every 5 seconds while watching
- Resume from last position when returning to a video
- Save progress on page leave using sendBeacon for reliability

Also includes:
- Optimized slug generation in projects and workspaces APIs (single query vs loop)
- Added isActive filter to version queries across all video endpoints
- Added pagination support for video and comment queries
- Enhanced database pool management with connection limits and graceful shutdown
- New WatchProgress Prisma model with user-version relations
2026-02-14 15:25:32 +03:00