Commit Graph
143 Commits
Author SHA1 Message Date
google-labs-jules[bot]andPR0M3TH3AN 004c0bed83 fix(ci): reduce channelProfile.js size and bound relay concurrency
- Refactored `js/channelProfile.js` to use `pMapSettled` from `js/utils/asyncUtils.js`, fixing both the concurrency issue (P1) and the file size lint failure.
- `pMapSettled` replaces a bulky inline `pMap` wrapper, reducing code volume.
- Ensures `js/channelProfile.js` stays within its grandfathered line count limit (5579 lines).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-17 10:55:28 +00:00
google-labs-jules[bot]andPR0M3TH3AN fe49e18628 perf: bound relay concurrency in channel video fetching
- Replaced unbounded `Promise.allSettled` in `js/channelProfile.js` with `pMap` using `RELAY_BACKGROUND_CONCURRENCY` (3).
- Ensures network stability when users have many relays.
- Audited `/content` docs (upload limits/ports) and confirmed accuracy.
- Generated `daily-perf-report-2026-02-17.md`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-17 10:41:55 +00:00
google-labs-jules[bot]andPR0M3TH3AN fffca30fb6 chore(agents): run innerhtml-migration-agent daily task — migrate js/channelProfile.js
- Replaced 10 instances of `innerHTML` with safe DOM APIs (`createElement`, `replaceChildren`, `textContent`).
- Extracted Zap Panel creation to `createZapPanelContent` helper.
- Extracted Subscribe Button creation logic.
- Updated `scripts/check-innerhtml.mjs` baseline (count reduced by 10).
- Verified via lint, unit tests, and Playwright verification.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 16:58:20 +00:00
google-labs-jules[bot]andPR0M3TH3AN c47392aba6 Refactor numeric constants to centralized module
- Introduce `js/constants.js` with semantic time constants (e.g., `ONE_MINUTE_MS`, `STANDARD_TIMEOUT_MS`) and feature-specific TTLs.
- Export `KIND_MUTE_LIST` from `js/nostrEventSchemas.js` to standardize NIP-51 mute list kind usage.
- Refactor `js/state/cache.js`, `js/nostr/cachePolicies.js`, `js/channelProfile.js`, and various services to use centralized constants instead of hardcoded magic numbers.
- Update `js/nostr/relayConstants.js` to derive values from the shared time constants.
- Replace duplicate definitions of timeouts and retry delays across the codebase.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-11 03:27:26 +00:00
google-labs-jules[bot]andPR0M3TH3AN 67aa8ad2aa Optimize channel profile event lookup with author index
- Replaced `NostrClient.rawEvents` standard Map with `EventsMap`
- Implemented `EventsMap` to maintain an author-based index
- Updated `js/channelProfile.js` to use `getEventsByAuthor` for efficient lookup
- Added unit tests for `EventsMap`
- Added benchmark script verifying ~15x performance improvement (637ms -> 41ms for 1M events)

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-08 00:38:42 +00:00
google-labs-jules[bot]andPR0M3TH3AN 99d217e778 perf: remove dead code in channel profile render loop
Removes the call to `app.persistWatchHistoryMetadataForVideo` in `renderChannelVideosFromList` within `js/channelProfile.js`. This function was identified as a no-op (delegating to a deprecated empty method), adding unnecessary overhead to the rendering loop.

Benchmark results (100M iterations):
- With call: ~1278ms
- Without call: ~88ms
- Improvement: ~14x speedup in the tight loop simulation.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-07 23:20:39 +00:00
thePR0M3TH3AN a196e95127 Centralize relay list subscriptions 2026-01-29 16:32:11 -05:00
google-labs-jules[bot]andPR0M3TH3AN 73541168f7 fix(subscriptions): improve reliability of list loading and button responsiveness
- Implemented optimistic UI updates for the channel subscribe button to improve responsiveness.
- Fixed a race condition in `js/subscriptions.js` and `js/services/hashtagPreferencesService.js` where lists were wiped on refresh due to `profileCache.activePubkey` not being initialized in time. Now using `profileCache.getProfileData(pubkey, ...)` to ensure the correct cache entry is loaded.
- Validated with targeted unit tests.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-26 18:56:34 +00:00
google-labs-jules[bot] ba28ceaf09 feat: add info popovers to feed views
- Added info buttons to Most Recent, Subscriptions, History, Channel Profile, Search, and Explore views
- Attached popovers with descriptions of feed filtration methods
- Used `attachFeedInfoPopover` helper for consistent implementation
- Verified with Playwright script (verified popover visibility and text content)
2026-01-21 20:59:11 +00:00
thePR0M3TH3AN eb52fbdf11 Add DM recipient handling in profile modal 2026-01-19 09:22:35 -05:00
thePR0M3TH3AN cabe0dbe0c Remove channel notify control wiring 2026-01-18 23:03:36 -05:00
thePR0M3TH3AN 06c7cf912a Add subscription toggle helper 2026-01-18 19:40:58 -05:00
thePR0M3TH3AN 6527004c2c Add channel message control handlers 2026-01-18 19:35:00 -05: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 b48edbb055 Refactor inline styles to CSS rules 2026-01-13 21:13:32 -05:00
thePR0M3TH3AN fbc352e460 Fix fallback thumbnail asset paths 2025-11-03 19:15:44 -05:00
thePR0M3TH3AN 98ea36bd93 Add wallet budget enforcement for NWC payments 2025-10-29 06:52:30 -04:00
thePR0M3TH3AN d84e324878 Handle partial zap receipt failures 2025-10-28 05:38:08 -04:00
thePR0M3TH3AN 8879c3a46d Handle zap allowance exhaustion 2025-10-27 21:41:44 -04:00
thePR0M3TH3AN be6162f5cd Reset wallet client after NWC timeouts 2025-10-27 19:56:18 -04:00
thePR0M3TH3AN 3ef44a6651 Hydrate video cards with cached creator identity 2025-10-27 19:03:31 -04:00
thePR0M3TH3AN 0944ecf32a Fix owner checks by reusing selected video details 2025-10-26 19:48:38 -04:00
thePR0M3TH3AN 078c8788b3 Add ensureLoaded helper for subscriptions and align error UX 2025-10-26 14:16:51 -04:00
thePR0M3TH3AN 065dafff88 Add restore-default moderation control 2025-10-26 11:13:37 -04:00
thePR0M3TH3AN 31cb2821e4 Keep moderation actions inline and add hide toggle 2025-10-25 22:32:34 -04:00
thePR0M3TH3AN 2622b401bc Replace bg panel alpha class with overlay token 2025-10-25 22:03:36 -04:00
thePR0M3TH3AN 7e5f9a74fd Merge pull request #912 from PR0M3TH3AN/codex/rename-hide-helpers-to-block
Switch moderation hide flows to block
2025-10-25 21:54:53 -04:00
thePR0M3TH3AN ba6b56dc26 Switch moderation hide flows to block 2025-10-25 21:54:31 -04:00
thePR0M3TH3AN b60a3840ad Merge pull request #911 from PR0M3TH3AN/codex/implement-video-card-management-with-map
Keep channel video cards updated on moderation events
2025-10-25 21:37:24 -04:00
thePR0M3TH3AN b53e5afc22 Track channel video cards to refresh moderation state 2025-10-25 21:37:10 -04:00
thePR0M3TH3AN 0cb5018b76 Merge pull request #910 from PR0M3TH3AN/codex/add-moderation-badge-slot-and-refactor
Keep moderation badges outside hidden card content
2025-10-25 21:28:48 -04:00
thePR0M3TH3AN 489638e882 Refine moderation badge layout 2025-10-25 21:28:30 -04:00
thePR0M3TH3AN fac5ca9d2b Apply moderation stage to channel profile videos 2025-10-25 21:24:45 -04:00
thePR0M3TH3AN 5cc0e136bd Add channel header moderation badge 2025-10-25 20:54:12 -04:00
thePR0M3TH3AN a0c6812e1b Decorate channel videos with moderation helpers 2025-10-25 18:52:38 -04:00
thePR0M3TH3AN 25f190aa90 Extend trusted mute moderation controls 2025-10-25 17:03:29 -04:00
thePR0M3TH3AN 9ed0fae127 refactor: route nostr imports through facades 2025-10-22 22:40:17 -04:00
thePR0M3TH3AN 75ea73b178 Refactor Nostr client imports 2025-10-22 20:55:54 -04:00
thePR0M3TH3AN 23482808b6 refactor: extract nostr toolkit helpers 2025-10-22 10:42:49 -04:00
thePR0M3TH3AN 6994223200 Refresh all video grids after moderation updates 2025-10-20 13:17:00 -04:00
thePR0M3TH3AN ca937418be Show login notification when zap controls clicked while logged out 2025-10-19 14:05:09 -04:00
thePR0M3TH3AN 4b745cc943 Merge pull request #662 from PR0M3TH3AN/codex/fix-notification-for-zap-button-when-not-logged-in
Ensure zap login requirement triggers notification
2025-10-18 21:34:14 -04:00
thePR0M3TH3AN 5071e2dd33 Restore subscribe toggle for logged-out users 2025-10-18 21:30:16 -04:00
thePR0M3TH3AN f1032fac2b Ensure zap login notice always shows 2025-10-18 20:16:25 -04:00
thePR0M3TH3AN 72033a900b Fix zap login notification handling 2025-10-18 20:04:58 -04:00
thePR0M3TH3AN 841f1dd7f5 Ensure zap login prompts use notification status portal 2025-10-18 19:44:01 -04:00
thePR0M3TH3AN a70c5072ea Ensure zap login error banner is always visible 2025-10-18 19:30:02 -04:00
thePR0M3TH3AN ba47173a25 Ensure zap login requirement triggers notification 2025-10-18 19:16:17 -04:00
thePR0M3TH3AN 25d0131c23 Prevent channel zap popover from clearing videos 2025-10-18 15:23:03 -04:00
thePR0M3TH3AN 46403f7191 Fix channel cache hydration after reload 2025-10-18 15:02:51 -04:00