Commit Graph
2983 Commits
Author SHA1 Message Date
google-labs-jules[bot] e51f21681b feat: make r2Service generic and integrate storageService 2026-01-16 02:58:36 +00:00
thePR0M3TH3AN 1a09e44cb9 Merge pull request #1252 from PR0M3TH3AN/feature/upload-modal-storage-service-10990407034706299008
Secure R2 Credentials in UploadModal via StorageService
2026-01-15 21:41:27 -05:00
google-labs-jules[bot] cf9d1c08be Refactor UploadModal to use StorageService for secure R2 credentials 2026-01-16 02:35:00 +00:00
thePR0M3TH3AN 1db1f2add3 Merge pull request #1251 from PR0M3TH3AN/storage-tab-implementation-2496734043283768724
Implement Storage Configuration Tab in Profile Modal
2026-01-15 21:17:47 -05:00
google-labs-jules[bot] 621f0e4ce7 feat: implement storage tab in profile modal
- Add Storage tab to Profile Modal HTML with provider selector (R2 default) and connection form
- Wire ProfileModalController to handle tab switching, unlocking storage, and saving/testing connections
- Inject storageService into ProfileModalController via ApplicationBootstrap
- Repurpose Endpoint input as Account ID for R2 configurations
- Implement form validation and lock state handling
2026-01-16 02:05:44 +00:00
thePR0M3TH3AN 7649630072 Merge pull request #1250 from PR0M3TH3AN/signer-key-manager-9682956685005155350
feat: add SignerKeyManager service for key derivation
2026-01-15 20:44:46 -05:00
google-labs-jules[bot] f50eda7e7a feat: add SignerKeyManager service for key derivation
- Defines `STORAGE_CHALLENGE` event type (Kind 22242) in `js/nostrEventSchemas.js` and docs.
- Implements `js/services/signerKeyManager.js` to derive symmetric keys from signer signatures or passphrases.
- Validates inputs and returns safe `CryptoKey` objects (AES-GCM).
2026-01-16 01:37:14 +00:00
thePR0M3TH3AN aec80ca727 Merge pull request #1249 from PR0M3TH3AN/codex/storage-service-8466967660105906978
feat: implement encrypted StorageService
2026-01-15 20:20:27 -05:00
google-labs-jules[bot] 1c2f934616 feat: implement StorageService with encrypted IndexedDB storage
- Adds `js/services/storageService.js` to manage encrypted connection credentials.
- Implements AES-GCM encryption for payloads using a random Master Key.
- Implements NIP-04/NIP-44 encryption for the Master Key using the user's Nostr signer.
- Provides public API for saving, retrieving, and listing connections.
- Persists data to `bitvid-storage` IndexedDB.
2026-01-16 01:14:58 +00:00
thePR0M3TH3AN 7888793011 Merge pull request #1248 from PR0M3TH3AN/streamline-homepage-loading-14018295388908833680
Streamline homepage loading experience
2026-01-15 19:34:55 -05:00
google-labs-jules[bot] 9b75a76ad7 streamline homepage loading by preventing list clear on update 2026-01-16 00:32:53 +00:00
thePR0M3TH3AN 4b47efefdb Merge pull request #1247 from PR0M3TH3AN/video-player-fixes-1117441957185331816
Fix full-screen exit on source switch and optimize playback fallback
2026-01-15 19:22:18 -05:00
google-labs-jules[bot] f62370a93b Fix full-screen exit and optimize playback caching
- Modified `js/app.js` to set `replaceNode: false` in `playVideoWithFallback`. This reuses the video element when switching sources, preserving the full-screen state.
- Optimized `js/services/playbackService.js` to prevent redundant `video.load()` calls during torrent fallback if the element was already reset, improving cache behavior and reducing flicker.
- Updated `js/ui/components/VideoModal.js` to visually highlight the active source toggle button (using background/shadow styles) and clearly disable unavailable options (using opacity), improving UI clarity.
2026-01-16 00:11:44 +00:00
thePR0M3TH3AN 89ed542675 Merge pull request #1246 from PR0M3TH3AN/doc-webtorrent-logic-and-fix-tests-5914621598825591973
docs: document webtorrent logic and fix test infrastructure
2026-01-15 17:50:35 -05:00
google-labs-jules[bot] 7428a6c99f docs: add detailed comments to webtorrent.js and fix test infrastructure
- Added comprehensive comments to `js/webtorrent.js` explaining the playback strategy, service worker integration, and browser-specific quirks (Brave/Firefox).
- Patched `tests/ui/helpers/jsdom-test-helpers.mjs` to expose `HTMLStyleElement` and other globals to JSDOM, fixing `ReferenceError` in UI tests.
- Fixed `tests/ui/similar-content-card.test.mjs` to align with the current component implementation (handling detached elements) and resolving environment issues.
- Updated `tests/video-modal-accessibility.test.mjs` to safely mock `navigator` and `HTMLCanvasElement.getContext`, resolving `TypeError` and "Not implemented" errors during testing.
2026-01-15 22:35:29 +00:00
thePR0M3TH3AN 956a899adb Merge pull request #1245 from PR0M3TH3AN/fix-event-details-zindex-15424496309467320543
Ensure Event Details modal renders above Video Player
2026-01-15 17:34:41 -05:00
google-labs-jules[bot] f27d32758a fix(ui): force Event Details modal z-index via inline style
Applies `z-index: 140` directly to the Event Details modal element via inline styles in JS to guarantee it renders above the Video Player (z-index 130), bypassing potential CSS specificity or build pipeline issues. This resolves the reported regression where the details modal remained obscured.
2026-01-15 22:31:15 +00:00
google-labs-jules[bot] 8e3365682a fix(ui): ensure Event Details modal renders above video player
Assigns a specific ID `eventDetailsModal` to the Event Details modal component and applies explicit z-index rules (using `--z-modal-top-*` tokens) in the CSS to ensure it sits above the video player modal (z-index 130) in the stacking order. This resolves the issue where the details modal would open behind the active player.
2026-01-15 22:02:32 +00:00
thePR0M3TH3AN 8ee57db911 Merge pull request #1244 from PR0M3TH3AN/docs/r2-service-comments-4302139869070296427
Add developer documentation to R2 upload service
2026-01-15 15:38:17 -05:00
google-labs-jules[bot] 5772ed1992 docs: add developer documentation to R2 upload service
Added comprehensive JSDoc comments to `js/services/r2Service.js` to explain the critical "Hybrid" hosting strategy and complex orchestration logic.

Key additions:
- File header explaining the service's role.
- Detailed documentation for `handleCloudflareUploadSubmit`, explaining the sequence of uploads and the construction of Magnet URIs with `ws` (WebSeed) and `xs` (Exact Source) parameters.
- Documentation for `ensureBucketConfigForNpub` covering bucket sanitization and auto-configuration.
- Documentation for `verifyPublicAccess` explaining the "Upload-then-Fetch" validation strategy.
2026-01-15 20:31:59 +00:00
thePR0M3TH3AN ffacc96c4a Merge pull request #1243 from PR0M3TH3AN/docs/playback-service-comments-12088992108818376989
Add developer documentation to playback services
2026-01-15 15:17:02 -05:00
google-labs-jules[bot] cfa875d816 docs: Add comprehensive comments to PlaybackService and WebTorrent
Explained the architecture, watchdog mechanism, fallback strategy, and Service Worker integration logic.
2026-01-15 20:11:21 +00:00
thePR0M3TH3AN 8d4792e662 Merge pull request #1242 from PR0M3TH3AN/codex/add-access-control-check-in-login
Enforce access-control check in AuthService.login
2026-01-15 14:58:38 -05:00
thePR0M3TH3AN 6724166f9c Add comments for login modal generation guard 2026-01-15 14:58:20 -05:00
thePR0M3TH3AN 4da17853cd Guard generate key reuse until modal closes 2026-01-15 14:53:36 -05:00
thePR0M3TH3AN b5d2d04401 Add access control check to login 2026-01-15 14:31:51 -05:00
thePR0M3TH3AN 44d328bfa0 Merge pull request #1241 from PR0M3TH3AN/codex/update-persist-option-in-generate-settings
Avoid persisting generated nsec without passphrase
2026-01-15 14:25:21 -05:00
thePR0M3TH3AN b186e216ed Avoid persisting generated keys without passphrase 2026-01-15 14:25:03 -05:00
thePR0M3TH3AN d7d2a5ed75 Merge pull request #1240 from PR0M3TH3AN/codex/add-generate-dialog-template-to-login-modal
Add generate account view template to login modal
2026-01-15 13:50:41 -05:00
thePR0M3TH3AN 2062a9c494 Add generate account view template 2026-01-15 13:50:30 -05:00
thePR0M3TH3AN 877ef667bf Merge pull request #1237 from PR0M3TH3AN/feature/create-account-button-1146231712583042044
feat: Add client-side account generation flow
2026-01-15 13:29:46 -05:00
google-labs-jules[bot] 3c152acd40 feat: add 'Create Account' flow to login modal
- Implements a new `generate` auth provider with a no-op `login` method to bypass controller filters.
- Updates `LoginModalController.js` to intercept the `generate` provider and render an internal key generation view.
- Adds `components/login-modal.html` template for the generation flow, including key masking and copy/download actions.
- Creates `content/nostr-keys.md` documentation page and links it from the sidebar and generation view.
- Fixes a syntax error in the controller by restoring missing methods.
- Adds unit tests to verify the generation flow logic.
2026-01-15 18:21:19 +00:00
thePR0M3TH3AN 564a1a080d Merge pull request #1239 from PR0M3TH3AN/codex/normalize-playback-magnet-in-videocard
Normalize video card magnet playback data
2026-01-15 12:23:55 -05:00
thePR0M3TH3AN c92da1adc3 Normalize playback magnets in video cards 2026-01-15 12:22:20 -05:00
thePR0M3TH3AN 4f3822e15f Merge pull request #1238 from PR0M3TH3AN/codex/update-playback-source-event-handler
Use modal video data when switching playback source
2026-01-15 12:17:32 -05:00
thePR0M3TH3AN 815664ee3c Avoid resetting playback on same source toggle 2026-01-15 12:13:01 -05:00
thePR0M3TH3AN 72ee5b9f2b Guard source toggle with CDN/peer availability 2026-01-15 11:49:01 -05:00
thePR0M3TH3AN f74ebfe6f4 Use modal video for source switching 2026-01-15 11:37:02 -05:00
google-labs-jules[bot] 5ee8ec614a feat: add 'Create Account' option to login modal
- Adds a new documentation page `content/nostr-keys.md` explaining Nostr keys.
- Updates the sidebar to include a link to the new documentation.
- Registers a new 'generate' auth provider in `js/services/authProviders/`.
- Updates `components/login-modal.html` with a new template for key generation.
- Implements `promptForGenerateOptions` in `js/ui/loginModalController.js` to handle client-side key generation using `NostrTools`.
- Allows users to generate keys, copy/download them, and log in directly with the new `nsec`.
2026-01-15 16:14:23 +00:00
thePR0M3TH3AN a6cfd3c540 Merge pull request #1234 from PR0M3TH3AN/codex/add-webseed-only-flag-in-probepeers
Add webseed-only WebTorrent probe status and UI label
2026-01-15 09:52:48 -05:00
thePR0M3TH3AN ebd825fb37 Add webseed-only status to WebTorrent probes 2026-01-15 09:37:25 -05:00
thePR0M3TH3AN d3a903aa75 Merge pull request #1233 from PR0M3TH3AN/codex/update-torrentclient.probepeers-health-logic
Treat peer-only connections as healthy in WebTorrent probe (don't count webseeds)
2026-01-15 09:31:29 -05:00
thePR0M3TH3AN a01f1adea9 Adjust WebTorrent probe health detection 2026-01-15 09:27:47 -05:00
thePR0M3TH3AN 06b80e8df0 Merge pull request #1232 from PR0M3TH3AN/r2-webseed-magnet-13863711784927810759
Add WebSeed and Metadata Link (xs) to R2 Magnet Links
2026-01-15 08:33:53 -05:00
google-labs-jules[bot] 4e840c6159 feat: improve magnet link reliability with webseeds
- Update `UploadModal.js` to pre-calculate R2 keys and public URLs before upload.
- Update `torrentHash.js` to embed the calculated video URL as a webseed (`url-list`) in the `.torrent` file.
- Update `r2Service.js` to accept forced keys/URLs and append `&xs=` (pointing to the .torrent file) to the magnet link.
- Ensures magnet links work for peerless downloads via WebSeed (BEP19) and HTTP Seeding (BEP17).
2026-01-15 13:26:27 +00:00
thePR0M3TH3AN f748f663c8 Merge pull request #1231 from PR0M3TH3AN/codex/update-uploadmodal-error-handling
Guard uploads when info hash is missing (URL‑first playback)
2026-01-14 21:39:47 -05:00
thePR0M3TH3AN a3374f0569 Guard upload when info hash is unavailable 2026-01-14 21:38:27 -05:00
thePR0M3TH3AN f52da2581b Merge pull request #1230 from PR0M3TH3AN/codex/add-torrent-file-generation-and-upload
Upload .torrent metadata to R2 and publish xs hint for video posts
2026-01-14 21:31:43 -05:00
thePR0M3TH3AN 6262a3cb37 Add torrent metadata upload for R2 videos 2026-01-14 21:28:57 -05:00
thePR0M3TH3AN 16273bb09a Merge pull request #1229 from PR0M3TH3AN/fix-hashtag-preferences-reset-7347622943668285159
fix: prevent hashtag preferences reset on empty or stale relay responses
2026-01-14 21:25:54 -05:00