Commit Graph
3801 Commits
Author SHA1 Message Date
thePR0M3TH3AN f9f8b9da4a Merge pull request #1220 from PR0M3TH3AN/fix-visual-regression-failures-17326090370992658064
Fix visual regression test failures and logic bugs
2026-01-14 10:03:05 -05:00
google-labs-jules[bot] b66e801fa2 fix(ci): Resolve visual regression failures and test flakiness (v2)
- Fix scoping and property mismatch errors in `popover.spec.ts`.
- Relax placement assertion in `popover.spec.ts` to accommodate environment variations.
- Implement missing `onModerationHide` handler in `docs/moderation/fixtures/index.html`.
- Improve `VideoCard.js` moderation badge handling to ensure correct DOM placement and static positioning when the card is hidden.
- Update `moderation.spec.ts` to use `toHaveCount(1)` and `dispatchEvent('click')` for button interactions, bypassing persistent headless rendering visibility issues (clipping).
- Increase tolerance in `overlay-layers.spec.ts` to account for scrollbar width differences in CI environments.
- Update `check-inline-styles.mjs` to ignore Playwright report directories.
- Update visual baselines for `kitchen-sink` to match the current environment.
2026-01-14 14:57:39 +00:00
google-labs-jules[bot] 1bc11e1ae8 fix(ci): Resolve visual regression failures and test flakiness
- Fix scoping and property mismatch errors in `popover.spec.ts`.
- Relax placement assertion in `popover.spec.ts` to accommodate environment variations.
- Implement missing `onModerationHide` handler in `docs/moderation/fixtures/index.html`.
- Improve `VideoCard.js` moderation badge handling to ensure correct DOM placement and static positioning when the card is hidden.
- Update `moderation.spec.ts` to use `toHaveCount(1)` and `dispatchEvent('click')` for button interactions, bypassing persistent headless rendering visibility issues (clipping).
- Increase tolerance in `overlay-layers.spec.ts` to account for scrollbar width differences in CI environments.
- Update `check-inline-styles.mjs` to ignore Playwright report directories.
- Update visual baselines for `kitchen-sink` to match the current environment.
2026-01-14 14:50:31 +00:00
thePR0M3TH3AN 148ca01281 Merge pull request #1217 from PR0M3TH3AN/fix-popover-tests-jsdom-ref-3613247743198183095
Fix popover engine unit tests for JSDOM compatibility
2026-01-13 23:35:23 -05:00
google-labs-jules[bot] 4cd85b8096 Fix JSDOM reference error and assertion in popover tests
- Exposed `HTMLStyleElement` globally in `tests/ui/popoverEngine.test.mjs` to resolve a `ReferenceError` during `instanceof` checks.
- Updated assertion in "applies token-based sizing and arrow positioning" to check the `--popover-arrow-top` CSS variable instead of the `top` property, as JSDOM does not compute layout properties from variables.
- Verified all tests in the file pass.
2026-01-14 04:29:16 +00:00
thePR0M3TH3AN c0be521be2 Merge pull request #1216 from PR0M3TH3AN/fix-subscription-tests-3380883128418492214
Update subscription manager tests to remove legacy kind requirement
2026-01-13 23:18:52 -05:00
google-labs-jules[bot] d9c6cce97d Update subscription manager tests to remove legacy kind requirement
- Modified `tests/subscriptions-manager.test.mjs` to remove the assertion for legacy Kind 30002 support.
- Updated the test to verify that only the current `SUBSCRIPTION_SET_KIND` (30000) is queried.
- Fixed JSDOM `navigator` mocking in the test file to resolve `TypeError: Cannot set property navigator...` errors.
- Verified all tests pass with the new implementation.
2026-01-14 04:17:13 +00:00
thePR0M3TH3AN e49d4e4f24 Merge pull request #1215 from PR0M3TH3AN/fix-history-pane-refresh-6549169443883378731
Fix history pane stale data on re-open
2026-01-13 23:07:26 -05:00
google-labs-jules[bot] 4bf3605fd2 Fix: Ensure history pane refreshes on subsequent visits
This change ensures that the profile history pane refreshes its content when the user navigates back to it, addressing a bug where stale data could be displayed.

It implements an optimized strategy:
- On the first load, `ensureInitialLoad` is called, which handles the initial fetch internally.
- On subsequent visits (when the renderer is already initialized), `refresh({ force: true })` is called explicitly to update the list.

The unit test `history pane lazily initializes the watch history renderer` was updated to reflect this behavior, verifying that `ensureInitialLoad` is called once and `refresh` is called on subsequent opens.
2026-01-14 04:05:23 +00:00
thePR0M3TH3AN 040a5d0976 Merge pull request #1214 from PR0M3TH3AN/fix-popover-test-reference-error-1181338534566980395
Fix ReferenceError in position-floating-panel tests
2026-01-13 22:54:29 -05:00
google-labs-jules[bot] 05c091c26f Fix unit tests: Expose HTMLStyleElement in JSDOM setup
This change addresses a `ReferenceError: HTMLStyleElement is not defined` failure in `tests/position-floating-panel.test.mjs`. The `popoverEngine.js` source code performs an `instanceof HTMLStyleElement` check, which requires the class to be available in the global scope. While JSDOM provides this class, the test setup was not exposing it to the global object.

- Updated `tests/position-floating-panel.test.mjs` to add `global.HTMLStyleElement = windowRef.HTMLStyleElement;` in the `beforeEach` block.
2026-01-14 03:52:53 +00:00
thePR0M3TH3AN 05a922687f Merge pull request #1213 from PR0M3TH3AN/fix-comment-event-validation-test-12140441605457442206
Fix validation failure in comment event unit test
2026-01-13 22:43:53 -05:00
google-labs-jules[bot] 6735eb0dea Fix comment event validation test case
Added missing root kind (K) and root author (P) tags to the mock event in `tests/nostr/comment-events.test.mjs`. This fixes a test failure where the event was being rejected by strict validation logic in `isVideoCommentEvent` because the tags derived from the definition address were not present in the event itself.

The added tags use whitespace and mixed casing to preserve the test's intent of verifying robust tag parsing.
2026-01-14 03:42:53 +00:00
thePR0M3TH3AN fe30449418 Merge pull request #1212 from PR0M3TH3AN/fix-comment-event-tests-815291605250186737
Fix comment event unit tests and normalization logic
2026-01-13 22:23:28 -05:00
google-labs-jules[bot] f3075b8929 Fix unit tests for comment events and improve target normalization logic
- Updated `subscribeVideoComments` test to expect `#A` filter keys (uppercase), matching the implementation and other tests.
- Improved `normalizeCommentTarget` in `js/nostr/commentEvents.js` to correctly derive `parentKind` and `parentAuthorPubkey` from the `parentCommentEvent` object if available.
- Enhanced `parentAuthorRelay` resolution to look up the specific `p` tag for the author pubkey instead of defaulting to the first found `p` tag.
- Updated `publishComment` test expectations to remove duplicate tags (implementation correctly deduplicates) and reflect improved metadata derivation (correct `K` tag and `P` relay).
- Added async wait to `subscribeVideoComments` test to prevent race condition in unsubscribe assertion.
2026-01-14 03:22:25 +00:00
thePR0M3TH3AN dd82cc6949 Merge pull request #1211 from PR0M3TH3AN/lint-fixes-token-replacement-418374991526815797
Fix design token linting errors
2026-01-13 21:53:11 -05:00
google-labs-jules[bot] a5e7e48fea Fix lint:tailwind-brackets errors by using design tokens
Replaced arbitrary Tailwind values with standard design tokens in HTML files to pass the linting checks:
- `components/upload-modal.html`: Replaced `text-[10px]` with `text-4xs` (approx. 10.4px).
- `views/channel-profile.html`: Replaced `max-sm:text-[0.7rem]` with `max-sm:text-2xs` (0.7rem).
- `views/channel-profile.html`: Replaced `max-sm:h-[3.2rem]` and `max-sm:w-[3.2rem]` with `max-sm:h-12` and `max-sm:w-12` (standard 3rem/48px spacing).
2026-01-14 02:51:02 +00:00
thePR0M3TH3AN 560da42081 Merge pull request #1210 from PR0M3TH3AN/codex/define-design-tokens-and-refactor-css
Add measurement tokens and replace raw sizing literals in CSS
2026-01-13 21:40:16 -05:00
thePR0M3TH3AN 990c7f1695 Add measurement tokens for layout and media sizing 2026-01-13 21:37:54 -05:00
thePR0M3TH3AN a85f915ead Merge pull request #1209 from PR0M3TH3AN/codex/add-and-use-breakpoint-token-and-helpers
Add --breakpoint-lg token and helpers for media-query usage
2026-01-13 21:29:15 -05:00
thePR0M3TH3AN 06c3d9a978 Add breakpoint token helpers for media queries 2026-01-13 21:26:53 -05:00
thePR0M3TH3AN 8f687e2eb1 Merge pull request #1208 from PR0M3TH3AN/codex/refactor-inline-styles-to-use-css-classes
Use design tokens for moderation fixtures styling
2026-01-13 21:20:36 -05:00
thePR0M3TH3AN a79503937e Use tokens for moderation fixtures styling 2026-01-13 21:19:08 -05:00
thePR0M3TH3AN 7719815d78 Merge pull request #1207 from PR0M3TH3AN/codex/audit-and-refactor-.style-usages
Replace inline .style usage with CSS classes/variables and stylesheet-driven state
2026-01-13 21:15:16 -05:00
thePR0M3TH3AN b48edbb055 Refactor inline styles to CSS rules 2026-01-13 21:13:32 -05:00
thePR0M3TH3AN f80002b573 Merge pull request #1206 from PR0M3TH3AN/codex/refactor-theme-synchronization-in-iframe_forms
Refactor iframe theme accent sync to use computed styles & data-attributes
2026-01-13 20:50:23 -05:00
thePR0M3TH3AN a697a1de5f Refactor iframe theme accent sync 2026-01-13 20:48:05 -05:00
thePR0M3TH3AN 2215e0254d Merge pull request #1205 from PR0M3TH3AN/codex/refactor-inline-styles-to-class-names
Replace inline styles with semantic classes
2026-01-13 20:31:18 -05:00
thePR0M3TH3AN 4c4f57c6e5 Replace inline styles with classes 2026-01-13 20:29:38 -05:00
thePR0M3TH3AN 472738ee19 Merge pull request #1204 from PR0M3TH3AN/codex/fix-remaining-linting-and-test-issues
Fix watch history payload limits, encryption, and storage persistence
2026-01-13 20:22:35 -05:00
thePR0M3TH3AN 5ba24a4cb6 Fix watch history storage persistence 2026-01-13 18:34:26 -05:00
thePR0M3TH3AN 602207fbee Merge pull request #1203 from PR0M3TH3AN/fix-ci-env-lint-tests-7993553949094506329
Fix CI, Env, and Unit Tests
2026-01-13 15:35:05 -05:00
google-labs-jules[bot] d6882fb5bb Fix CI, environment, linting, and unit test issues
- Fix circular dependency in `js/adminListStore.js` by importing from `js/nostrClientRegistry.js`.
- Update `js/services/hashtagPreferencesService.js` to include legacy kind 30005 in filters.
- Fix JSDOM mocking in `tests/modal-accessibility.test.mjs` (navigator getter) and `UploadModal` selectors.
- Add `getRoot()` to `js/ui/components/UploadModal.js` for API consistency.
- Update `tests/magnet-utils.test.mjs` expectations to reflect removed default tracker.
- Mock `ensureActiveSignerForPubkey` in `tests/moderation/submit-report.test.mjs`.
- Fix mock loader path in `tests/moderation/trust-seeds.test.mjs` to target `trustBootstrap.js`.
- Fix duplicate pointer tags in `js/nostrEventSchemas.js`'s `buildCommentEvent`.
- Update `tests/nostr/comment-events.test.mjs` and `tests/comment-event-builder.test.mjs` to match current code behavior (legacy kinds, unique tags).
2026-01-13 20:32:06 +00:00
thePR0M3TH3AN 03bdc7a695 Merge pull request #1202 from PR0M3TH3AN/fix-subscriptions-loading-and-sidebar-visibility-15759455493228740300
Fix subscriptions loading and sidebar visibility
2026-01-13 12:06:21 -05:00
google-labs-jules[bot] d3008d0bbe Fix: Sidebar 'Subscriptions' link remains hidden for logged-in users
The `resolveSubscriptionsLink` method in `js/app.js` cached the sidebar DOM element (`this.subscriptionsLink`) during initialization. However, the sidebar is re-rendered dynamically, causing the cached reference to point to a detached DOM node. Consequently, `applyAuthenticatedUiState` would update the visibility of the detached element, leaving the visible sidebar unchanged.

This fix updates `resolveSubscriptionsLink` to check `this.subscriptionsLink.isConnected`. If the cached element is detached, it re-queries the DOM to retrieve the current live element, ensuring visibility updates apply correctly.

Additionally, `js/index.js` now awaits `applicationReadyPromise` before hydrating the sidebar, preventing race conditions during startup. `js/nostr/toolkit.js` was updated to support function-based subscription closers, fixing potential leaks.
2026-01-13 16:58:45 +00:00
google-labs-jules[bot] eb8b3c70dd Fix subscriptions loading issues and sidebar link visibility race condition.
- Updated `shimLegacySimplePoolMethods` in `js/nostr/toolkit.js` to correctly handle `nostr-tools` v2 subscription closers (which are functions) in `unsub`. This prevents subscription leaks that were causing relays to reject new requests, leading to empty subscription lists.
- Updated `bootstrapInterface` in `js/index.js` to await `applicationReadyPromise` before attempting to hydrate the sidebar navigation. This fixes a race condition where the sidebar "Subscriptions" link would remain hidden because the application auth state wasn't fully initialized when the sidebar was rendered.
2026-01-13 15:25:03 +00:00
thePR0M3TH3AN 778b35874d Merge pull request #1201 from PR0M3TH3AN/fix-slow-loading-video-grid-7505675586453320961
Unblock video grid loading by backgrounding access control checks
2026-01-13 09:50:29 -05:00
google-labs-jules[bot] bdc86aaef6 Fix future timestamp bug and improve loading spinner UX 2026-01-13 14:48:56 +00:00
thePR0M3TH3AN 6ea31c9895 Merge pull request #1200 from PR0M3TH3AN/refactor-video-moderation-ui-3991318459890332527
Refactor Video Modal Moderation UI
2026-01-13 09:31:40 -05:00
google-labs-jules[bot] 81e8b2ed40 Refine Video Modal moderation UI styles: blur creator avatar and fix text contrast. 2026-01-13 14:28:42 +00:00
google-labs-jules[bot] 14d7423e29 Remove blocking access control checks to fix slow initial video loading 2026-01-13 14:25:22 +00:00
google-labs-jules[bot] 0772d2fa09 Refactor Video Modal moderation UI to a persistent bar above the player. 2026-01-13 14:12:14 +00:00
thePR0M3TH3AN efb42e93db Merge pull request #1198 from PR0M3TH3AN/stale-while-revalidate-moderation-13578942910948659410
feat: implement stale-while-revalidate for moderation lists
2026-01-13 08:53:18 -05:00
google-labs-jules[bot] ef34d3cf02 Optimize startup by non-blocking moderation and relay init 2026-01-13 13:36:49 +00:00
thePR0M3TH3AN 8755ad64cd Merge pull request #1199 from PR0M3TH3AN/video-card-moderation-badge-overlay-5905417972080224775
Overlay moderation badge on blurred thumbnails
2026-01-12 23:32:16 -05:00
google-labs-jules[bot] e77418f0a8 feat: overlay moderation badge on blurred video thumbnails
Moves the moderation warning badge ("Content blocked...") to overlay the blurred thumbnail image instead of sitting below it or increasing card height. This logic is applied to both the main `VideoCard` and the `SimilarContentCard` to ensure layout consistency.

Changes:
- VideoCard.js: Refactor `updateModerationBadge` to append the badge container as a child of the `anchorEl` (thumbnail wrapper) with absolute positioning.
- SimilarContentCard.js: Implement `refreshModerationUi` logic to generate and overlay a simplified moderation badge on the thumbnail when `trustedMuted` context is present.
- Fix tests/moderation/video-card.test.mjs: Patch test environment to mock `globalThis.navigator`.
2026-01-13 04:29:36 +00:00
google-labs-jules[bot] 29857dc36c Optimize application startup speed by parallelizing initialization 2026-01-13 04:21:13 +00:00
google-labs-jules[bot] e1d43708c5 feat: implement stale-while-revalidate for moderation lists to speed up initial load
This change optimizes the application startup by allowing the moderation system (AccessControl) to initialize immediately using cached data from localStorage if available. It triggers a background network refresh to update the lists asynchronously, preventing the UI from blocking on slow relay responses.

Key changes:
- Modified `js/accessControl.js` to make `ensureReady()` return immediately if hydrated from cache.
- Updated `js/app.js` to use `ensureReady()` instead of the blocking `refresh()` during init.
- Updated `js/ui/profileModalController.js` to conditionally show the "Fetching moderation filters…" status message only when waiting for network data.
2026-01-13 03:59:54 +00:00
thePR0M3TH3AN 0d57316037 Merge pull request #1196 from PR0M3TH3AN/r2-docs-update-1588879282634368057
Update R2 setup documentation to use manual Public Access and CORS flow
2026-01-12 22:09:11 -05:00
google-labs-jules[bot] c21bffb0c1 Update R2 documentation for manual public access setup
Updates `content/upload-content.md` and `docs/storage-r2.md` to reflect the current manual configuration workflow for Cloudflare R2 storage.

Key changes:
- Removes deprecated instructions for generating "Admin Read & Write" or "Workers R2 Storage" automation tokens.
- Documents the new requirement to manually create a bucket and enable "Public Access" (r2.dev subdomain) in the Cloudflare Dashboard.
- Adds explicit instructions for manually configuring CORS policy via the Cloudflare Dashboard, providing the required JSON configuration.
- Aligns the "Configure bitvid" steps with the application's current UI, which requires the "Public Bucket URL" as an explicit input.
- Clarifies that "Object Read & Write" permissions are sufficient and recommended for security.
2026-01-13 03:04:29 +00:00