Commit Graph
436 Commits
Author SHA1 Message Date
google-labs-jules[bot] ac4d087f3e Remove legacy Direct Message privacy UI
Removes the "Direct message privacy" section from the profile modal's Messages tab, as these settings are now managed via the AppShell (gear icon).

- Removed privacy section HTML from `components/profile-modal.html`.
- Updated `js/ui/profileModalController.js` to remove legacy DOM references and event listeners.
- Preserved `handleReadReceiptsToggle` and `handleTypingIndicatorsToggle` methods for AppShell integration.
- Updated `syncDmPrivacySettingsUi` to be a no-op to prevent errors in existing call sites.
2026-01-20 02:46:04 +00:00
thePR0M3TH3AN a126bc2d0e Merge pull request #1421 from PR0M3TH3AN/dm-ui-refactor-privacy-zaps-2998709173100552567
Refactor DM UI: Move privacy settings, unify Zaps interface, and adjust layout
2026-01-19 21:05:49 -05:00
google-labs-jules[bot] 07abc8516f Refactor DM UI: Move privacy settings, unify Zaps interface, and adjust layout 2026-01-20 02:04:10 +00:00
google-labs-jules[bot] 383a77d6da feat: move moderation and link preview settings to new Safety tab in Profile modal
- Added 'Safety' tab to `components/profile-modal.html`, positioned before 'Blocked'
- Moved `profileModerationSettings` and `profileLinkPreviewSettings` panels to the new tab
- Updated `ProfileModalController.js` to manage the new tab and initialize settings when selected
- Renamed 'Safety & Moderation' panel header to 'Safety'
2026-01-20 01:58:02 +00:00
google-labs-jules[bot] 941a148b13 Enforce consistent avatar size in DM conversation list
Explicitly set `size: "md"` in ContactRow and added `min-width` / `min-height` to avatar CSS classes to prevent flexbox squashing. This ensures consistent avatar rendering in the conversations column.
2026-01-20 01:21:47 +00:00
thePR0M3TH3AN f4f6d7f4de Revert "update"
This reverts commit 0e306d851e.
2026-01-19 19:48:35 -05:00
thePR0M3TH3AN 0e306d851e update 2026-01-19 19:40:28 -05:00
google-labs-jules[bot] d8ab54417d feat(ui): overhaul profile modal and DM conversation list
- Maximized profile modal to be full-screen for better content visibility.
- Cleaned up DM conversation list by removing message previews and timestamps.
- Updated DM badges and outgoing messages to use theme accent color instead of generic blue.
- Refactored DM composer to move privacy and zap toggles into a "More" menu.
2026-01-19 20:57:57 +00:00
thePR0M3TH3AN d45d380e40 Improve DM unread indicators and profile modal layout 2026-01-19 15:09:35 -05:00
thePR0M3TH3AN 225c6a1674 Add unread DM badge to profile button 2026-01-19 14:57:10 -05:00
thePR0M3TH3AN ce7077da2d Add mark-read actions to DM UI 2026-01-19 14:48:05 -05:00
thePR0M3TH3AN e569801520 Add DM app shell mapping for profile modal 2026-01-19 14:40:21 -05:00
thePR0M3TH3AN 1c3645ff80 Replace profile messages pane with DM app shell mount 2026-01-19 14:21:39 -05:00
thePR0M3TH3AN 6116b6a7db Add relay health panel and telemetry opt-in 2026-01-19 14:03:15 -05:00
thePR0M3TH3AN 1fbfee5915 Add DM decrypt limits and caches 2026-01-19 13:51:48 -05:00
thePR0M3TH3AN 3c75ac8c3f Add DM read receipts and typing indicators 2026-01-19 13:29:40 -05:00
thePR0M3TH3AN 0eacbd1063 Add cached link previews with privacy toggle 2026-01-19 13:06:50 -05:00
thePR0M3TH3AN 9ea9fe2f08 Add DM attachment upload and preview flow 2026-01-19 12:51:34 -05:00
thePR0M3TH3AN d082df8e41 Add DM zap composer and zap request support 2026-01-19 11:29:55 -05:00
thePR0M3TH3AN 924ed9b482 Add DM privacy indicators and relay hint publishing 2026-01-19 10:56:54 -05:00
thePR0M3TH3AN 51b550adaa Improve DM relay selection fallback handling 2026-01-19 10:31:13 -05:00
thePR0M3TH3AN 4566c96330 Add NIP-17 DM delivery option 2026-01-19 10:05:00 -05:00
thePR0M3TH3AN d5b4909be0 Merge pull request #1384 from PR0M3TH3AN/codex/extend-profile-modal-logic-for-actions
Profile modal: add DM recipient context, relay hints & actions
2026-01-19 09:22:53 -05:00
thePR0M3TH3AN eb52fbdf11 Add DM recipient handling in profile modal 2026-01-19 09:22:35 -05:00
thePR0M3TH3AN e9ce138e71 Merge pull request #1372 from PR0M3TH3AN/ai/schema-validate-20250222-1045837655123295994
chore(ai): event schema validation tool + fixes
2026-01-19 09:20:48 -05:00
thePR0M3TH3AN 56f2c1807c Implement worker-based NIP-04 DM sending 2026-01-19 08:39:43 -05:00
thePR0M3TH3AN ce396a1971 Add signing adapters and DM composer hook 2026-01-19 08:22:46 -05:00
google-labs-jules[bot] 4d2bb8bf3d chore(ai): event schema validation tool + fixes
- Added `scripts/agent/validate-events.mjs` to validate event builders against schemas.
- Fixed `NOTE_TYPES.REPOST` schema content format (json instead of empty).
- Added `NOTE_TYPES.MUTE_LIST` and `buildMuteListEvent`.
- Added `buildProfileMetadataEvent` to standardise Kind 0 creation.
- Updated `js/ui/profileModalController.js` to use `buildProfileMetadataEvent`.
- Updated `js/userBlocks.js` to use `buildMuteListEvent` for publishing mute list snapshots.
- Updated `docs/nostr-event-schemas.md` with new schemas and builders.
2026-01-19 05:47:37 +00:00
thePR0M3TH3AN f9c351e157 Add notification center filters and grouping 2026-01-18 23:51:52 -05:00
thePR0M3TH3AN c70e17b9d0 Add DM controls to profile modal 2026-01-18 23:44:54 -05:00
thePR0M3TH3AN 9547a5b0e8 Add DM composer controls and status placeholders 2026-01-18 23:38:40 -05:00
thePR0M3TH3AN 11853037ec Add DM UI shell components 2026-01-18 23:27:29 -05:00
google-labs-jules[bot] 4ca984f673 refactor(ai): extract TagPreferenceMenu from js/app.js (agent)
Moved tag preference menu logic into `js/ui/tagPreferenceMenuController.js`.
Kept `js/app.js` interface intact via thin wrappers.
Added unit tests covering new controller.
Followed AGENTS.md refactor checklist.
2026-01-19 03:43:25 +00:00
google-labs-jules[bot] 5c65c44db3 feat: Remove hashtag pills from For You page
- Updated `For You` page to rely on feed engine filtering for tag preferences.
- Removed the `recentVideoTags` HTML element from `views/for-you.html`.
- Updated `js/app.js` and `js/ui/videoListViewController.js` to optionally skip finding the `recentVideoTags` element.
- Updated `loadForYouVideos` in `js/app.js` to explicitly skip `recentVideoTags`.
- Confirmed feed logic via `tests/feed-engine/tag-preference-filter.test.mjs`.
- Verified UI changes via Playwright.
2026-01-19 02:33:17 +00:00
thePR0M3TH3AN 1a715f9a45 Merge pull request #1340 from PR0M3TH3AN/ai/lint-20250222-8542702362424668840
chore(ai): apply formatting/lint autofixes
2026-01-18 20:42:55 -05:00
thePR0M3TH3AN d7116b08a6 Add for-you link resolution in app chrome 2026-01-18 20:10:33 -05:00
thePR0M3TH3AN 1e547bc49c Add direct message composer to profile modal 2026-01-18 19:48:43 -05:00
google-labs-jules[bot] 43bbc40c57 chore(ai): apply formatting/lint autofixes
- Fixed inline style violations in `js/ui/components/EventDetailsModal.js` and `js/ui/components/SimilarContentCard.js` by converting to Tailwind classes.
- Fixed Tailwind token violations in `components/login-modal.html`.
- Fixed Tailwind color violations in `js/ui/components/EventDetailsModal.js`.
- Formatted `README.md`.
- Updated CSS formatting in `css/tailwind.source.css`.
2026-01-18 20:58:09 +00:00
thePR0M3TH3AN 61c2b56838 Merge pull request #1336 from PR0M3TH3AN/edit-profile-modal-17464840854466078070
Add Edit Profile feature to Profile Modal
2026-01-18 14:39:27 -05:00
thePR0M3TH3AN 29b18103ac Add for-you feed telemetry events 2026-01-18 14:37:01 -05:00
google-labs-jules[bot] 4b6bb206ab Add Edit Profile feature to Profile Modal
- Added "Edit Profile" button to active profile card in profile modal
- Created `profilePaneEdit` with form fields for profile metadata (Kind 0)
- Implemented `populateEditPane`, `handleEditProfile`, `handleSaveProfile` in `ProfileModalController`
- Added file upload support for profile/banner images using `r2Service`
- Injected `r2Service` into `ProfileModalController` via `ApplicationBootstrap`
- Verified functionality with manual check of logic and structure
2026-01-18 19:36:47 +00:00
thePR0M3TH3AN dba666b751 Add for-you feed pipeline support 2026-01-18 14:02:35 -05:00
thePR0M3TH3AN 0ac64867da Add shared hashtag normalization helper 2026-01-18 13:35:34 -05:00
google-labs-jules[bot] 69e5a45af1 fix(ai): prevent race condition in login modal initialization (agent)
Removes a premature call to `initializeLoginModalController` in `ApplicationBootstrap` which was attempting to initialize the login modal before the DOM was fully hydrated, causing a "modal container not found" warning during startup. The modal is already correctly initialized later in `js/index.js` after markup loading completes.
2026-01-18 18:21:41 +00:00
thePR0M3TH3AN 52d2488d17 Refactor nostr signer access 2026-01-18 09:15:18 -05:00
google-labs-jules[bot] 45b20bb58e refactor(ai): extract updateTorrentStatus from js/app.js (agent)
Moved torrent status update logic to `js/ui/torrentStatusController.js` to improve separation of concerns as per `AGENTS.md`. The controller accepts a `getVideoModal` accessor and an `onRemovePoster` callback to decouple it from direct `videoModal` or `Application` dependencies. Added unit tests in `tests/ui/torrentStatusController.test.mjs`.
2026-01-18 03:11:25 +00:00
google-labs-jules[bot] b83f5009e4 I have updated the zap dialog to display the "Done" button on success.
I modified `js/channelProfile.js` to implement the logic that toggles the "Send" button to "Done" and closes the dialog when clicked. Additionally, I updated `js/ui/zapController.js` to prevent the form from resetting entirely on success, which preserves receipts; instead, it now manually clears the comment and sets the completed state.

These changes ensure consistent "Done" button behavior across both the Channel Profile and Video Modal zap interfaces. I also included minor `package.json` updates for linting dependencies.
2026-01-18 01:58:56 +00:00
thePR0M3TH3AN 827e99be6e Merge pull request #1272 from PR0M3TH3AN/nip46-ui-refactor-6379694737496943219
Refactor NIP-46 Login UI
2026-01-16 16:15:08 -05:00
google-labs-jules[bot] cf4c9171bb feat: reconstruct raw content in Event Details modal fallback
- Updated `EventDetailsModal` to handle cases where fetching the raw event fails or returns null.
- Implemented `getRawEvent` logic to reconstruct the `content` JSON string from available video metadata (title, thumbnail, description, etc.) if the raw content is missing.
- Ensures the user can inspect key metadata (like thumbnail URLs) even when the original signed event payload is not available in memory or via network fetch.
- Explicitly marks the signature as "unavailable (cached)" in fallback scenarios.
2026-01-16 20:57:39 +00:00
google-labs-jules[bot] a82c41edb9 feat: reconstruct raw content in Event Details modal fallback
- Updated `EventDetailsModal` to handle cases where fetching the raw event fails or returns null.
- Implemented `getRawEvent` logic to reconstruct the `content` JSON string from available video metadata (title, thumbnail, description, etc.) if the raw content is missing.
- Ensures the user can inspect key metadata (like thumbnail URLs) even when the original signed event payload is not available in memory or via network fetch.
- Explicitly marks the signature as "unavailable (cached)" in fallback scenarios.
2026-01-16 19:41:15 +00:00