Commit Graph
1602 Commits
Author SHA1 Message Date
thePR0M3TH3AN 9a381b79db Add search filter presets 2026-01-23 13:22:02 -05:00
thePR0M3TH3AN a4128570c8 Merge branch 'unstable' into jules-fix-sidebar-and-baseline-297374874061158968 2026-01-23 13:20:15 -05:00
google-labs-jules[bot] 923a735e4a fix(ui): initialize sidebar logic before app ready and update visual baseline
Moves the sidebar density and toggle initialization logic in `js/index.js` to execute immediately after `loadSidebar` completes, rather than waiting for `applicationReadyPromise`. This resolves a race condition where the sidebar toggle was unresponsive during application startup (e.g. relay connection), causing `overlay-layers.spec.ts` to timeout.

Also updates the visual baseline for `video-modal-mobile` in `kitchen-sink.spec.ts` to match current rendering (height change), addressing the reported visual regression failure.

Verified with reproduction script and running visual tests locally.
2026-01-23 18:18:55 +00:00
thePR0M3TH3AN 19aa272bae Enhance search query parsing and filters 2026-01-23 13:13:40 -05:00
thePR0M3TH3AN 81513b338b Add search sort options and stable sorting 2026-01-23 12:58:12 -05:00
thePR0M3TH3AN e8a5da7ebe Update search relay filters 2026-01-23 12:31:34 -05:00
thePR0M3TH3AN e2778dc873 Merge pull request #1597 from PR0M3TH3AN/fix-hex-lint-ci-7031491832794179109
Fix CI lint errors by replacing hex colors with rgb and updating ignore list
2026-01-23 12:27:15 -05:00
google-labs-jules[bot] 92b95c9576 fix(ci): resolve hardcoded hex color lint errors
- replace hardcoded hex colors with rgb() equivalents in:
  - js/ui/loginModalController.js
  - js/ui/ambientBackground.js
  - js/ui/components/VideoModal.js
  - js/themeController.js
  - index.html
- exclude config/instance-config.js and config/validate-config.js from check-hex.js linting
- ensures CI lint jobs pass by adhering to token/rgb policy or exclusion lists

Signed-off-by: Jules <[email protected]>
2026-01-23 17:25:47 +00:00
thePR0M3TH3AN 6c088161ba Update search filtering for video results 2026-01-23 12:14:03 -05:00
thePR0M3TH3AN 0cdbd3deeb Merge pull request #1594 from PR0M3TH3AN/codex/implement-filter-popover-and-active-filters
Add shared search filter state, wire filter popover, and active-filter pills
2026-01-23 12:10:21 -05:00
thePR0M3TH3AN 460ba22d51 Add search filter state syncing 2026-01-23 12:07:55 -05:00
thePR0M3TH3AN 11f8aef942 Merge pull request #1593 from PR0M3TH3AN/fix-comment-events-ci-tests-13162760863406952792
Fix CI unit-test failures in comment-events.test.mjs
2026-01-23 12:05:50 -05:00
google-labs-jules[bot] cf92269468 fix(tests): resolve unit test failures in comment-events.test.mjs
- Update `publishComment` to return standardized string error codes (e.g., `session-actor-publish-blocked`, `auth-required`) instead of raw Error objects, ensuring consistency with test expectations.
- Introduce `resolveActiveSigner` dependency injection in `publishComment` to allow tests to supply mock signers, resolving failures where `getActiveSigner()` returned null.
- Expose `commentCache` via `__testExports` in `js/nostr/commentEvents.js` and clear it in `tests/nostr/comment-events.test.mjs` via `afterEach` to prevent test state pollution.
- Update test assertions to match the standardized error codes.

This resolves CI failures related to mismatched error messages and shared state in comment event tests.
2026-01-23 17:05:02 +00:00
thePR0M3TH3AN f7016f78f7 Add search filters popover component 2026-01-23 11:53:37 -05:00
thePR0M3TH3AN b17a534f76 Merge pull request #1585 from PR0M3TH3AN/codex/create-search-filters-module
Add search filter parsing and hash persistence
2026-01-23 11:44:06 -05:00
google-labs-jules[bot]andPR0M3TH3AN 932e57c724 Fuzz testing and hardening for nostrEventSchemas and magnetUtils
- Added fuzzing scripts for nostrEventSchemas, dmDecryptor, and magnetUtils.
- Fixed crashes in nostrEventSchemas related to unsafe stringification of content.
- Fixed crash in magnetUtils when options argument is null.
- Added safeStringify helper in nostrEventSchemas.js.
- Included fuzzing reports and reproducers.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-23 16:12:42 +00:00
thePR0M3TH3AN 40707e76af Add search filter parsing and hash persistence 2026-01-23 11:08:16 -05:00
thePR0M3TH3AN 725e3eb28b Merge pull request #1584 from PR0M3TH3AN/ds-audit/2026-01-23-17691002971935421944
Design System Audit: Fix inline styles
2026-01-23 10:43:29 -05:00
google-labs-jules[bot]andPR0M3TH3AN c27fc4bae7 Design System Audit: Fix inline styles
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-23 15:42:05 +00:00
google-labs-jules[bot] ae24fe211c chore(ai): doc js/nostr/client.js (agent) 2026-01-23 15:29:06 +00:00
thePR0M3TH3AN 36c19fa3d2 Merge pull request #1582 from PR0M3TH3AN/unify-styling-tokens-15997766081724410140
Refactor hardcoded styles to use token constants
2026-01-23 10:20:13 -05:00
thePR0M3TH3AN c2a40a6c5c Merge pull request #1579 from PR0M3TH3AN/dm-refresh-and-ui-tweaks-3319475114858168104
Add DM refresh button and update UI styles
2026-01-23 10:17:30 -05:00
google-labs-jules[bot] 3cd0532972 Refactor hardcoded styles to use token constants
Replaces hardcoded breakpoint values in `VideoCard.js` and `tailwind.source.css` with token constants and valid CSS calculations. Updates the token linting script to enforce these rules by removing the previous allowlists for these files. This ensures that all UI elements are defined by the central styling system.
2026-01-23 15:16:28 +00:00
google-labs-jules[bot] ac9c09c852 feat(dm): add refresh button, fix transparency, and update settings icon
- Added a forced refresh button to the conversation list in the DM tab (via `onRefreshConversations` in `ProfileModalController`).
- Updated the DM settings gear icon to use `icon-button accent-action-button` classes, matching the `VideoCard` style.
- Ensured the `dm-app-shell` container has a transparent background when rendered inside the profile modal to prevent visual clashes with the modal backdrop.
2026-01-23 15:13:45 +00:00
google-labs-jules[bot] 6541421928 Fix NIP-46 QR code styling to use tokenized colors and utility classes
Updated `js/ui/loginModalController.js` to resolve QR code colors from CSS variables (`--color-white`, `--color-black`) instead of hardcoding hex values, ensuring compatibility with the design system.
Updated `components/login-modal.html` to use Tailwind utility classes (`bg-white`, `text-black`, `p-6`) instead of inline styles, improving maintainability and readability.
This ensures the QR code remains scannable (high contrast) while respecting the codebase's tokenized styling approach.
2026-01-23 14:49:28 +00:00
google-labs-jules[bot] 57c065125c Fix NIP-46 QR code styling to ensure white background
Hardcoded the QR code colors to black-on-white and added explicit inline styles to the container to prevent theme-based inversions or transparency issues. Increased container padding to improve readability.
2026-01-23 14:29:59 +00:00
google-labs-jules[bot] 145796c5e0 Add forced refresh button to DM list and update UI styles
- Add a refresh button to `ConversationList` header.
- Make DM sidebar background transparent.
- Update DM settings gear icon to match `VideoCard` style.
- Wire up refresh action in `ProfileModalController` to force-fetch messages.
2026-01-23 14:04:55 +00:00
thePR0M3TH3AN ad26fe956d Merge pull request #1571 from PR0M3TH3AN/add-webseed-stream-test-13905203248074562453
Add E2E test for webseed stream fallback and fix app bug
2026-01-23 08:24:28 -05:00
google-labs-jules[bot] 4e834dd12b fix(app): fix reference error in playVideoWithoutEvent and add e2e test
This commit fixes a ReferenceError in `playVideoWithoutEvent` where `urlObj` was used before being defined.
It also adds a new E2E test `tests/e2e/webseed-playback.spec.ts` that verifies:
1. Direct CDN playback from an HTML link.
2. Fallback to WebTorrent using the HTML link as a webseed when the CDN is blocked.
2026-01-23 07:51:49 +00:00
google-labs-jules[bot] 986e4ef497 ui: move Kids link below Recently Added and add tags to Kids page 2026-01-23 07:40:44 +00:00
thePR0M3TH3AN 46ee5cd8b8 Add kids feed telemetry tracking 2026-01-23 02:22:19 -05:00
thePR0M3TH3AN f5ff3cc41c Enhance kids feed runtime 2026-01-23 02:15:44 -05:00
thePR0M3TH3AN 33cc5d23c7 Add kids feed view 2026-01-23 02:09:08 -05:00
thePR0M3TH3AN a36ea40288 Add kids feed registration and sorter 2026-01-23 01:59:57 -05:00
thePR0M3TH3AN ed99db01ea Add kids feed scoring stage 2026-01-23 01:54:11 -05:00
thePR0M3TH3AN ba68c10950 Add kids audience filter stage 2026-01-23 01:50:12 -05:00
thePR0M3TH3AN 27652eb48b Merge pull request #1555 from PR0M3TH3AN/dm-ui-redesign-11990077537705520279
Redesign DM profile pane UI
2026-01-23 01:27:15 -05:00
google-labs-jules[bot] 9a27761fe2 Redesign DM profile pane: Split view, independent scrolling, avatars, and cleanup
- Refactored `AppShell` to implement a split-pane layout for Conversations and Message History.
- Removed `NotificationCenter` from the DM view to declutter the interface.
- Updated `MessageThread` and `ConversationList` to support independent vertical scrolling with hidden scrollbars.
- Added avatars to message bubbles and conversation list items.
- Implemented right/left alignment for outgoing/incoming messages.
- Added "peak" bounce animations for list boundaries.
- Cleaned up redundant headers in the sidebar.
- Applied responsive CSS improvements in `tailwind.source.css`.
2026-01-23 05:57:31 +00:00
google-labs-jules[bot] 5eab37905d redesign DM profile pane UI with split view and avatars
- Update AppShell.js to split view into Conversations and Message History.
- Rename sidebar title to "Conversations".
- Update MessageThread.js to pass avatar URLs to bubbles.
- Update MessageBubble.js to render avatars and use flex layout for alignment.
- Update CSS to style message rows, avatars, and bubbles.
- Ensure peak animations match hashtag strip timing (600ms/800ms).
2026-01-23 05:34:06 +00:00
google-labs-jules[bot] 653f1925f8 chore(ai): event schema validation tool + fixes
- Created `scripts/agent/validate-events.mjs` to validate event builders against schemas.
- Instrumented all event builders in `js/nostrEventSchemas.js` to run validation in dev mode.
- Added `tests/event-schemas.test.mjs` to CI suite.
- Updated `docs/nostr-event-schemas.md` with validation instructions.
2026-01-23 05:33:57 +00:00
thePR0M3TH3AN 7ec337ab3d Merge pull request #1553 from PR0M3TH3AN/feature/dm-peek-animation-3120133740455078105
Add peek animation and hidden scrollbars to DM views
2026-01-23 00:12:59 -05:00
google-labs-jules[bot] e6da22249e 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.
2026-01-23 05:10:25 +00:00
google-labs-jules[bot] d989e09bdf 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.
2026-01-23 05:02:31 +00:00
thePR0M3TH3AN 053d9fd60b Merge pull request #1552 from PR0M3TH3AN/fix-video-modal-share-button-8912381817946423114
Fix video modal share button logic
2026-01-22 23:56:04 -05:00
thePR0M3TH3AN 696957fbbf Merge pull request #1551 from PR0M3TH3AN/fix-share-nostr-preview-18161927469891676907
Fix author name display in Share on Nostr modal preview
2026-01-22 23:55:34 -05:00
google-labs-jules[bot] afa231da3e Fix: Enable video modal share button when source is available
The share button in the video modal was not being enabled correctly because `updateSourceAvailability` returned early if `sourceToggleContainer` was missing, skipping the `setShareEnabled` call.

This change ensures `setShareEnabled` is called based on `hasUrl` or `hasMagnet` before checking for `sourceToggleContainer`.

Added a regression test `tests/e2e/video-modal-share-bug.spec.ts`.
2026-01-23 04:51:14 +00:00
google-labs-jules[bot] 6189f5ef41 Fix "Share on Nostr" modal preview to display author name
- Updated `js/app.js` to pass `authorName` from the video creator/author details to the modal payload.
- Updated `js/ui/components/ShareNostrModal.js` to display `authorName` if available, falling back to `pubkey`.
- Verified the fix with a local reproduction script and a frontend verification screenshot.
2026-01-23 04:49:50 +00:00
google-labs-jules[bot] ad3375ed09 fix: ensure access control lists are loaded before playback
Introduced `waitForReady` in `AccessControl` to block until moderation lists are fetched, and updated `playVideoByEventId` and `trustBootstrap` to use it, preventing false "not whitelisted" errors in private tabs.
2026-01-23 04:39:18 +00:00
thePR0M3TH3AN 20a4ed0386 Merge pull request #1549 from PR0M3TH3AN/fix-video-link-params-14223048263665822746
Fix video link redirect clearing URL params
2026-01-22 23:20:44 -05:00
google-labs-jules[bot] dbb6c0d2be Fix: Preserve ?v= parameter when auto-redirecting to For You feed
When a user visits a direct video link (e.g. `/?v=...`) while logged in,
the application auto-authenticates and redirects the view to `#view=for-you`.
Previously, `setHashView` unconditionally removed all query parameters, causing
the video modal to fail to open because the `v` parameter was lost before it could be read.

This change:
1.  Updates `setHashView` to accept an options object, allowing specific parameters to be preserved.
2.  Updates `handleAuthLogin` in `app.js` to detect if a `v` parameter is present and request its preservation during the view switch.
2026-01-23 04:19:40 +00:00