Commit Graph
2961 Commits
Author SHA1 Message Date
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
google-labs-jules[bot] 4639a572fe fix: prevent hashtag preferences reset on empty or stale relay responses
This commit updates `HashtagPreferencesService.load` to handle transient empty responses from relays more robustly.
- It prevents `reset()` if `wasLoadedForUser` is true and the fetch returns empty, ensuring existing data isn't wiped during connectivity issues or relay switches.
- It adds a staleness check to ignore incoming events that are older than the currently loaded data, protecting against out-of-sync relays returning obsolete preferences.

This addresses the issue where hashtag interests would disappear ("turn gray") or revert to older states shortly after login when video grid filters were applied.
2026-01-15 02:21:57 +00:00
thePR0M3TH3AN a5d0d03ac6 Merge pull request #1228 from PR0M3TH3AN/r2-imeta-fix-13043697172182060536
fix: ensure infohash is included in r2 upload imeta tags
2026-01-14 21:05:32 -05:00
google-labs-jules[bot] 657ee40eb5 fix(r2): inject infohash into nip-71 imeta tags for webtorrent bootstrapping 2026-01-15 02:04:14 +00:00
thePR0M3TH3AN 0cf4668537 Merge pull request #1226 from PR0M3TH3AN/codex/update-gotoprofile-for-hex-and-npub-input
Handle npub/hex inputs in goToProfile
2026-01-14 20:59:25 -05:00
thePR0M3TH3AN a52aed0a5d Fix event details channel navigation 2026-01-14 20:58:01 -05:00
thePR0M3TH3AN 4fc25ff70c Merge pull request #1227 from PR0M3TH3AN/modal-toggle-visibility-fix-15044045076862990310
Fix video modal source toggle visibility
2026-01-14 20:51:33 -05:00
google-labs-jules[bot] e3b5d95e23 Fix visibility of CDN/P2P toggle in video modal
Moved the `.video-modal__source-toggle-container` out of the `.video-modal__stats` container (which is hidden when not in P2P mode) to a permanent location in the modal layout. This ensures the toggle remains visible regardless of the active playback source, allowing users to switch between CDN and P2P even if the P2P stats panel is hidden. The toggle logic in `VideoModal.js` correctly handles the visibility of the toggle buttons themselves based on source availability.
2026-01-15 01:39:20 +00:00
thePR0M3TH3AN ae62b4ea59 Normalize profile pubkey inputs 2026-01-14 20:32:30 -05:00
thePR0M3TH3AN 5c2d7133e6 Handle npub inputs in goToProfile 2026-01-14 20:28:12 -05:00
thePR0M3TH3AN a5ec2fb54f Merge pull request #1225 from PR0M3TH3AN/fix-hashtag-preferences-reset-14075388825661350751
Prevent hashtag preferences reset on transient load failures
2026-01-14 20:25:55 -05:00
google-labs-jules[bot] 48ceed6797 fix(hashtagPreferences): prevent state reset on transient load failures
Prevents `HashtagPreferencesService` from aggressively resetting local state to empty when a load attempt fails due to transient issues (like empty relay lists or network errors) if valid data is already loaded for the current user. This fixes a race condition where tags would briefly load correctly and then turn gray/disappear during application initialization.
2026-01-15 01:23:55 +00:00
thePR0M3TH3AN b9171e9e05 Merge pull request #1223 from PR0M3TH3AN/video-source-toggle-2596229844924260490
Add CDN/P2P Source Toggle to Video Player
2026-01-14 20:09:31 -05:00
google-labs-jules[bot] 7dc60c36ef Add playback source toggle (CDN/P2P) to video modal
- Added toggle buttons and stat counters to `video-modal.html`.
- Updated `VideoModal.js` to manage toggle visibility (show if either source exists, disable unavailable option) and dispatch `playback:switch-source` events.
- Updated `app.js` to handle source switching by restarting playback with a `forcedSource`.
- Updated `playbackService.js` to respect `forcedSource` by bypassing probe logic when a specific source is requested.
2026-01-15 01:06:56 +00:00
google-labs-jules[bot] 95a91ee675 Implement video source toggle (CDN vs P2P)
- Added source toggle UI in `components/video-modal.html`.
- Updated `VideoModal.js` to manage toggle visibility (only when both URL and Magnet exist), update peer/server counts, and dispatch `playback:switch-source` events.
- Updated `PlaybackService.js` to support a `forcedSource` option, allowing bypassing of the URL probe when "torrent" is forced.
- Updated `app.js` to listen for the toggle event on the video modal and re-initialize playback with the forced source preference.
- Updated `tests/ui/helpers/jsdom-test-helpers.mjs` to expose necessary globals for JSDOM testing.
- Fixed an issue where the event listener was missing in `app.js`, causing the toggle to be unresponsive.
2026-01-14 22:06:41 +00:00
google-labs-jules[bot] 6c3ac4d49f Implement video source toggle (CDN vs P2P)
- Added source toggle UI in `components/video-modal.html`.
- Updated `VideoModal.js` to manage toggle visibility (only when both URL and Magnet exist), update peer/server counts, and dispatch `playback:switch-source` events.
- Updated `PlaybackService.js` to support a `forcedSource` option, allowing bypassing of the URL probe when "torrent" is forced.
- Updated `app.js` to listen for the toggle event and re-initialize playback with the forced source preference.
- Updated `tests/ui/helpers/jsdom-test-helpers.mjs` to expose necessary globals for JSDOM testing.
- Verified functionality with targeted updates and existing unit tests.
2026-01-14 21:18:46 +00:00
thePR0M3TH3AN 9932279d3f Merge pull request #1222 from PR0M3TH3AN/event-details-modal-6211185828023206068
Add Event Details modal with raw JSON and history navigation
2026-01-14 15:57:15 -05:00
google-labs-jules[bot] 71a9eaf288 feat: add event details modal with edit history navigation
- Added `EventDetailsModal` to display raw JSON and metadata.
- Implemented `open-channel` action to navigate to creator profile.
- Fixed profile image loading by checking `creatorPicture` and `creator.picture`.
- Added `hideModal()` to `Application` class to fix crash in `openCreatorChannel`.
- Wired up "Event Details" menu option in video card menu.
- Ensured edit history is sorted Newest First for navigation.
2026-01-14 20:55:29 +00:00
google-labs-jules[bot] 6794a54fba Fix View Channel button functionality and styling in EventDetailsModal 2026-01-14 20:42:36 +00:00
google-labs-jules[bot] f1d74894f2 Fix View Channel button functionality and styling in EventDetailsModal 2026-01-14 20:28:26 +00:00
google-labs-jules[bot] 1c7daff733 Update Event Details Modal to use hydrateVideoHistory and improved layout 2026-01-14 19:54:38 +00:00
google-labs-jules[bot] 9a6efdc1b6 Add Event Details modal to video card menu 2026-01-14 19:47:23 +00:00
google-labs-jules[bot] 4b5a46c5bd Add Event Details modal to video card menu 2026-01-14 19:29:32 +00:00