Commit Graph
30 Commits
Author SHA1 Message Date
thePR0M3TH3AN 18e08bf2cb feat: refine trust controls and harden BitLogin 2026-07-25 22:25:50 -04:00
google-labs-jules[bot]andPR0M3TH3AN 0ae813ea66 perf(feed): optimize moderation stage with batch author lookups (perf-optimization-agent)
- Implement `getModerationInfoForAuthors` in `ModerationService` for batching.
- Extract utility functions to `js/services/moderationUtils.js` to reduce `ModerationService` size.
- Update `createModerationStage` to use batch lookup, reducing sequential overhead.
- Benchmarks show ~50% improvement (454ms -> 227ms) for 5000 items.
- All unit tests pass.
- Task log: `docs/agents/task-logs/weekly/2026-02-22_01-25-01_perf-optimization-agent_completed.md`

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-22 01:26:39 +00:00
google-labs-jules[bot]andPR0M3TH3AN e62cb15c0e perf: parallelize timestamp resolution in feed engine
Replaces sequential await loop with Promise.any to resolve video timestamps in parallel.
This significantly reduces latency when multiple resolvers are present, especially if the first one is slow.

- Uses Promise.any to take the first valid finite timestamp.
- Wraps resolvers to reject on invalid values.
- Preserves error logging for genuine resolver errors.
- Benchmarks showed improvement from ~100ms to ~11ms in simulated slow scenarios.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-11 12:38:20 +00:00
google-labs-jules[bot]andPR0M3TH3AN 6f49a05302 feat(perf): Optimize feed tag extraction with caching
- Extracted `getVideoTags` to `js/feedEngine/utils.js` with `WeakMap` caching.
- Updated `js/feedEngine/stages.js` and `js/feedEngine/kidsScoring.js` to use the cached utility.
- Removed redundant `collectVideoTags` and `normalizeTagSetFromVideo` functions.
- Added `benchmarks/feed_tags.mjs` to measure performance (approx 25x speedup in tight loops).
- Updated `hasDisinterestedTag` in `utils.js` to use the new utility.

This reduces object allocation and repeated string normalization during feed processing.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 19:44:30 +00:00
google-labs-jules[bot]andPR0M3TH3AN f954bf3d89 Optimize feed engine normalization with array marking
- Introduced `NORMALIZED_ARRAY_MARKER` in `js/feedEngine/utils.js` to tag arrays that are already normalized.
- Updated `normalizeItems` in `js/feedEngine/engine.js` to skip O(N) verification if the input array is marked.
- Updated built-in stages and sorters to mark their output arrays using `markAsNormalized` when they safely construct new arrays from normalized inputs.
- This avoids redundant O(N) scans after each stage, improving pipeline performance by ~10% end-to-end and eliminating overhead for trusted stages.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 17:00:52 +00:00
thePR0M3TH3AN fd3f9e723a Split subscriptions/hashtag readiness and expose unavailable preference states 2026-02-08 14:10:39 -05:00
thePR0M3TH3AN 4abe9f3d1e Add disinterest tag filter stage 2026-01-22 19:10:27 -05:00
thePR0M3TH3AN c3aa42f39c Add explore feed pipeline 2026-01-22 19:04:50 -05:00
thePR0M3TH3AN 8516382ece Update tag preference filtering 2026-01-18 14:05:47 -05:00
thePR0M3TH3AN 7a29a0b807 Consolidate tag preference filtering stage 2026-01-18 13:38:34 -05:00
thePR0M3TH3AN 0ac64867da Add shared hashtag normalization helper 2026-01-18 13:35:34 -05:00
thePR0M3TH3AN 3a3339a57a Add per-category trusted mute thresholds 2026-01-16 10:49:32 -05:00
google-labs-jules[bot] 7d274bc331 feat: incorporate tag preferences into blacklist filter stage
- Implements `hasDisinterestedTag` helper in `js/feedEngine/utils.js` to check for disinterested tags in both raw Nostr tags and NIP-71 metadata.
- Updates `createBlacklistFilterStage` in `js/feedEngine/stages.js` to filter out videos matching `context.runtime.tagPreferences` disinterests.
- Ensures existing blacklist logic remains undisturbed.
- Verified with new unit test `tests/feed-engine-tag-pref.test.mjs` and existing feed engine tests.
2026-01-08 00:52:57 +00:00
thePR0M3TH3AN 9dfe7ef20e Fix viewer mute blur regression and update modal overrides 2025-10-26 16:06:40 -04:00
thePR0M3TH3AN b744524521 Hydrate feed timestamps before sorting 2025-10-26 12:05:03 -04:00
thePR0M3TH3AN 91404af8ad Make moderation thresholds resolve at runtime 2025-10-26 10:19:34 -04:00
thePR0M3TH3AN ad01cf852f Propagate tag preferences through feed runtimes 2025-10-25 17:38:31 -04:00
thePR0M3TH3AN 25f190aa90 Extend trusted mute moderation controls 2025-10-25 17:03:29 -04:00
thePR0M3TH3AN fd54cc72fe Refine trusted mute moderation badge 2025-10-25 16:39:15 -04:00
thePR0M3TH3AN 0b34a59516 Blur muted and hidden thumbnails 2025-10-25 16:08:02 -04:00
thePR0M3TH3AN ca56590ce1 Remove admin whitelist hide bypass 2025-10-25 15:04:04 -04:00
thePR0M3TH3AN c575f48a81 Align moderation defaults with instance config 2025-10-24 21:36:10 -04:00
thePR0M3TH3AN 37f291529e Add trusted hide gating to moderation stage 2025-10-20 19:35:48 -04:00
thePR0M3TH3AN dfbda08ec5 Ensure admin whitelist respects moderation thresholds 2025-10-20 17:17:46 -04:00
thePR0M3TH3AN e442b9d31c Add moderation threshold logging 2025-10-20 11:51:53 -04:00
thePR0M3TH3AN 8492091780 Track trusted mute lists and surface UI signals 2025-10-17 22:09:02 -04:00
thePR0M3TH3AN 397ed7c8ce Harden moderation trust handling 2025-10-17 16:48:07 -04:00
thePR0M3TH3AN 0ec7c5e76c Add moderation overrides to video cards 2025-10-17 16:24:42 -04:00
thePR0M3TH3AN 071a8a3671 Add moderation service and reporting flow 2025-10-17 15:33:09 -04:00
thePR0M3TH3AN f81c97e5a8 feat: introduce feed engine module 2025-10-04 16:21:23 -04:00