Commit Graph
3425 Commits
Author SHA1 Message Date
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 34d57c2072 Merge pull request #1472 from PR0M3TH3AN/ai/load-test-20260121-11214410427964689271
feat: implement load testing script
2026-01-21 14:29:28 -05:00
google-labs-jules[bot] 6ce9e9b8a8 feat: implement load testing script
- Adds scripts/agent/load-test.mjs to simulate N clients connecting to a relay.
- Publishes video and view events at a configurable rate.
- Measures write latency (Client -> Relay -> OK).
- Monitors local relay process (CPU/Mem) if applicable.
- Generates JSON report in artifacts/load-report-YYYYMMDD.json.
- Includes guardrails against public relays.

Test Run Summary (20 clients, 10s):
- Total Requests: 377
- Successful: 377
- Throughput: 37.7 req/s
- Avg Latency: 34.5ms
- P95 Latency: 61.0ms
2026-01-21 19:14:04 +00:00
thePR0M3TH3AN bf86a98dfa Merge pull request #1471 from PR0M3TH3AN/ai/debug-frontend-20250222-248801311659160913
fix(ai): frontend console error — remove broken trackers (agent)
2026-01-21 14:08:19 -05:00
thePR0M3TH3AN c7c9a2fc1e Merge pull request #1470 from PR0M3TH3AN/mobile-search-top-position-11370554775373373673
Move mobile search bar to top
2026-01-21 14:06:32 -05:00
google-labs-jules[bot] e2b05314e2 fix(ai): frontend console error — remove broken trackers (agent) 2026-01-21 18:38:53 +00:00
google-labs-jules[bot] e68e5cd1c7 fix(ui): move mobile search bar to top to avoid keyboard occlusion
Moves the `#mobileSearchContainer` from the bottom-right corner to the top of the viewport (`top-4`). This ensures that the search input remains visible when the virtual keyboard is active on mobile devices, preventing it from being covered.

- Updated `index.html` to change classes from `bottom-6 right-6 origin-bottom-right` to `top-4 left-4 right-4 origin-top`.
- Removed `w-[calc(...)]` in favor of `left-4 right-4` for simpler full-width behavior with margins.
- Ran `npm run build:css` to update generated CSS.
2026-01-21 18:01:29 +00:00
thePR0M3TH3AN 0d400a8bc5 Merge pull request #1468 from PR0M3TH3AN/for-you-info-icon-11937089498630905564
Add info icon to For You feed explaining filter logic
2026-01-21 12:53:16 -05:00
google-labs-jules[bot] bae4020682 feat: add info icon with filter logic popover to For You feed
Adds a clickable info icon next to the "For You" title that displays a popover explaining the feed's filtering logic ("Most Recent Video - Disinterests Tags - Watch History + Interests Tags"). Implemented as a reusable helper `attachFeedInfoPopover` in `js/ui/components/FeedInfoPopover.js` to support future use on other feed pages. Updated `views/for-you.html` and `js/forYouView.js` to integrate the new component. Verified with Playwright.
2026-01-21 17:48:01 +00:00
thePR0M3TH3AN 933841bb0e Merge pull request #1467 from PR0M3TH3AN/ai/deps-scan-v1.0.0-10388548170040991196
chore(ai): dependency scan artifacts
2026-01-21 12:25:37 -05:00
google-labs-jules[bot] a3720e8170 chore(ai): dependency scan artifacts
- generated `artifacts/npm-audit.json`
- generated `artifacts/npm-outdated.json`
- no safe minor/patch upgrades available (all outdated deps are major or risky)
2026-01-21 17:11:32 +00:00
thePR0M3TH3AN c0f9c35f17 Merge pull request #1466 from PR0M3TH3AN/ai/fuzz-suite-20241022-10922521380267773837
feat(fuzz): add fuzzing suite for schemas, dms, and magnets
2026-01-21 12:02:00 -05:00
thePR0M3TH3AN b7b691d9cc Merge pull request #1465 from PR0M3TH3AN/ai/doc-nostr-client-20231027-549968251283674277
chore(ai): document js/nostr/client.js and nip71.js
2026-01-21 12:01:39 -05:00
thePR0M3TH3AN 95c8546867 Merge pull request #1464 from PR0M3TH3AN/ai/docs-update-YYYYMMDD-18018724603320020372
docs(ai): update quickstart and contributing (agent)
2026-01-21 12:01:12 -05:00
thePR0M3TH3AN d6d7d027cf Merge pull request #1463 from PR0M3TH3AN/ai/lint-issues-report-13993109755926892711
chore(ai): report lint issues
2026-01-21 12:00:50 -05:00
thePR0M3TH3AN aeb30eea23 Merge pull request #1462 from PR0M3TH3AN/ai/reproducers-channel-moderation-test-crash-5934129363749679102
Add minimal reproducer for channel moderation test crash
2026-01-21 12:00:29 -05:00
thePR0M3TH3AN 0873b16d06 Merge pull request #1461 from PR0M3TH3AN/ai/tests-core-coverage-20250302-14976230523453771489
Add unit tests for core modules
2026-01-21 12:00:08 -05:00
thePR0M3TH3AN e157d93080 Merge pull request #1460 from PR0M3TH3AN/ai/onboarding-20250220-2802297987522045215
Developer Onboarding Audit & Fixes
2026-01-21 11:59:44 -05:00
thePR0M3TH3AN a4162bd028 Merge pull request #1459 from PR0M3TH3AN/ai/interop-tests-20260121-16965720185426536661
feat: implement protocol & interop tests with ephemeral keys
2026-01-21 11:59:08 -05:00
thePR0M3TH3AN 528c6500ee Merge pull request #1458 from PR0M3TH3AN/telemetry-aggregation-privacy-12055566479602134867
Telemetry Aggregation with Privacy Preservation
2026-01-21 11:58:40 -05:00
thePR0M3TH3AN 5e7904f848 Merge pull request #1457 from PR0M3TH3AN/ai/schema-validate-20250220-11887219471322967928
chore(ai): event schema validation tool + fixes
2026-01-21 11:58:03 -05:00
google-labs-jules[bot] 3e38916f35 feat(fuzz): add fuzzing suite for schemas, dms, and magnets
- Add `scripts/agent/fuzz-nostr-schemas.mjs` to fuzz event builders and validation
- Add `scripts/agent/fuzz-dm-decryptor.mjs` to fuzz DM unwrapping
- Add `scripts/agent/fuzz-magnet-utils.mjs` to fuzz magnet normalization
- Utilize `scripts/agent/fuzz-lib.mjs` for randomization and reporting
- Verify that `scripts/agent/setup-test-env.js` is imported to polyfill globals
- Output reports to `artifacts/`

No crashes were found during the initial fuzzing run (5000 iterations per target).
2026-01-21 16:34:50 +00:00
google-labs-jules[bot] fb95d5c914 chore(ai): doc js/nostr/client.js and nip71.js (agent) 2026-01-21 15:10:38 +00:00
google-labs-jules[bot] 4b3d7644b3 docs(ai): update quickstart and contributing (agent) 2026-01-21 14:17:33 +00:00
google-labs-jules[bot] 67b5ea3ffb chore(ai): report lint issues 2026-01-21 13:21:18 +00:00
google-labs-jules[bot] d592299dd8 feat: add minimal reproducer for channel moderation test crash
Adds a standalone Node.js script that reproduces the TypeError seen in
`tests/app/channel-profile-moderation.test.mjs`. The crash occurs because
the test harness instantiates `Application` without running the constructor,
leaving `moderationDecorator` undefined.

The reproducer demonstrates this by using `Object.create(Application.prototype)`
and attempting to call `decorateVideoModeration`.
2026-01-21 12:14:21 +00:00
google-labs-jules[bot] c3770828c0 test(ai): add unit tests for nostr, services, and state (agent) 2026-01-21 11:23:58 +00:00
google-labs-jules[bot] 56abf2f9cb docs(ai): improve onboarding steps
- Fix `scripts/check-design-tokens.mjs` to allow a mobile breakpoint.
- Add Dev Container documentation to `CONTRIBUTING.md`.
- Fix missing dependency injection in `tests/helpers/moderation-test-helpers.mjs` to resolve some unit test failures in a fresh environment.
2026-01-21 08:33:45 +00:00
google-labs-jules[bot] 8dc1d0e791 feat(tests): implement interop-test.mjs with ephemeral keys and protocol checks
- Implements `scripts/agent/interop-test.mjs` to verify Nostr protocol compatibility.
- Uses `NostrClient` programmatically with ephemeral keys (no persistence).
- Defines a strict test relay list (`relay.damus.io`, `nos.lol`) to avoid spam.
- Validates Video Post publishing (Kind 30078) using `js/nostrEventSchemas.js` builders.
- Validates View Event publishing (Kind 30079).
- Validates DM encryption and decryption (Kind 4) using `js/dmDecryptor.js`.
- Adheres to AGENTS.md guardrails (no session actor comments).
- Outputs clear pass/fail logs for verification.
2026-01-21 07:14:32 +00:00
google-labs-jules[bot] c59c6149a2 feat(scripts): consolidate telemetry aggregation with PII sanitization 2026-01-21 06:19:17 +00:00
google-labs-jules[bot] 0458f354de chore(ai): event schema validation tool + fixes
- Created scripts/agent/validate-events.mjs to validate event builders against schemas.
- Added schemas and builders for Kind 5 (Deletion) and Kind 4 (Legacy DM) to js/nostrEventSchemas.js.
- Updated js/nostr/client.js to use new builders for Kind 5 and Kind 4 events.
- Updated js/nostr/client.js to use buildVideoPostEvent for video reverts.
- Verified all builders produce valid events.
2026-01-21 05:14:17 +00:00
thePR0M3TH3AN a99a9f3231 Merge pull request #1456 from PR0M3TH3AN/mobile-disclaimer-fullscreen-5969744738226804148
Make disclaimer modal full-screen on mobile
2026-01-20 23:14:44 -05:00
google-labs-jules[bot] a9bd3e1010 feat(ui): make disclaimer modal full-screen on mobile
Refactors the disclaimer modal to use responsive utility classes, forcing full-screen width/height on mobile while preserving the card-based layout on desktop. This matches the behavior of the login modal and works around existing CSS limitations for modal sheets.
2026-01-21 03:55:37 +00:00
thePR0M3TH3AN cef4ea097d Merge pull request #1455 from PR0M3TH3AN/ai/refactor-moderation-decorator-20231027-155324394974753109
refactor(ai): extract ModerationDecorator from js/app.js
2026-01-20 22:39:59 -05:00
google-labs-jules[bot] 8015edf6b3 refactor(ai): extract ModerationDecorator from js/app.js (agent)
Extracts `decorateVideoModeration` and related helper methods from `js/app.js` into a new `js/services/moderationDecorator.js` service. This improves separation of concerns by moving complex moderation logic out of the main application class.

AGENTS.md Checklist:
1. Identify Logic: Extracted `decorateVideoModeration`, `deriveModerationReportType`, `deriveModerationTrustedCount`, `getReporterDisplayName`, `normalizeModerationSettings`, `getActiveModerationThresholds`.
2. Create Controller Method: Created `ModerationDecorator` class with `decorateVideo` method.
3. Create `bitvidApp` Wrapper: Replaced `decorateVideoModeration` in `js/app.js` with a wrapper that delegates to `this.moderationDecorator.decorateVideo`.
4. Wire Up Callbacks: Passed `getProfileCacheEntry` to `ModerationDecorator` constructor.
5. Remove Old Code: Removed extracted methods from `js/app.js`.

Also added unit tests for `ModerationDecorator` and ensured runtime settings updates are propagated.
2026-01-21 03:20:17 +00:00
thePR0M3TH3AN c98f2cd720 Merge pull request #1454 from PR0M3TH3AN/ai/ci-health-20250222-13032356520369458320
chore(ai): CI health fixes (flaky tests)
2026-01-20 21:45:12 -05:00
thePR0M3TH3AN 1741972dd7 Merge branch 'unstable' into ai/ci-health-20250222-13032356520369458320 2026-01-20 21:44:30 -05:00
google-labs-jules[bot] 91e7a7cacc chore(ai): CI health fixes (flaky tests) 2026-01-21 02:42:52 +00:00
thePR0M3TH3AN 6a98c52206 Merge pull request #1453 from PR0M3TH3AN/ai/todo-fix-validate-events-20241026-2239501522645835319
fix(ai): remove stale TODO and optimize validation script (TODO)
2026-01-20 21:39:32 -05:00
thePR0M3TH3AN 1cdf521b9c Merge pull request #1452 from PR0M3TH3AN/login-modal-mobile-fix-5265723642545025467
Login Modal Mobile Layout Fix
2026-01-20 21:38:51 -05:00
google-labs-jules[bot] 6a4ac5120e chore(ai): remove stale TODO and optimize JSON parsing in validation script
- Removed a TODO comment in `scripts/agent/validate-events.mjs` as the functionality was already implemented.
- Optimized the code to avoid redundant `JSON.parse` calls.
- Verified the script passes all validation tests.
- Created `artifacts/issue_telemetry_json.md` to track the larger task of handling JSON logs in telemetry aggregation.
2026-01-21 01:37:04 +00:00
google-labs-jules[bot] a1dc9ccf59 fix(ui): login modal mobile layout and responsiveness 2026-01-21 01:21:50 +00:00
thePR0M3TH3AN f663b6d6a3 Merge pull request #1451 from PR0M3TH3AN/feat/automated-pr-review-4356221545922511656
feat: add automated PR review script with security guardrails
2026-01-20 18:44:46 -05:00
google-labs-jules[bot] c2b0f713e5 feat: add automated PR review script
- Adds `scripts/agent/review-pr.mjs` to automate PR checks (lint, format, test).
- Implements micro-fix logic to auto-commit formatting changes.
- Adds guardrails for sensitive files (security/protocol review).
- Generates a Markdown report with test failure analysis.
2026-01-20 23:29:02 +00:00
thePR0M3TH3AN f2fd3c42d4 Merge pull request #1450 from PR0M3TH3AN/ai/dead-code-20241109-11433272486894929094
chore(ai): remove dead code and fix test deps
2026-01-20 17:28:12 -05:00
google-labs-jules[bot] ecec1a90a1 chore(ai): remove dead code (agent)
Removed unused JS exports and constants identified during dead code sweep:
- `subscribeToDesignSystemChanges` (js/designSystem.js)
- Unused metric getters (js/designSystem/metrics.js)
- `refreshHealthBadges` (js/gridHealth.js)
- `setQueryParam` (js/index.js)
- `ADMIN_INITIAL_WHITELIST`, `ADMIN_INITIAL_BLACKLIST` (js/lists.js)
- `getWatchHistoryV2Enabled` (js/constants.js)

Also added missing `jsdom` devDependency to fix unit test failures.

Verified with `npm run build`, `npm run lint`, and `npm run test:unit`.
2026-01-20 22:27:18 +00:00
thePR0M3TH3AN 79ed9a26b9 Merge pull request #1449 from PR0M3TH3AN/ai/smoke-tests-20260120-406184268025013645
chore(ai): add smoke test script (agent)
2026-01-20 17:24:53 -05:00
google-labs-jules[bot] 4daa41a91b chore(ai): add smoke test script (agent) 2026-01-20 21:32:55 +00:00
thePR0M3TH3AN 5c7cf2b183 Merge pull request #1448 from PR0M3TH3AN/ai/load-test-20260120-1850454190753046613
Add Load Testing Script
2026-01-20 15:33:21 -05:00
thePR0M3TH3AN 27ed68223e Merge pull request #1447 from PR0M3TH3AN/mobile-fullscreen-login-modal-12566307105546717408
Make Login Modal full-screen on mobile
2026-01-20 15:32:52 -05:00