Commit Graph
3801 Commits
Author SHA1 Message Date
thePR0M3TH3AN 023c97340b Merge pull request #1195 from PR0M3TH3AN/reduce-similar-content-sidebar-11771111956314504323
Reduce Similar Content sidebar width
2026-01-12 20:33:12 -05:00
google-labs-jules[bot] 2912b5abbb Reduce width of Similar Content sidebar and improve layout
- Reduced width of "Similar Content" sidebar in the video modal (further reduced from 40rem to 35rem).
- Adjusted responsive widths for the sidebar:
  - LG: 30vw (was 36vw)
  - XL: 28vw (was 32vw)
- Added bottom padding to the primary video column (`.video-modal__primary`) to ensure the comments box does not touch the bottom of the scroll container.
- Updated `css/tokens.css` and `css/tailwind.source.css`.
- Regenerated `css/tailwind.generated.css`.
2026-01-13 01:26:51 +00:00
google-labs-jules[bot] 9dcd8e636b Reduce width of Similar Content sidebar in video modal
Reduced the width of the "Similar Content" sidebar by approximately 10% to provide more space for the video player.

- Updated `css/tokens.css` to reduce `--video-modal-secondary-max` from 44rem to 40rem.
- Updated `css/tailwind.source.css` to reduce the viewport width percentage clamp values:
  - LG breakpoint: 40vw -> 36vw
  - XL breakpoint: 36vw -> 32vw
- Regenerated `css/tailwind.generated.css`.
2026-01-13 01:05:01 +00:00
thePR0M3TH3AN df5a493969 Merge pull request #1194 from PR0M3TH3AN/feature/video-card-layout-update-14744375313479485048
Update Video Card layout with dedicated engagement section
2026-01-12 16:54:36 -05:00
google-labs-jules[bot] fb15ff3eb0 Update Similar Content Card to match Video Card layout.
- Remove view count and separator from the metadata row in `SimilarContentCard.js`.
- Add new `buildEngagementSection` method to render view count and discussion count in a dedicated footer.
- Use Eye and Message SVG icons for engagement metrics.
- Ensure visual consistency with the main Video Card component.
- Fix import and definition of `SVG_NAMESPACE` to support icon creation.
2026-01-12 21:21:11 +00:00
google-labs-jules[bot] 1f47e161d4 Refactor Video Card and Modal layout to move view counts and use icons.
- Moved view count and comments to a new bottom engagement section in `VideoCard.js`.
- Replaced text labels with Eye and Message SVG icons in `VideoCard.js`.
- Updated `video-modal.html` to include an Eye icon for the view count.
- Refactored `VideoModal.js` to update only the text node for view counts, preserving the icon.
- Removed "views" text suffix in favor of a cleaner numeric display.
2026-01-12 21:01:47 +00:00
google-labs-jules[bot] 868639cbf2 Refactor VideoCard layout to move view/discussion counts to bottom
- Moved view count from author metadata section to a new bottom "Engagement Section".
- Replaced "views" and "notes" text with SVG icons (Eye and Message Circle).
- Grouped views and comments side-by-side in the new section.
- Preserved existing data attributes for view/discussion counters.
- Cleaned up author metadata to only show Time and Edited status.
2026-01-12 20:32:22 +00:00
thePR0M3TH3AN 3e200876da Merge pull request #1193 from PR0M3TH3AN/feature/r2-wizard-setup-4403533772192504014
R2 Configuration Wizard & Verification
2026-01-12 15:18:59 -05:00
google-labs-jules[bot] a0ef54434a Implement 2-step wizard for R2 credentials with public access verification
- Added `deleteObject` to `js/storage/r2-s3.js` for cleanup.
- Added `verifyPublicAccess` to `js/services/r2Service.js` to test bucket configuration.
- Refactored `components/upload-modal.html` to support wizard steps.
- Updated `js/ui/components/UploadModal.js` to manage wizard state and trigger verification.
2026-01-12 20:16:30 +00:00
thePR0M3TH3AN 31c2d8fae2 Merge pull request #1192 from PR0M3TH3AN/update-r2-upload-minimal-permissions-9294161573510174314
Update R2 upload to use minimal permissions and client-side hashing
2026-01-12 14:53:23 -05:00
google-labs-jules[bot] 4345c8c7dd Fix export error in R2 storage module and refine upload workflow
- Exported `ensureBucketExists` from `js/storage/r2-s3.js` to resolve a module import error in `js/services/r2Service.js`.
- Verified the fix via code read.
- Confirmed syntax correctness of `r2-s3.js` modifications.
2026-01-12 19:49:48 +00:00
google-labs-jules[bot] f45f027a56 Refine R2 upload UX with bucket auto-creation attempt and clearer guidance
- Updated `R2Service` to attempt bucket creation via S3 API (`ensureBucketExists`) before upload. This improves the UX for users with Admin keys or custom domains while gracefully failing (with a warning) for users with minimal permissions.
- Modified `UploadModal` helper text to explicitly instruct users about enabling "Public Access" in the Cloudflare dashboard for new buckets.
- Updated `js/r2.js` to ensure the "Public Bucket URL" is always sanitized to include the `https://` protocol, fixing potential webseed generation issues.
2026-01-12 19:40:07 +00:00
google-labs-jules[bot] 7dc2977cf2 Update Cloudflare R2 upload to use minimal permissions and add progress bar
- Removed requirement for Cloudflare API Token, Zone ID, and Worker Token from Upload Modal and R2Service.
- Simplified R2 configuration to require only Account ID, S3 Access Keys, and a user-provided Public Bucket URL.
- Added a read-only field in Upload Modal displaying the derived target bucket name (npub-based) for user reference.
- Implemented client-side torrent info hash calculation using `WebTorrent` (via `js/utils/torrentHash.js`) to generate magnet links before upload.
- Added a visual upload progress bar to the Upload Modal.
- Updated `js/r2.js` to ensure the Public Bucket URL always includes the `https://` protocol.
2026-01-12 18:53:22 +00:00
thePR0M3TH3AN 01d4335fda Merge pull request #1191 from PR0M3TH3AN/fix-edited-video-date-reset-3684025320852324602
Fix published date reset on video edit and add edited indicators
2026-01-12 13:32:25 -05:00
google-labs-jules[bot] ad0a9113f6 Improve edited video indicators and preserve publish date
- Update `VideoCard.js` to display "• Edited" instead of "(edited)" for better visual consistency.
- Update `app.js` to format the modal's "Last Edited" timestamp as "Last edited: [Absolute] ([Relative])".
- Ensure `EditModal.js` correctly backfills and preserves `published_at` to prevent date resets.
- Verify edit logic with existing tests.
2026-01-12 18:13:57 +00:00
google-labs-jules[bot] 782b5fe0b7 Fix: prevent published date reset when editing videos and show edited status
Prioritize `published_at` metadata over event `created_at` timestamp.
Backfill `published_at` during edit if missing to preserve original date.
Add "(edited)" label to video cards for modified content.
Display "Last Edited: [Date]" on video player modal.
2026-01-12 15:52:24 +00:00
google-labs-jules[bot] 1d3c827f62 Fix: prevent published date reset when editing videos and show edited status
Prioritize `published_at` metadata over event `created_at` timestamp.
Backfill `published_at` during edit if missing to preserve original date.
Add "(edited)" label to video cards for modified content.
Display "Last Edited: [Date]" on video player modal.
2026-01-12 15:35:23 +00:00
thePR0M3TH3AN 1ef8459fd6 Merge pull request #1190 from PR0M3TH3AN/fix/subscriptions-spinner-loop-7605323922858832929
Fix infinite spinner loop on Subscriptions tab updates
2026-01-12 09:00:15 -05:00
google-labs-jules[bot] fa23ffb53c fix(subscriptions): prevent spinner loop on background refresh 2026-01-12 13:52:14 +00:00
thePR0M3TH3AN 0bcee151cb Merge pull request #1189 from PR0M3TH3AN/fix-subscription-spinner-hang-134888602482071504
Fix infinite subscription loading spinner
2026-01-11 19:11:39 -05:00
google-labs-jules[bot] 8a61acb09c Add debug logging to trace subscription loading hang 2026-01-12 00:10:04 +00:00
google-labs-jules[bot] fdf8815792 Fix subscriptions loading hang by removing undefined constant and cleaning up debug logs 2026-01-11 23:42:16 +00:00
google-labs-jules[bot] e63ca6eee3 Fix infinite spinner in Subscriptions tab by correcting method context in NostrService and improving error resilience. 2026-01-11 22:13:36 +00:00
thePR0M3TH3AN 0fc78fefb8 Merge pull request #1187 from PR0M3TH3AN/fix-anon-moderation-threshold-5216028150136921299
Fix anonymous users being blocked by a single trusted mute
2026-01-11 16:44:28 -05:00
google-labs-jules[bot] c1779fba78 fix(moderation): enforce mute threshold for anonymous users 2026-01-11 21:43:02 +00:00
thePR0M3TH3AN c4618c307b Merge pull request #1186 from PR0M3TH3AN/update-trusted-mute-hide-threshold-default-3010307860608800344
Increase default trusted mute hide threshold to 20
2026-01-11 16:31:27 -05:00
google-labs-jules[bot] 85883aa5c6 feat: increase default trusted mute hide threshold to 20
- Updated `DEFAULT_TRUSTED_MUTE_HIDE_THRESHOLD` in `config/instance-config.js` from 1 to 20.
- Updated `tests/moderation/trusted-mute-lists.test.mjs` to explicitly override the threshold to 1 for tests verifying the hide mechanism.
- Updated documentation (`docs/moderation/*.md`, `docs/instance-config.md`, `content/community-guidelines.md`) to reflect the new default and upstream examples.
- Verified that existing blurring logic in `js/feedEngine/stages.js` and `js/ui/components/VideoCard.js` handles the intermediate state (1-19 mutes) correctly.
2026-01-11 21:30:23 +00:00
thePR0M3TH3AN 2a9bf7f85b Merge pull request #1185 from PR0M3TH3AN/user-blocks-priority-1385686224757387826
Prioritize tagged user block lists over generic mute lists
2026-01-11 16:09:26 -05:00
google-labs-jules[bot] 124a2330ad Update block list selection to prioritize tagged events
- Prioritize Kind 10000 events with `d=user-blocks` over plain mute lists in `loadBlocks`.
- Add `isTaggedBlockListEvent` helper for differentiation.
- Add regression test case to `tests/user-blocks.test.mjs` verifying that tagged lists override newer plain lists.
2026-01-11 21:08:01 +00:00
thePR0M3TH3AN 5341c792e0 Merge pull request #1184 from PR0M3TH3AN/fix-tag-only-blocklists-8619418630809863442
Fix: Handle tag-only Kind 10000 mute lists in UserBlockListManager
2026-01-11 15:08:07 -05:00
google-labs-jules[bot] 009eb4c6e2 Fix: Handle tag-only Kind 10000 mute lists in UserBlockListManager
This commit modifies `js/userBlocks.js` to correctly parse Kind 10000 events that have empty content but populated `p` tags (used by clients like Primal). Previously, these events were treated as empty block lists, causing the user's block list to be cleared.

Changes:
- Refactored `loadBlocks` to check for empty content and fallback to extracting pubkeys from tags using `extractPubkeysFromTags`.
- Updated `loadBlocks` to use a sequential promise strategy (`Promise.any` then `Promise.allSettled`) to ensure eventual consistency without race conditions or double-processing.
- Added extensive tests in `tests/user-blocks.test.mjs` covering tag-only lists, whitespace content, and concurrency scenarios.
2026-01-11 20:01:39 +00:00
thePR0M3TH3AN 09775da7e9 Merge pull request #1183 from PR0M3TH3AN/fix-block-list-merge-16425322602247951932
Fix block list merging and update trust thresholds
2026-01-11 14:04:24 -05:00
google-labs-jules[bot] 146719a32b Fix block/mute list conflict and update trust thresholds
- Refactored `js/userBlocks.js` to merge Kind 10000 and Kind 30002 events on load, preventing overwritten mutes.
- Updated `js/constants.js` to set `DEFAULT_TRUSTED_MUTE_HIDE_THRESHOLD` to 4, enabling soft-hide (blur) behavior for lower mute counts.
2026-01-11 18:58:55 +00:00
thePR0M3TH3AN f965090bc2 Merge pull request #1182 from PR0M3TH3AN/codex/update-userblocks.js-decoding-and-logging
Improve npub decoding fallback and seed logging
2026-01-11 13:09:10 -05:00
thePR0M3TH3AN 48b481f284 Improve npub decoding and seed logging 2026-01-11 13:06:15 -05:00
thePR0M3TH3AN eca42bfcde Merge pull request #1181 from PR0M3TH3AN/codex/update-userblocks.js-decode-methods
Improve npub decoding for user block seeding
2026-01-11 09:42:36 -05:00
thePR0M3TH3AN c2eb2cdc19 Improve npub decoding in user blocks 2026-01-11 09:40:41 -05:00
thePR0M3TH3AN b5fcdd9d95 Merge pull request #1180 from PR0M3TH3AN/codex/update-access-control-logic-and-ui
Allow overlapping whitelist and blacklist entries; surface overlaps in admin UI
2026-01-11 09:36:02 -05:00
thePR0M3TH3AN 40490afac2 Allow overlapping admin lists 2026-01-11 09:33:06 -05:00
thePR0M3TH3AN d1fdb5388c Merge pull request #1179 from PR0M3TH3AN/codex/update-access-control-logic-and-documentation
Enforce blacklist precedence over whitelist in access control
2026-01-11 09:19:09 -05:00
thePR0M3TH3AN 1211f1a25d Adjust blacklist precedence for access control 2026-01-11 09:14:35 -05:00
thePR0M3TH3AN be3a42ef45 Merge pull request #1178 from PR0M3TH3AN/codex/add-session-actor-lifecycle-hook-and-update-ui
Sync session actor blacklist on lifecycle events
2026-01-11 09:11:48 -05:00
thePR0M3TH3AN 83a9fdb097 Track regenerated Tailwind CSS 2026-01-11 09:10:50 -05:00
thePR0M3TH3AN db2b08378d Add session actor hook for moderation sync 2026-01-11 08:50:22 -05:00
thePR0M3TH3AN eb4cb84909 Merge pull request #1176 from PR0M3TH3AN/codex/add-access-control-blacklist-change-handler
Refresh guest feeds on admin blacklist changes
2026-01-10 20:38:10 -05:00
thePR0M3TH3AN 4a4ffa45b4 Refresh feeds on admin blacklist changes for guests 2026-01-10 20:37:11 -05:00
thePR0M3TH3AN e5d2d923de Merge pull request #1175 from PR0M3TH3AN/codex/add-reconciliation-path-for-admin-blacklist
Add session actor blacklist reconciliation
2026-01-10 20:34:16 -05:00
thePR0M3TH3AN faaad9c724 Add session actor blacklist reconciliation 2026-01-10 20:33:15 -05:00
thePR0M3TH3AN 0b8d45ed76 Merge pull request #1174 from PR0M3TH3AN/codex/session-actor-moderation-13643754943913031156
Enable session-local moderation for anonymous users
2026-01-10 17:43:11 -05:00
google-labs-jules[bot] 7c7ac3e9f2 Enable session-local moderation for anonymous users
- Update `ModerationService` to recognize session actors and load mutes from local storage.
- Update `UserBlockListManager` to persist blocks locally for session actors without relay publication.
- Ensure `submitReport` falls back to the session actor's signer.
- Add `resolveStorage` helper to safely access localStorage.
2026-01-10 22:41:18 +00:00