Nikita
91848ba52e
Refactor: remove stream feature flag and related UI elements
...
- Delete `STREAM_ENABLED_EMAIL` constant and associated conditional rendering
- Simplify dashboard by removing stream setup section
- Update imports to exclude unused icons
- Change "Add Link" button from `<button>` to `<a>` with href="/bookmarks"
2025-12-31 20:10:38 +02:00
Nikita
d165605a68
Add bookmarks page with duplicate URL validation
...
- /bookmarks route for viewing and adding bookmarks
- Real-time duplicate URL detection as user types
- Session-authenticated API endpoints for list/add/delete
2025-12-31 19:56:32 +02:00
Nikita
4d072aacb5
Fix API route patterns for TanStack Start
...
- Use createFileRoute with server.handlers pattern
- Export Route instead of APIRoute
2025-12-31 19:34:50 +02:00
Nikita
ca05d547ed
Use published @1focus/logs package instead of local file reference
2025-12-31 19:31:33 +02:00
Nikita
b5d55cbf54
Refactor loading states to render empty divs for better UX consistency
...
- Replace "Loading..." text with empty divs in various components
- Simplify loading placeholders to improve visual stability during data fetches
2025-12-31 18:04:45 +02:00
Nikita
6baa6a91ac
Add API key management endpoints and integrate API keys section in settings panel
2025-12-28 20:05:49 -08:00
Nikita
751aa065cd
Add scripts for testing Safari bookmarks saving and API key generation.
2025-12-28 18:57:04 -08:00
Nikita
e0631eeef0
Add a new 'logs-setup' task to flow.toml for configuring 1focus logs, including SDK build, dependency installation, API key management, and test log sending.
2025-12-28 15:13:05 -08:00
Nikita
3f2d571592
Update flow.toml to start web and desktop dev servers with port management and cleanup logic; enhance desktop preload and main process to resolve preload path, set web URLs, and expose shell functions; improve README with load fallback info and environment variables; add external logs configuration to worker package.
2025-12-28 12:15:13 -08:00
Nikita
c073fe6ee0
Add initial API documentation for Linsa API endpoints to docs/api.md
2025-12-28 11:45:07 -08:00
Nikita
3a2c78198a
Add browser session schema and integrate into viewer data; update UI with sessions section and new session form.
2025-12-26 19:40:13 -08:00
Nikita
9a2e5c5a4a
Add PaywallBanner and ReplayGrid components; fetch and display replays with paywall handling in user stream page
2025-12-25 12:01:48 -08:00
Nikita
2be1e74e3b
Implement chunk retrieval endpoint and enhance HLS live stream detection logic
...
- Add `getChunk` handler to serve specific recording chunks based on `streamId` and `index` query params
- Modify route handler to dispatch requests to either list recordings or fetch chunks
- Improve `isHlsPlaylistLive` function with:
- Basic validation for manifest structure
- Detection of master playlists and VOD markers
- Segment presence check
- Timestamp freshness validation via `#EXT-X-PROGRAM-DATE-TIME`
- Conservative fallback using media sequence when timestamps are absent
2025-12-25 10:37:57 -08:00
Nikita
9b0026b8d4
Add in-memory API route for stream filter configuration and update frontend to manage filter settings dynamically
2025-12-25 10:14:38 -08:00
Nikita
9aecbab8a9
Fix: Remove unused viewerCount prop from ProfileSidebar and update related code
...
- Removed viewerCount from ProfileSidebarProps and component parameters
- Commented out viewerCount usage in ProfileSidebar component
- Updated import statement to exclude unused icons
- Removed viewerCount prop from StreamPage component instances in $username.tsx
2025-12-25 10:10:42 -08:00
Nikita
95f4270f9a
Improve ProfileSidebar by replacing avatar display with name and live badge; add Cloudflare Stream config schema; add API routes for fetching/updating Cloudflare config; update stream recordings storage path; enhance HLS check route with mock data for specific user.
2025-12-25 10:02:15 -08:00
Nikita
c964660eda
Update ProfileSidebar to conditionally display avatar or live indicator
...
- Remove default avatar URL fallback
- Show user image if available
- Display animated red dot when user image is absent and user is live
2025-12-25 08:21:40 -08:00
Nikita
271840ba34
Refactor metadata field in GlideCanvasItem schema to be a JSON string
...
- Changed metadata from a record of strings to a nullable JSON string
- Updated schema to reflect the new data type for metadata
2025-12-25 08:14:29 -08:00
Nikita
9c90b7db8d
Add a new "test-jazz-stream" task to flow.toml for testing live stream recording flow, including setup instructions and verification steps.
...
Update CommentBox component to handle image uploads with validation, preview, and progress tracking, and to manage comments with Jazz container initialization.
2025-12-25 05:04:43 -08:00
Nikita
15432a69b5
Add GlideCanvasItem schema, update viewer data structure, and integrate Glide route and API endpoints for managing canvas items
2025-12-25 03:42:57 -08:00
Nikita
490e608d11
.
2025-12-25 03:03:26 -08:00
Nikita
f2b3f705eb
Update profile update to set 'updatedAt' as a Date object; simplify preferences state by removing unused variables; change default theme to 'Dark'; update settings labels and descriptions for clarity; modify sign-out button text; revise billing features list.
2025-12-25 03:02:14 -08:00
Nikita
18f4a3bf71
Update profile API to handle bio, website, and image fields; enhance profile UI with avatar, bio, and website inputs; fetch full profile data on component mount for better state management.
2025-12-25 02:43:16 -08:00
Nikita
205c38d0ee
Add database schema updates for user profile fields and streams, seed initial data, and extend components with streaming settings and profile fields.
2025-12-25 00:41:00 -08:00
Nikita
3509b91c08
Add ProfileSidebar component for user profile display and update route to use it
2025-12-24 23:36:11 -08:00
Nikita
50bf16cd6e
Update environment variable name for Cloudflare live input UID and refactor StreamPage to fetch HLS URL from API
...
- Rename `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` to `CLOUDFLARE_LIVE_INPUT_UID` in env.d.ts
- Remove hardcoded `LIVE_INPUT_UID` constant from `$username.tsx`
- Add `hlsUrl` state and update it based on API response in `$username.tsx`
- Modify stream playback logic to use `hlsUrl` for nikiv user
- Fetch HLS URL from server-side API and update state accordingly
- Update `check-hls.ts` to derive HLS URL dynamically from environment variables
- Remove `CLOUDFLARE_LIVE_INPUT_UID` from `wrangler.jsonc` environment variables
2025-12-24 23:32:50 -08:00
Nikita
b2c94ea623
Update hardcoded Cloudflare Stream UID to a constant and remove dynamic HLS URL updates
2025-12-24 23:26:36 -08:00
Nikita
ca8af44c72
Update environment typings and stream handling for dynamic HLS URL
...
- Add `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` to environment variables
- Refactor `$username.tsx` to initialize stream data with default HLS URL
- Implement dynamic HLS URL update based on API response for Nikiv stream
- Modify `/api/check-hls` route to use environment variable for video ID
- Ensure HLS URL updates trigger stream data refresh in client
- Update `wrangler.jsonc` to include `CLOUDFLARE_STREAM_NIKIV_VIDEO_ID` in env vars
2025-12-24 23:17:59 -08:00
Nikita
78a4be3104
Remove commented-out code related to watch time tracking and authentication gating from $username.tsx for cleaner, more maintainable code.
2025-12-24 20:21:56 -08:00
Nikita
797311eeba
Improve VideoPlayer event handling and streamline viewer count sync
...
- Add a `callReady` function to ensure `onReady` is called only once
- Attach `canplay` event listener for native HLS support to trigger `onReady`
- Call `onReady` immediately after manifest parsing for HLS streams
- Simplify `useStreamViewers` hook to skip viewer count sync for user "nikiv"
- Silently handle errors during viewer count synchronization to avoid unnecessary logs
2025-12-24 19:54:00 -08:00
Nikita
559d6dc635
Update pnpm lock with new dependencies and add flow test project with setup, dev, and test scripts
2025-12-24 19:52:54 -08:00
Nikita
9b535249bc
Remove unused code related to the free preview countdown banner in StreamPage component
2025-12-24 19:38:34 -08:00
Nikita
e4a15b9c29
Add LiveNowSidebar component for live status notification and integrate it into relevant pages
2025-12-24 19:19:25 -08:00
Nikita
bc84274304
Update setup script to improve environment variable management and secrets handling.
2025-12-24 19:13:20 -08:00
Nikita
3141241626
Improve VideoPlayer to notify when ready and update StreamPage to handle player readiness and connection state
2025-12-24 19:06:58 -08:00
Nikita
0aa68c9ae8
Improve HLS playlist live check logic to correctly identify master playlists and live streams
2025-12-24 18:56:39 -08:00
Nikita
7e480305c4
Add API route to check HLS stream status and integrate server-side HLS validation in StreamPage component
2025-12-24 18:52:46 -08:00
Nikita
7c678b3110
Fix HLS live check to handle fetch errors and improve polling logic
2025-12-24 18:49:49 -08:00
Nikita
03362955f0
Implement free preview timer with localStorage persistence and UI indicator
2025-12-24 18:48:03 -08:00
Nikita
ba34ab4363
Add debug logs for stream status and HLS fetch process
2025-12-24 18:34:54 -08:00
Nikita
2d3d7e0185
Refactor stream status fetch to use local API proxy; add /api/stream-status route; update Stripe config references; modify checkout to use proPriceId; adjust fetch URLs in landing page.
2025-12-24 18:18:19 -08:00
Nikita
157f9a69d8
Add live stream status indicator to landing page and sidebar
2025-12-24 18:12:35 -08:00
Nikita
49c86a8034
Implement dashboard with user session, URL management, and access control
2025-12-24 18:08:54 -08:00
Nikita
dc3112bb3e
Update auth page header and description for clarity and consistency
2025-12-24 17:55:42 -08:00
Nikita
fcc3d9eedf
Update flow.toml to add environment management tasks and improve index.tsx by removing commented-out gallery code and adjusting hero section height
2025-12-24 17:36:17 -08:00
Nikita
f81affe448
Improve billing and access control by adding creator subscription check; update route components to enforce user authentication before viewing streams and replays.
2025-12-24 17:14:01 -08:00
Nikita
9d7ea0ada1
Update Stripe setup instructions and add new creator economy API routes
...
- Clarify instructions for creator-specific pricing and setup
- Remove outdated Stripe Price ID prompt from setup script
- Add API route definitions for `/api/creator/tiers`, `/api/creator/subscribe`, and `/api/creator/$username/access`
- Register new routes in route tree for API access
- Update documentation to reflect new endpoints and instructions
2025-12-24 16:58:43 -08:00
Nikita
f7009b161c
Add Stripe setup and verification tasks to flow.toml; update database schema with creator economy tables for subscriptions, tiers, products, and payouts.
2025-12-24 16:55:11 -08:00
Nikita
cf4a43779e
Implement setup task for worker admin environment and add new database schema and snapshot files
2025-12-24 16:31:01 -08:00
Nikita
26fa0b0ec9
Add URL management schema, route, and related updates for URLs feature
2025-12-24 15:10:38 -08:00