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
3522c3da30
feat(video-page): enhance Bunny asset handling and playback features
...
- Added support for tracking Bunny asset readiness and processing states.
- Implemented thumbnail loading error handling and retry logic for Bunny assets.
- Introduced a "Ready to play" indicator for Bunny assets.
- Enhanced Bunny preview player with playback speed and quality selection options.
- Improved state management for video playback, including resuming playback after source switches.
- Updated package.json to streamline database setup commands.
2026-02-26 11:48:21 +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
7f87d717d2
Improve asset mention UX with empty-state dropdown and icon-only chips
2026-02-25 19:09:37 +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
0ae1becc1b
refactor(video-page): split video page into modular components, hooks, and shared types
2026-02-25 15:01:37 +03:00
Yusuf İpek
86a995aed4
update landing page pricing section with revised cloud plan copy and new studio/agency tier
2026-02-24 20:16:20 +03:00
Yusuf İpek
a096a5ea02
Remove pinned timestamp control from video page comment composer
2026-02-24 18:30:50 +03:00
Yusuf İpek
068bc6f788
fix(player): stop YouTube iframe re-init loop
2026-02-24 18:23:20 +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
71233f8fe8
feat(video-card): show deleting overlay and disable interactions during delete
2026-02-24 17:46:05 +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
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
1708c5c99c
fix(video-player): preserve playback state when seeking to timestamps
2026-02-23 18:25:25 +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
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
55a2c16a7f
fix(landing): replace pricing CTA with user-appropriate action text
...
- change hosted plan CTA from 'Deploy on Cloud' to contextual copy
- show 'Start Now' for new users and 'Go to Dashboard' for logged-in users
2026-02-22 17:20:08 +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
47f12b38fa
chore: remove unused dependencies and delete unused combobox demo components
2026-02-22 13:42:52 +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
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
87d6c0ab0a
feat: Add a close button to the annotation toolbar and ensure annotation mode is correctly reset upon removal.
2026-02-22 06:30:10 +03:00
Yusuf İpek
fc047841cf
feat: Enhance annotation canvas toolbar responsiveness, group controls
2026-02-21 20:27:19 +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
4cb4089caa
feat: enhance responsive layout of video page by adjusting visibility of the sidebar, video title, and new version button on various screen sizes.
2026-02-21 19:29:43 +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
cd9b89c971
feat: Introduce Linkify component to automatically convert URLs in comment and reply content into clickable links.
2026-02-21 10:50:45 +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
7e55c578df
remove experimental vimeo video provider support
2026-02-15 12:55:36 +03:00
Yusuf İpek
c572ddb522
feat(video): add fullscreen mode with keyboard shortcut and error handling
...
- Add fullscreen toggle (F key and button) for video player
- Add comments panel visibility toggle in fullscreen mode
- Rename isFullscreen to isFullscreenMode for clarity
- Add toast error handling for fullscreen API failures
- Fix indentation issues in JSX
2026-02-15 12:50:37 +03:00
Yusuf İpek
da8c62e60d
fix(ui): use filteredComments instead of comments in video page
2026-02-15 10:56:41 +03:00
Yusuf İpek
643697dc00
fix(ui): add defensive checks for undefined replies in video page comments
2026-02-15 09:36:02 +03:00
Yusuf İpek
bf6a8aa4e8
fix(ui): add defensive replies array handling in video page comments
2026-02-15 09:29:50 +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
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