From d989e09bdfcd9287c56018cf255dac0909c64c04 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 23 Jan 2026 05:02:31 +0000 Subject: [PATCH 1/2] feat: Add peek animation and hide scrollbars in DM lists - Add `.no-scrollbar` utility to hide scrollbars while keeping scrollability. - Apply `.no-scrollbar` to ConversationList and MessageThread containers. - Implement "peek" animation: - ConversationList: scrolls down 40px then back up on load. - MessageThread: scrolls up 40px then back down (to bottom) on load. - Animation only triggers if content overflows. --- css/tailwind.source.css | 8 + js/ui/dm/ConversationList.js | 14 +- js/ui/dm/MessageThread.js | 24 +- serve.log | 610 +++++++++++++++++++++++++++++++++++ 4 files changed, 650 insertions(+), 6 deletions(-) create mode 100644 serve.log diff --git a/css/tailwind.source.css b/css/tailwind.source.css index 4d2807cc..e495f176 100644 --- a/css/tailwind.source.css +++ b/css/tailwind.source.css @@ -5984,3 +5984,11 @@ } } } + +.no-scrollbar { + scrollbar-width: none; +} + +.no-scrollbar::-webkit-scrollbar { + display: none; +} diff --git a/js/ui/dm/ConversationList.js b/js/ui/dm/ConversationList.js index 1afc3018..914d9a67 100644 --- a/js/ui/dm/ConversationList.js +++ b/js/ui/dm/ConversationList.js @@ -47,7 +47,7 @@ export function ConversationList({ } root.appendChild(header); - const list = createElement(doc, "div", "dm-conversation-list__items"); + const list = createElement(doc, "div", "dm-conversation-list__items no-scrollbar"); list.setAttribute("role", "listbox"); list.setAttribute("aria-label", "Conversation list"); @@ -75,6 +75,18 @@ export function ConversationList({ }); list.appendChild(row); }); + + // Peek animation + if (conversations.length > 0) { + setTimeout(() => { + if (list.scrollHeight > list.clientHeight) { + list.scrollTo({ top: 40, behavior: "smooth" }); + setTimeout(() => { + list.scrollTo({ top: 0, behavior: "smooth" }); + }, 600); + } + }, 600); + } } list.addEventListener("keydown", (event) => { diff --git a/js/ui/dm/MessageThread.js b/js/ui/dm/MessageThread.js index beb593b0..65171d3a 100644 --- a/js/ui/dm/MessageThread.js +++ b/js/ui/dm/MessageThread.js @@ -93,7 +93,7 @@ export function MessageThread({ } root.appendChild(header); - const timeline = createElement(doc, "div", "dm-message-thread__timeline"); + const timeline = createElement(doc, "div", "dm-message-thread__timeline no-scrollbar"); timeline.setAttribute("role", "log"); timeline.setAttribute("aria-live", "polite"); @@ -137,11 +137,25 @@ export function MessageThread({ }); } - // Scroll to bottom + // Scroll to bottom and peek if (messages.length > 0) { - setTimeout(() => { - timeline.scrollTop = timeline.scrollHeight; - }, 0); + setTimeout(() => { + timeline.scrollTop = timeline.scrollHeight; + + if (timeline.scrollHeight > timeline.clientHeight) { + setTimeout(() => { + const targetScroll = Math.max(0, timeline.scrollTop - 40); + timeline.scrollTo({ top: targetScroll, behavior: "smooth" }); + + setTimeout(() => { + timeline.scrollTo({ + top: timeline.scrollHeight, + behavior: "smooth", + }); + }, 600); + }, 600); + } + }, 0); } root.appendChild(timeline); diff --git a/serve.log b/serve.log new file mode 100644 index 00000000..04c9a4ed --- /dev/null +++ b/serve.log @@ -0,0 +1,610 @@ +npm warn exec The following package was not found and will be installed: serve@14.2.5 + INFO Accepting connections at http://localhost:3000 + HTTP 1/23/2026 5:00:58 AM ::1 GET / + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 435 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /css/tailwind.generated.css?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /assets/svg/default-profile.svg + HTTP 1/23/2026 5:00:58 AM ::1 Returned 404 in 6 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/nostrToolsBootstrap.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/config.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/lists.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/accessControl.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/webtorrent.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/viewManager.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 16 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 16 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 17 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 15 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 15 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 17 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/bootstrap.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/disclaimer.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 11 ms + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 12 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/index.js?v=2024.11.09 + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/utils/logger.js + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/config.js + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/adminListStore.js + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:58 AM ::1 GET /js/nostr/toolkit.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/webtorrent.min.js + HTTP 1/23/2026 5:00:58 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/constants.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/safeDecode.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/channelProfile.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/forYouView.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 12 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/exploreView.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 13 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/subscriptions.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/applicationContext.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 17 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /config/asset-version.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 11 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/designSystem.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/FeedInfoPopover.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 12 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/app.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/nostrService.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/r2Service.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/viewManager.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/hashtagPreferencesService.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/staticModalAccessibility.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 14 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 14 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 14 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 14 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /config/validate-config.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/bufferPolyfill.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/themeController.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/hashView.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/hashChangeHandler.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/authService.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/authProviders/index.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 16 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 18 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 12 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 13 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/accessControl.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostrClientFacade.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/userBlocks.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/relayManager.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/bootstrap.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostrClientRegistry.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostrEventSchemas.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/cachePolicies.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostrPublish.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostrToolsBootstrap.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/index.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/nip46Client.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostrViewEventsFacade.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/sidebarLoading.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/views/VideoListView.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/moderationService.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 11 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/state/profileCache.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/overlay/popoverEngine.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/gridHealth.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/urlHealthObserver.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/domUtils.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/formatters.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/VideoCard.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/videoMenuRenderers.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/profileMedia.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/stages.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/moderationUiHelpers.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/moderationCopy.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/zapSharedState.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/zapSplit.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/zapNotifications.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/lnurl.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/platformAddress.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/nwcClient.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/state/appState.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/modalAccessibility.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/lruCache.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/attachments/attachmentUtils.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/dmNostrService.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/directMessagesStore.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/storage/dmDb.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/dmNotificationManager.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/dmDecryptWorkerClient.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/r2.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/storage/r2-mgmt.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/storage/r2-s3.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/videoNotePayload.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/storageService.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/sessionActor.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/hashtagNormalization.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/webtorrent.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/magnetUtils.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/playbackUtils.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/cardSourceVisibility.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/videoTags.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/lists.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/index.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/watchHistoryService.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/r2-quick.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/watchHistoryDebug.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/signRequestQueue.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/nip07Permissions.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/viewCounter.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/reactionCounter.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/loginModalController.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/tagPreferenceMenuController.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/pointer.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/videoPointer.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/magnetValidators.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/videoDeduper.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/serviceWorkerFallbackMessages.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/profileBatchFetcher.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/videoTimestamps.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/state/cache.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/applicationBootstrap.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/engagementController.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/similarContentController.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 11 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/urlHealthController.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/videoModalCommentController.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/torrentStatusController.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/moderationActionController.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/moderationDecorator.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/trustBootstrap.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/authProviders/nip07.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/authProviders/nip46.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/authProviders/nsec.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/services/authProviders/generate.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/defaultClient.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/viewEventBindings.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/viewEvents.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/client.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/nip71.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/watchHistory.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/watchHistoryBindings.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/reactionEvents.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/commentEvents.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/hashtagStripHelper.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/nip46Queue.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/dom/cardObserver.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/designSystem/metrics.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 18 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/overlay/overlayRoot.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /vendor/floating-ui.dom.bundle.min.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/magnets.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/storage.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/utils.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/platformFee.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/zapMessages.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/nostr/publishHelpers.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/payments/zapReceiptValidator.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/magnetShared.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /vendor/crypto-helpers.bundle.min.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/engine.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/exploreScoring.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/sorters.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/sources.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/feedEngine/watchHistoryFeed.js + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/ui/components/tagPreferenceMenu.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:00:59 AM ::1 GET /js/utils/qrcode.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/utils/hex.js + HTTP 1/23/2026 5:00:59 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/state/profileSettingsStore.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/utils/mediaLoader.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/historyView.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/watchHistoryController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/watchHistoryTelemetry.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/playbackService.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/discussionCountService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/commentThreadService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/exploreDataService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/nwcSettingsService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/relayHealthService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/profileIdentityController.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/videoListViewController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/profileModalController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/moreMenuController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/appChromeController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/ModalManager.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/countDiagnostics.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 13 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/videoEventUtils.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/tagPillList.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/designSystem/dynamicStyles.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/syncMetadataStore.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/dmSignalEvents.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/maxListenerDiagnostics.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/nip04WorkerClient.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/dmDecryptDiagnostics.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/signerHelpers.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/adapters/nip07Adapter.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/adapters/nsecAdapter.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostr/adapters/nip46Adapter.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nostrWatchHistoryFacade.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/nwcSettings.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/VideoModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/RevertModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/ShareNostrModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/initUploadModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/initEditModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/initDeleteModal.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/EventDetailsModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/zapController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/index.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/attachmentService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/utils/linkPreviewSettings.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/UploadModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/DeleteModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/EditModal.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/nip71FormManager.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/AppShell.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/Avatar.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/ContactRow.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/ConversationList.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/MessageThread.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/MessageBubble.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/Composer.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/NotificationCenter.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/DayDivider.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/ZapReceiptList.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/zapHelpers.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/ambientBackground.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/video-modal/commentsController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/video-modal/reactionsController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/video-modal/similarContentController.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/video-modal/moderationController.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/video-modal/utils/commentAvatar.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/components/SimilarContentCard.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/services/linkPreviewService.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/utils/torrentHash.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/DMPrivacySettings.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/ui/dm/ZapInterface.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /js/payments/zapRequests.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/login-modal.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/application-form.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/content-appeals-form.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/general-feedback-form.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/feature-request-form.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/bug-fix-form.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/video-modal.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/upload-modal.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/edit-video-modal.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/profile-modal.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/login-modal + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/application-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/content-appeals-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/general-feedback-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/feature-request-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/bug-fix-form + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/video-modal + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/upload-modal + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/edit-video-modal + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/profile-modal + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 11 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-application-form.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-content-appeals-form.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-application-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-feedback-form.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-bug-fix-form.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-request-form.html + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-content-appeals-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-feedback-form + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-bug-fix-form + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/iframe-request-form + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/sidebar.html?v=2024.11.09 + HTTP 1/23/2026 5:01:00 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:01:00 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 404 in 7 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 304 in 5 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 404 in 6 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:01:00 AM ::1 Returned 404 in 4 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 304 in 2 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 404 in 3 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/sidebar + HTTP 1/23/2026 5:01:00 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:01:00 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 200 in 13 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:01:00 AM ::1 Returned 404 in 21 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 304 in 0 ms + HTTP 1/23/2026 5:01:00 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:01:00 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:01:01 AM ::1 Returned 304 in 2 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:01:01 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:01:01 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/for-you-feed-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/globe-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/explore-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/subscriptions-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/history-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/ellipsis.svg + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/guidelines-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/dns-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/blog-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/about-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/upload-content-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/links-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/roadmap-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/github-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/nostr-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/getting-started-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/beta-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 GET /assets/svg/beacon-icon.svg + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /views/most-recent-videos.html?v=2024.11.09 + HTTP 1/23/2026 5:01:01 AM ::1 Returned 301 in 2 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /views/most-recent-videos + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /js/sidebar.js + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /components/disclaimer.html?v=2024.11.09 + HTTP 1/23/2026 5:01:01 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /components/disclaimer + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /js/disclaimer.js + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /views/most-recent-videos.html?v=2024.11.09 + HTTP 1/23/2026 5:01:01 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:01:01 AM ::1 GET /views/most-recent-videos + HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:01:03 AM ::1 GET /assets/jpg/video-thumbnail-fallback.jpg + HTTP 1/23/2026 5:01:03 AM ::1 Returned 200 in 2 ms From e6da22249e96c7642a431a47c608b8fad4f21956 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 23 Jan 2026 05:10:25 +0000 Subject: [PATCH 2/2] feat: Add peek animation and hide scrollbars in DM lists - Add `.no-scrollbar` utility to hide scrollbars while keeping scrollability. - Apply `.no-scrollbar` to ConversationList and MessageThread containers. - Implement "peek" animation using `IntersectionObserver` to trigger only when the container becomes visible. - Ensure CSS build is updated with new utilities. --- js/ui/dm/ConversationList.js | 35 +- js/ui/dm/MessageThread.js | 22 +- serve.log | 612 +++++++++++++++++++++++++++++++++++ 3 files changed, 659 insertions(+), 10 deletions(-) diff --git a/js/ui/dm/ConversationList.js b/js/ui/dm/ConversationList.js index 914d9a67..4b6ed0ff 100644 --- a/js/ui/dm/ConversationList.js +++ b/js/ui/dm/ConversationList.js @@ -78,14 +78,33 @@ export function ConversationList({ // Peek animation if (conversations.length > 0) { - setTimeout(() => { - if (list.scrollHeight > list.clientHeight) { - list.scrollTo({ top: 40, behavior: "smooth" }); - setTimeout(() => { - list.scrollTo({ top: 0, behavior: "smooth" }); - }, 600); - } - }, 600); + if (typeof IntersectionObserver !== "undefined") { + const observer = new IntersectionObserver((entries) => { + const entry = entries[0]; + if (entry.isIntersecting) { + observer.disconnect(); + setTimeout(() => { + if (list.scrollHeight > list.clientHeight) { + list.scrollTo({ top: 40, behavior: "smooth" }); + setTimeout(() => { + list.scrollTo({ top: 0, behavior: "smooth" }); + }, 600); + } + }, 300); + } + }, { threshold: 0.1 }); + observer.observe(list); + } else { + // Fallback for no IntersectionObserver (e.g. some tests or very old browsers) + setTimeout(() => { + if (list.scrollHeight > list.clientHeight) { + list.scrollTo({ top: 40, behavior: "smooth" }); + setTimeout(() => { + list.scrollTo({ top: 0, behavior: "smooth" }); + }, 600); + } + }, 600); + } } } diff --git a/js/ui/dm/MessageThread.js b/js/ui/dm/MessageThread.js index 65171d3a..4db1c357 100644 --- a/js/ui/dm/MessageThread.js +++ b/js/ui/dm/MessageThread.js @@ -139,7 +139,7 @@ export function MessageThread({ // Scroll to bottom and peek if (messages.length > 0) { - setTimeout(() => { + const animate = () => { timeline.scrollTop = timeline.scrollHeight; if (timeline.scrollHeight > timeline.clientHeight) { @@ -155,7 +155,25 @@ export function MessageThread({ }, 600); }, 600); } - }, 0); + }; + + if (typeof IntersectionObserver !== "undefined") { + const observer = new IntersectionObserver((entries) => { + const entry = entries[0]; + if (entry.isIntersecting) { + observer.disconnect(); + // First ensure we are at bottom + timeline.scrollTop = timeline.scrollHeight; + setTimeout(animate, 300); + } + }, { threshold: 0.1 }); + observer.observe(timeline); + } else { + setTimeout(() => { + timeline.scrollTop = timeline.scrollHeight; + animate(); + }, 0); + } } root.appendChild(timeline); diff --git a/serve.log b/serve.log index 04c9a4ed..e0afb6bb 100644 --- a/serve.log +++ b/serve.log @@ -608,3 +608,615 @@ npm warn exec The following package was not found and will be installed: serve@1 HTTP 1/23/2026 5:01:01 AM ::1 Returned 200 in 1 ms HTTP 1/23/2026 5:01:03 AM ::1 GET /assets/jpg/video-thumbnail-fallback.jpg HTTP 1/23/2026 5:01:03 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET / + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /css/tailwind.generated.css?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrToolsBootstrap.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/config.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/lists.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/accessControl.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/webtorrent.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/viewManager.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 35 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 12 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/bootstrap.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/disclaimer.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/index.js?v=2024.11.09 + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/logger.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 18 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 11 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/config.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 37 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/adminListStore.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/toolkit.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/webtorrent.min.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/constants.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/safeDecode.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/channelProfile.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/forYouView.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/exploreView.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/subscriptions.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/applicationContext.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /config/asset-version.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/designSystem.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/components/FeedInfoPopover.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/app.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/nostrService.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/r2Service.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/viewManager.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/hashtagPreferencesService.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/components/staticModalAccessibility.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /config/validate-config.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/bufferPolyfill.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/themeController.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/hashView.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/hashChangeHandler.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/authService.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/authProviders/index.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/accessControl.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrClientFacade.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/userBlocks.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/relayManager.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/bootstrap.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /assets/svg/filter.svg + HTTP 1/23/2026 5:08:19 AM ::1 GET /assets/svg/search.svg + HTTP 1/23/2026 5:08:19 AM ::1 GET /assets/svg/default-profile.svg + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrToolsBootstrap.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrClientRegistry.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrEventSchemas.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/cachePolicies.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrPublish.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/index.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 17 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/gridHealth.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/urlHealthObserver.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/domUtils.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/formatters.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/overlay/popoverEngine.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/components/VideoCard.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/components/videoMenuRenderers.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/profileMedia.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/moderationService.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/feedEngine/stages.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/moderationUiHelpers.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/moderationCopy.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/payments/zapSharedState.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/payments/zapSplit.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/payments/zapNotifications.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/payments/lnurl.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/payments/platformAddress.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/payments/nwcClient.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/state/appState.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/nip46Client.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostrViewEventsFacade.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/sidebarLoading.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/views/VideoListView.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/state/profileCache.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/lruCache.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/attachments/attachmentUtils.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/dmNostrService.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/directMessagesStore.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/storage/dmDb.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/dmNotificationManager.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/dmDecryptWorkerClient.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/r2.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/storage/r2-mgmt.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/storage/r2-s3.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/videoNotePayload.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/services/storageService.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/ui/components/modalAccessibility.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/sessionActor.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/hashtagNormalization.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/defaultClient.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/webtorrent.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/magnetUtils.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/playbackUtils.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/cardSourceVisibility.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/utils/videoTags.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/lists.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/feedEngine/index.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/watchHistoryService.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/r2-quick.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/watchHistoryDebug.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/signRequestQueue.js + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/nostr/nip07Permissions.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:08:19 AM ::1 GET /js/viewCounter.js + HTTP 1/23/2026 5:08:19 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/reactionCounter.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/loginModalController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/tagPreferenceMenuController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/pointer.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/videoPointer.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/magnetValidators.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/videoDeduper.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/serviceWorkerFallbackMessages.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/profileBatchFetcher.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/videoTimestamps.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/state/cache.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/applicationBootstrap.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/engagementController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/similarContentController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/urlHealthController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/videoModalCommentController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/torrentStatusController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/moderationActionController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/moderationDecorator.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/trustBootstrap.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/authProviders/nip07.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/authProviders/nip46.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/authProviders/nsec.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/authProviders/generate.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/client.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/nip71.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/watchHistory.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/watchHistoryBindings.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/viewEvents.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/reactionEvents.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/commentEvents.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/dom/cardObserver.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/magnets.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/storage.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/designSystem/metrics.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/overlay/overlayRoot.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /vendor/floating-ui.dom.bundle.min.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/payments/platformFee.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/feedEngine/utils.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/payments/zapMessages.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/publishHelpers.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/payments/zapReceiptValidator.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/viewEventBindings.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/nip46Queue.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/hashtagStripHelper.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/magnetShared.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /vendor/crypto-helpers.bundle.min.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/feedEngine/engine.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/feedEngine/exploreScoring.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/feedEngine/sorters.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/feedEngine/sources.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/feedEngine/watchHistoryFeed.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/hex.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/tagPreferenceMenu.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/qrcode.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/mediaLoader.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/historyView.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/watchHistoryController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/watchHistoryTelemetry.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/playbackService.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/discussionCountService.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/commentThreadService.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/exploreDataService.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/nwcSettingsService.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/relayHealthService.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/profileIdentityController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/videoListViewController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/profileModalController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/moreMenuController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/appChromeController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/ModalManager.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/state/profileSettingsStore.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/videoEventUtils.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/countDiagnostics.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/syncMetadataStore.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/dmSignalEvents.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/maxListenerDiagnostics.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/nip04WorkerClient.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/dmDecryptDiagnostics.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/signerHelpers.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/adapters/nip07Adapter.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/adapters/nsecAdapter.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostr/adapters/nip46Adapter.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/designSystem/dynamicStyles.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/tagPillList.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nostrWatchHistoryFacade.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/nwcSettings.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/VideoModal.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/RevertModal.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/ShareNostrModal.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/initUploadModal.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/initEditModal.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/initDeleteModal.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/EventDetailsModal.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/zapController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/index.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/attachmentService.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/linkPreviewSettings.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/nip71FormManager.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/UploadModal.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/ambientBackground.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/video-modal/commentsController.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/video-modal/reactionsController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/video-modal/similarContentController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/video-modal/moderationController.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/video-modal/utils/commentAvatar.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/SimilarContentCard.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/services/linkPreviewService.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/EditModal.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/components/DeleteModal.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/AppShell.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/Avatar.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/ContactRow.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/ConversationList.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/MessageThread.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/MessageBubble.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/Composer.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/NotificationCenter.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/DayDivider.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/ZapReceiptList.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/zapHelpers.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/utils/torrentHash.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/DMPrivacySettings.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/ui/dm/ZapInterface.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /js/payments/zapRequests.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/login-modal.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/application-form.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/content-appeals-form.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/general-feedback-form.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/feature-request-form.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/bug-fix-form.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/video-modal.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/upload-modal.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/edit-video-modal.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/profile-modal.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/login-modal + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/application-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/general-feedback-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/feature-request-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/bug-fix-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/content-appeals-form + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 9 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 10 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/video-modal + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/upload-modal + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/edit-video-modal + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/profile-modal + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-application-form.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-request-form.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-feedback-form.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-application-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-bug-fix-form.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-content-appeals-form.html + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-request-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-feedback-form + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 6 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-bug-fix-form + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/iframe-content-appeals-form + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 12 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/sidebar.html?v=2024.11.09 + HTTP 1/23/2026 5:08:20 AM ::1 Returned 301 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/sidebar + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /components/iframe_forms/theme-sync.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 0 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/for-you-feed-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/globe-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/explore-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/subscriptions-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 4 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/history-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 8 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 7 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/ellipsis.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 3 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/about-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/guidelines-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/getting-started-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/upload-content-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /css/tailwind.generated.css + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/roadmap-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 5 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/blog-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/nostr-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/github-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/beacon-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/beta-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/links-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /assets/svg/dns-icon.svg + HTTP 1/23/2026 5:08:20 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 2 ms + HTTP 1/23/2026 5:08:20 AM ::1 GET /config/instance-config.js + HTTP 1/23/2026 5:08:20 AM ::1 Returned 304 in 1 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /views/most-recent-videos.html?v=2024.11.09 + HTTP 1/23/2026 5:08:22 AM ::1 Returned 301 in 3 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /views/most-recent-videos + HTTP 1/23/2026 5:08:22 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /js/sidebar.js + HTTP 1/23/2026 5:08:22 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /components/disclaimer.html?v=2024.11.09 + HTTP 1/23/2026 5:08:22 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /components/disclaimer + HTTP 1/23/2026 5:08:22 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /js/disclaimer.js + HTTP 1/23/2026 5:08:22 AM ::1 Returned 200 in 1 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /views/most-recent-videos.html?v=2024.11.09 + HTTP 1/23/2026 5:08:22 AM ::1 Returned 301 in 0 ms + HTTP 1/23/2026 5:08:22 AM ::1 GET /views/most-recent-videos + HTTP 1/23/2026 5:08:22 AM ::1 Returned 200 in 2 ms + HTTP 1/23/2026 5:08:23 AM ::1 GET /assets/jpg/video-thumbnail-fallback.jpg + HTTP 1/23/2026 5:08:23 AM ::1 Returned 200 in 1 ms