Yusuf İpek
4ea6099508
feat(bunny-cdn): refactor CDN hostname resolution and update asset URLs for improved flexibility
2026-02-26 11:53:03 +03:00
Yusuf İpek
6dd44953a3
feat(video-upload): add global drag-and-drop uploader with project selection and permission gating
2026-02-26 10:31:51 +03:00
Yusuf İpek
15fa9452a4
feat(video-player): add Bunny original-source fallback and quality option, plus approval/download UI tweaks
2026-02-26 10:02:11 +03:00
Yusuf İpek
76d37d02e5
feat: make media cleanup best-effort with warning summaries and enforce video/workspace management access
2026-02-25 18:59:02 +03:00
Yusuf İpek
9ce033d306
feat(video-assets): add full video asset system (uploads, downloads, @mentions, and cleanup/billing integration)
2026-02-25 18:34:03 +03:00
Yusuf İpek
6eea327083
refactor(dashboard): centralize access guards and split interactive pages into client components
2026-02-25 16:42:47 +03:00
Yusuf İpek
a2b07b3e19
feat: add approvals workflow and unified member invitation management across projects, workspaces, and videos
2026-02-25 16:24:45 +03:00
Yusuf İpek
191b352520
remove unused admin users and stats API routes
2026-02-24 18:13:14 +03:00
Yusuf İpek
644b239ab3
feat: add pagination and strict query validation for workspace/project listings
2026-02-24 18:07:04 +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
7f07a271a4
Improve media cleanup performance with bounded concurrency and aggregated failure reporting
2026-02-24 17:44:23 +03:00
Yusuf İpek
6e14d4d19f
feat(admin): add manual R2 stats refresh endpoint/button and share in-memory storage snapshot cache
2026-02-24 17:35:42 +03:00
Yusuf İpek
6a6b48f6a9
optimize admin users table sorting and pagination by pushing supported sorts to Prisma
2026-02-24 17:23:44 +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
354bc38d42
refactor(auth): centralize project/workspace authorization with checkProjectAccess across API routes
2026-02-24 17:18:04 +03:00
Yusuf İpek
fa51847aa4
feat(storage): add shared R2 media proxy and orphan cleanup tooling for R2/Bunny
2026-02-24 17:02:54 +03:00
Yusuf İpek
ffa55d7dcc
feat(video): lazy-load version comments and add ETag-based comment caching
2026-02-24 16:34:16 +03:00
Yusuf İpek
afa1529873
feat(feedback): add user feedback/review system with admin management and hardened image upload validation
2026-02-24 16:05:11 +03:00
Yusuf İpek
4083651025
Restrict guest CSV comment export in UI and fix lint/typecheck cleanup in comment APIs
2026-02-24 15:03:42 +03:00
Yusuf İpek
449433a08a
fix: centralize trusted same-origin validation for watch session and upload token routes
2026-02-23 18:31:09 +03:00
Yusuf İpek
dd884a325c
Add admin-only comment resolution controls
2026-02-23 18:21:10 +03:00
Yusuf İpek
fe7235052e
Add guest upload tokens and share-session aware permissions
2026-02-23 18:17:22 +03:00
Yusuf İpek
9058317247
feat(share): add video-level secure share links with password unlock and session-based watch/comment access
2026-02-23 17:11:32 +03:00
Yusuf İpek
d15e5192ac
chore: clean up lint/type issues and tighten comment media URL validation
2026-02-23 16:06:43 +03:00
Yusuf İpek
609b33bbcb
feat(admin): track and display per-user download egress for Bunny version downloads
2026-02-22 20:19:55 +03:00
Yusuf İpek
bbae612a70
feat(admin): add sortable paginated users table with invited-members metric and async searchParams fix
2026-02-22 20:04:41 +03:00
Yusuf İpek
323093029e
feat(seo): upgrade site metadata, schema, and crawl files for OpenFrame rebrand
...
- update title/description to Open Source Video Review Platform
- add centralized SEO config with canonical URL + meta image (/meta.webp)
- add Open Graph and Twitter card metadata
- add JSON-LD Organization/WebSite structured data
- add robots.txt, sitemap.xml, and web app manifest routes
- version icon metadata to help search engines refresh branding
2026-02-22 16:53:01 +03:00
Yusuf İpek
0288fe08d3
feat(video-download): add Bunny original/compressed download options with secure file handling and tighter rate limits
2026-02-22 16:33:52 +03:00
Yusuf İpek
f224b0a8a1
feat(landing): redesign homepage with GSAP-driven landing page and new showcase assets
2026-02-22 15:53:53 +03:00
Yusuf İpek
2115d986af
feat(video): add secure download flow with Bunny API proxy, quality validation, rate limiting, and direct URL host allowlist
2026-02-22 14:19:09 +03:00
Yusuf İpek
72d14f4a5d
feat(comments): add secure CSV/PDF export for version comments with auth, rate limits, and CSV injection hardening
2026-02-22 13:56:02 +03:00
Yusuf İpek
e30b4a5b19
feat: harden Bunny upload flow, migrate Bunny playback to hls.js, and add Bunny storage admin stats
2026-02-22 13:03:45 +03:00
Yusuf İpek
10164069dd
feat: Add URL safety check to prevent rendering iframes with non-HTTP/HTTPS protocols.
2026-02-22 09:56:18 +03:00
Yusuf İpek
0f24bcfe6c
feat: Implement direct video file uploads via Bunny.net and TUS protocol, adding a new API route and UI for file selection.
2026-02-22 09:55:08 +03:00
Yusuf İpek
5547346082
feat: Implement multi-panel video comparison with shared playback controls, timeline comments, and YouTube API integration.
2026-02-22 07:56:27 +03:00
Yusuf İpek
d731c9434a
feat: Add drawing annotation functionality to comments, including a new canvas component and API integration for creation, retrieval, and updates.
2026-02-21 20:23:15 +03:00
Yusuf İpek
e32196c430
fix: address security vulnerabilities and add image attachments
...
- Fix type confusion vulnerability in comment content updates
- Validate pagination offsets to prevent negative values
- Validate timestamp is a valid number before parsing
- Exclude guestEmail from comment API responses for privacy
- Fix TypeScript error in audio upload route
- Add image attachment support for comments with upload API
- Update admin dashboard to track image attachments
- Rename cleanup functions to handle both voice and image media
2026-02-21 16:40:58 +03:00
Yusuf İpek
5065fca38d
feat: replace hero video placeholder with an autoplaying demo video and refine hover effects.
2026-02-20 16:29:24 +03:00
Yusuf İpek
7fd2f7e289
feat: Redesign the landing page with an enhanced sticky header, a new hero section featuring gradient text and a badge, and integrate additional Lucide icons for future features.
2026-02-20 16:25:45 +03:00
Yusuf İpek
fcdb300b73
feat: replace favicon.ico with a scalable icon.svg
2026-02-20 15:51:44 +03:00
Yusuf İpek
2a20b449a8
refactor: Migrate dashboard project listing to client components, adding URL-driven filtering, sorting, and pagination.
2026-02-20 15:50:50 +03:00
Yusuf İpek
83eeffe5c0
feat: Implement admin dashboard with user management, statistics, and role-based access control.
2026-02-20 15:17:32 +03:00
Yusuf İpek
1bb1c8e574
feat: Enhance dashboard responsiveness across various pages and update project visibility icons for improved clarity.
2026-02-20 14:28:43 +03:00
Yusuf İpek
fe496b7fa5
feat: Implement notification settings and logic for new video versions.
2026-02-20 13:51:00 +03:00
Yusuf İpek
cdd46cf05e
fix: Retrieve all video versions by removing the isActive filter and take limit from API queries.
2026-02-20 13:32:29 +03:00
Yusuf İpek
7e55c578df
remove experimental vimeo video provider support
2026-02-15 12:55:36 +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
e4b29f5829
perf: improve audio streaming, font loading, and video provider timeouts
...
- Fix audio route content-type handling by using HeadObject metadata first
- Add JetBrains Mono font optimization with display:swap and preload
- Add blur placeholder to video card thumbnails for improved loading
- Fix YouTube API loading with proper state tracking to prevent race conditions
- Simplify timeout handling in YouTube and Vimeo providers using AbortSignal.timeout
2026-02-14 17:10:59 +03:00
Yusuf İpek
d302875e25
fix(api): add type validation to prevent type confusion attacks in video PATCH
...
Validates that title and description are strings before calling .trim() method to prevent type confusion attacks in the video update endpoint.
2026-02-14 16:22:07 +03:00
Yusuf İpek
1c7ee70815
feat(optimizations): adds memoization for performance optimization
...
Add currentUserName to video API responses and session for display in comments. Also adds memoization for performance optimization and implements Page Visibility API to pause comment polling when tab is hidden.
2026-02-14 16:21:52 +03:00