Commit Graph
2989 Commits
Author SHA1 Message Date
google-labs-jules[bot] d04e64d713 feat: ensure storage keys clear on auth change and UI reflects provider
- Added `bitvid:auth-changed` listener in `js/app.js` to trigger `storageService.lock()` and refresh `UploadModal`.
- Implemented `refreshState()` in `js/ui/components/UploadModal.js` to manage secure storage unlocking, sensitive data clearing, and dynamic provider metadata loading.
- Updated `js/ui/profileModalController.js` to prioritize default storage connections and display the provider name (e.g., "Unlocked (R2)") in the status text.
- Ensured sensitive configuration data is nulled out when storage is locked.
2026-01-16 04:06:49 +00:00
thePR0M3TH3AN 0dd21cc670 Merge pull request #1255 from PR0M3TH3AN/feature/storage-connection-test-16098191007604609215
Implement Storage Connection Testing
2026-01-15 22:50:41 -05:00
google-labs-jules[bot] 35d3b0de73 Implement storage connection testing
Added `testConnection` to `StorageService` and `testS3Connection` to `r2-s3.js`.
Updated `ProfileModalController` to use the new `storageService.testAccess` method for verifying credentials before saving.
The test logic supports both specific bucket checks (via `HeadBucket`) and general credential checks (via `ListBuckets`).
2026-01-16 03:50:13 +00:00
thePR0M3TH3AN 4987b79dd3 Merge pull request #1254 from PR0M3TH3AN/r2-generic-storage-17736545435676975081
Make r2Service generic and integrate storageService
2026-01-15 22:35:37 -05:00
google-labs-jules[bot] e51f21681b feat: make r2Service generic and integrate storageService 2026-01-16 02:58:36 +00:00
thePR0M3TH3AN 81fcbad6cc Merge pull request #1253 from PR0M3TH3AN/fix-moderation-trusted-mute-hide-1721971285351982326
Fix: Respect feed policy bypass for trusted mute hiding on Home feed
2026-01-15 21:45:02 -05:00
google-labs-jules[bot] dae7bfed8b Fix trusted mute hide threshold logic on home feed
- Ensure 'decorateVideoModeration' in 'js/app.js' respects the feed policy bypass logic (simulating server-side behavior).
- Pass 'feedContext' (feedName, feedVariant) to 'decorateVideoModeration' from 'refreshVisibleModerationUi' and 'handleModerationSettingsChange'.
- This prevents videos on the Home feed from being strictly hidden (removed from DOM) when the "Hide after trusted mutes" threshold is met, ensuring they remain visible but blurred as expected by the bypass policy.
- Verified with reproduction script that 'hidden' becomes false and 'blurThumbnail' remains true on Home feed context.
2026-01-16 02:43:03 +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