Commit Graph
3482 Commits
Author SHA1 Message Date
thePR0M3TH3AN 054fca8433 Add unit test sharding and timeouts 2026-01-22 09:58:18 -05:00
thePR0M3TH3AN fd3ba76150 Merge pull request #1497 from PR0M3TH3AN/ai/reproducers-collection-20260122-3408857657044020140
Add minimal reproducers for known bugs
2026-01-22 09:28:41 -05:00
thePR0M3TH3AN 6973c85fab Merge pull request #1496 from PR0M3TH3AN/ai/tests-storage-service-20260122-7514653400428629824
test(ai): add unit tests for storageService (agent)
2026-01-22 09:21:24 -05:00
thePR0M3TH3AN a34b1a5529 Merge pull request #1495 from PR0M3TH3AN/chore/deps-prettier-3.8.1-1145782979643383216
chore(ai): bump prettier to 3.8.1 and perform dependency scan
2026-01-22 09:20:22 -05:00
thePR0M3TH3AN 983e9bb0f6 Merge pull request #1494 from PR0M3TH3AN/ai/onboarding-20241026-11313740817798492612
docs(ai): improve onboarding steps
2026-01-22 09:18:55 -05:00
thePR0M3TH3AN 39c47fecea Merge pull request #1493 from PR0M3TH3AN/ai/interop-tests-20250222-7461951037331976125
Add Nostr Protocol Interoperability Tests
2026-01-22 09:17:32 -05:00
thePR0M3TH3AN b076b2b653 Merge pull request #1492 from PR0M3TH3AN/feature/telemetry-aggregation-privacy-12925310958469698001
Telemetry & Error Aggregation (Privacy-Preserving)
2026-01-22 09:15:55 -05:00
thePR0M3TH3AN c8fd481cad Merge pull request #1491 from PR0M3TH3AN/ai/schema-validate-20260116-12457470200817729888
chore(ai): event schema validation tool + fixes
2026-01-22 09:13:51 -05:00
thePR0M3TH3AN c6b3809a51 Merge pull request #1490 from PR0M3TH3AN/mobile-disclaimer-full-screen-2388727646748921541-14989816340875607774
Add Playwright automation aids for disclaimer and modals
2026-01-22 09:12:13 -05:00
google-labs-jules[bot] d3b2c46775 feat: add minimal reproducers for known bugs
- Add `examples/reproducers/popover-bug-repro.spec.ts` for ReferenceError in popover tests.
- Add `examples/reproducers/moderation-bug-repro.spec.ts` for "Show anyway" button visibility.
- Add `examples/reproducers/sidebar-bug-repro.spec.ts` for mobile sidebar layout margin mismatch.
- Add `examples/reproducers/login-modal-bug-repro.spec.ts` for login modal error visibility.
- Include markdown documentation for each reproducer.
2026-01-22 12:41:46 +00:00
google-labs-jules[bot] ebd98dc106 test(ai): add unit tests for storageService (agent) 2026-01-22 11:37:02 +00:00
google-labs-jules[bot] 18e3be5f40 chore(ai): bump prettier to 3.8.1 and perform dependency scan
- Perform `npm audit` and `npm outdated` (artifacts included).
- Update `prettier` to 3.8.1 (safe devDependency upgrade).
- Remove accidentally committed/leftover session file `js/ui/dm/jules_session_4520373547615093905.zip` which caused lint errors.
- Pre-existing lint error in `js/ui/components/VideoCard.js` and test failure in `tests/app/moderation-overrides.test.mjs` were identified and verified as unrelated.
2026-01-22 09:23:52 +00:00
google-labs-jules[bot] f93e5c6173 docs(ai): improve onboarding steps 2026-01-22 08:23:56 +00:00
google-labs-jules[bot] e0757f581f feat: add interoperability test script
- Adds `scripts/agent/interop-test.mjs` to verify protocol compliance.
- Tests Video Post, View Event, and encrypted Direct Message publishing/decryption.
- Uses ephemeral keys and a local relay (`simple-relay.mjs`).
- Polyfills browser environment for `NostrClient` execution in Node.js.
2026-01-22 07:19:21 +00:00
google-labs-jules[bot] 7bfc00105d Implement privacy-preserving telemetry aggregator script
- Update `scripts/telemetry-aggregator.mjs` to dynamically discover `test_unit*.log` files and include `server.log`.
- Enhance error collection to handle both TAP failures and generic JS crashes/errors.
- Implement robust PII sanitization for IPs, emails, hex keys, and local paths.
- Aggregate errors by stack trace fingerprint and generate a Markdown report for triage.
- Ensure the process is opt-in (via manual script execution) and artifacts are local-only.
2026-01-22 06:37:02 +00:00
google-labs-jules[bot] e282cf5a29 chore(ai): event schema validation tool + fixes
- Added `scripts/agent/validate-events.mjs` to verify builder output against schemas.
- Updated `js/nostrEventSchemas.js` to enforce relay hints in `buildRepostEvent` (fixes `tests/nostr-boost-actions.test.mjs`).
- Documented usage in `docs/nostr-event-schemas.md`.
- Verified 25 event builder scenarios pass validation.
2026-01-22 05:31:40 +00:00
google-labs-jules[bot] 69e81920ce Add Playwright automation aids for disclaimer and modals
- Added `data-testid` attributes to key modals (Disclaimer, Login, Upload, Video, Profile, Lockdown) to facilitate reliable selection in Playwright tests.
- Updated `js/disclaimer.js` and `js/index.js` to respect a new `playwright-bypass-disclaimer` localStorage flag, allowing automated tests to skip the disclaimer modal entirely.
2026-01-22 05:18:36 +00:00
thePR0M3TH3AN 870df0482a Merge pull request #1489 from PR0M3TH3AN/explore-link-visibility-8183721342174679131
Enable 'Explore' sidebar link for logged-in users
2026-01-22 00:14:55 -05:00
google-labs-jules[bot] 1cccc323e2 Enable 'Explore' sidebar link for logged-in users
This change ensures the 'Explore' link is visible in the sidebar when the user is logged in, and hidden when logged out, consistent with other authenticated routes like 'For You' and 'Subscriptions'.

- Updated `js/app.js` to handle `exploreLink` visibility in `applyAuthenticatedUiState` and `applyLoggedOutUiState`.
- Initialized `exploreLink` property in `js/ui/applicationBootstrap.js`.
- Updated `tests/app/hydrate-sidebar-navigation.test.mjs` to verify the behavior.
2026-01-22 05:10:47 +00:00
thePR0M3TH3AN 85cf476754 Merge pull request #1486 from PR0M3TH3AN/hide-explore-logged-out-10488339616023198572
Hide Explore link in sidebar for logged-out users
2026-01-21 22:40:37 -05:00
thePR0M3TH3AN 46d2ec6fd5 Merge pull request #1487 from PR0M3TH3AN/ai/refactor-engagement-20231026-11863220553189557026
Refactor engagement actions to EngagementController
2026-01-21 22:39:12 -05:00
google-labs-jules[bot] cd9418aa92 refactor(ai): extract EngagementController from js/app.js (agent)
Moved `handleRepostAction`, `handleMirrorAction`, and `handleEnsurePresenceAction` from `js/app.js` to `js/ui/engagementController.js`.
This follows the AGENTS.md refactor direction for `bitvidApp` to controllers.

- Extracted logic into `EngagementController`.
- Added unit tests for `EngagementController`.
- Wired `EngagementController` into `js/app.js`.
- Preserved `currentVideoPointer` fallback logic in `derivePointerFromDataset`.
2026-01-22 03:36:33 +00:00
google-labs-jules[bot] 113a8324c4 Hide Explore link for logged-out users 2026-01-22 03:32:36 +00:00
thePR0M3TH3AN 9b138dc5fa update 2026-01-21 21:57:16 -05:00
thePR0M3TH3AN bbd6833c4d update 2026-01-21 21:54:56 -05:00
thePR0M3TH3AN 8f565552d2 Merge pull request #1473 from PR0M3TH3AN/feature/video-card-marquee-4520373547615093905
Add marquee scrolling for Video Card titles and usernames
2026-01-21 21:41:16 -05:00
thePR0M3TH3AN d2ca9ca97f Merge branch 'unstable' into feature/video-card-marquee-4520373547615093905 2026-01-21 21:41:06 -05:00
google-labs-jules[bot] 222872b59a feat(ui): tune mobile active state and fix desktop regression
- Relax `VideoCard` active state detection to a 30% viewport sweet spot (rootMargin -35%)
- Strict desktop detection using `window.matchMedia` to prevent active state conflicts
- Encapsulate mobile active CSS rules within media query to prevent desktop style leakage
- Fix mobile layout overflow issues by enforcing `min-width: 0`
- Ensure marquee scrolling effect is robustly toggled based on overflow detection
2026-01-22 02:34:14 +00:00
google-labs-jules[bot] 6cead72ee1 feat(ui): refine mobile active state and fix desktop regression
- Restrict `VideoCard` mobile active state detection to mobile devices (<1024px) using `window.matchMedia`
- Tighten `IntersectionObserver` sweet spot to 10% (rootMargin: -45%) to prevent multiple cards being active
- Encapsulate mobile active CSS rules within media query to prevent desktop style regression
- Ensure proper marquee scrolling behavior on mobile by separating static and animated states
- Prevent layout blowouts by enforcing `min-width: 0` on flex containers
2026-01-22 02:19:15 +00:00
google-labs-jules[bot] 4aa4fb0935 feat(ui): implement marquee title and mobile active state for video cards
- Add marquee scrolling logic to VideoCard.js using ResizeObserver and CSS animations
- Implement mobile active state detection using IntersectionObserver with a centered rootMargin (-25%)
- Update CSS to apply active state styles (backdrop blur, shadow) via data-mobile-active attribute
- Fix mobile layout overflow issues by enforcing min-width: 0 on flex containers
- Ensure title text color changes to accent on active/hover state
2026-01-22 01:55:33 +00:00
thePR0M3TH3AN 4c9ae3b882 Merge pull request #1485 from PR0M3TH3AN/update-agents-md-known-issues-3297911731772455486
Update AGENTS.md with KNOWN_ISSUES.md guidance
2026-01-21 20:37:59 -05:00
google-labs-jules[bot] 281f102e84 docs: add instruction to read KNOWN_ISSUES.md in AGENTS.md
Updates AGENTS.md to explicitly instruct AI agents to review
KNOWN_ISSUES.md before starting development or debugging. This
ensures awareness of pre-existing test failures and environmental
quirks, preventing unnecessary investigation.
2026-01-22 01:36:56 +00:00
thePR0M3TH3AN 465c4ee047 Merge pull request #1484 from PR0M3TH3AN/ai/todo-triage-report-8587879301637168101
chore(ai): todo triage report
2026-01-21 20:32:08 -05:00
thePR0M3TH3AN 3f9dfa474a Merge pull request #1483 from PR0M3TH3AN/feature/automated-pr-review-script-4467978404934679640
feat: update review-pr.mjs with release channel guidance
2026-01-21 20:31:39 -05:00
google-labs-jules[bot] fa447ab07b chore(ai): todo triage report
No actionable TODOs, FIXMEs, or XXX comments were found in the codebase.
The `artifacts/todos.txt` file was generated as requested.
2026-01-22 01:11:05 +00:00
google-labs-jules[bot] 553c03e312 feat: update review-pr.mjs with release channel guidance
Updates scripts/agent/review-pr.mjs to fetch the base branch of PRs and
include specific release channel guidance (Main vs Unstable) in the
automated review report, as per AGENTS.md instructions.
2026-01-21 23:07:47 +00:00
google-labs-jules[bot] c443865187 feat(ui): add marquee effect to video cards
- Add ellipsis truncation for titles and usernames
- Implement scroll-on-hover (desktop) and scroll-on-center (mobile)
- Fix mobile layout blowout using min-width: 0 on flex containers
- Add IntersectionObserver and ResizeObserver mocks for tests
2026-01-21 22:57:02 +00:00
thePR0M3TH3AN 3255a1bf5b Merge pull request #1482 from PR0M3TH3AN/ci-fixes-and-docs-14868980418906357148
fix(ci): address lint errors and modals test logic
2026-01-21 17:26:30 -05:00
thePR0M3TH3AN 6c45d7af23 Merge branch 'unstable' into ci-fixes-and-docs-14868980418906357148 2026-01-21 17:26:10 -05:00
google-labs-jules[bot] 90bbcbf27d fix(ci): address lint errors and modals test logic
- Replaced raw pixel value in `css/tailwind.source.css` with theme-based `calc()` to fix token lint error.
- Updated `tests/e2e/ui-modals.spec.ts` to skip close control check for `lockdown-modal`, aligning with inescapable design.
- Added `KNOWN_ISSUES.md` documenting unresolved visual regression in sidebar layout and moderation UI rendering issues in tests.
- Reverted incomplete attempt to fix sidebar CSS logic to maintain stability.
2026-01-21 22:20:49 +00:00
thePR0M3TH3AN 7f2ba67323 Merge pull request #1481 from PR0M3TH3AN/jules/watch-history-reliability-8717302607974193984
Improve Watch History Reliability and Responsiveness
2026-01-21 17:10:34 -05:00
google-labs-jules[bot] a484fb8f36 improve watch history reliability
- Reduced view threshold from 12s to 5s in watchHistoryTelemetry.js
- Enabled immediate watch history republishing (0ms delay) for the first attempt in watchHistory.js
- Updated watchHistoryService.js to recursively schedule queue flushes if items accumulate during an inflight sync
2026-01-21 22:07:23 +00:00
google-labs-jules[bot] f03adbb909 feat: implement marquee scrolling for video card titles
- Replaced CSS truncation with a custom marquee structure in `VideoCard.js` for titles and author names.
- Added `css/tailwind.source.css` utilities for `.marquee-host`, `.marquee-static`, and `.marquee-track` animations.
- Implemented `ResizeObserver` (shared singleton) to detect overflow and enable marquee only when needed.
- Implemented `IntersectionObserver` (shared singleton) to trigger marquee on mobile when the card is in the center of the viewport.
- Configured dynamic animation duration based on text content width to ensure constant scrolling speed.
- Verified visual behavior via Playwright screenshots.
- Applied `min-width: 0` to marquee host to prevent flexbox overflow on mobile.
- Updated raw CSS values to use design tokens to pass linting.
2026-01-21 22:07:02 +00:00
thePR0M3TH3AN 802b2b191e Merge pull request #1475 from PR0M3TH3AN/dm-zap-button-relocation-9070595879886835969
Relocate DM Zap Button to Composer
2026-01-21 16:45:02 -05:00
google-labs-jules[bot] fa8a24a0aa Refactor DM Zap button and stats to Composer area
Moves the Zap button and Zap statistics from the message thread header to the message composer area, adjacent to the Send button. Refactors the Zap interface creation logic into a standalone component `ZapInterface.js` to decouple it from `MessageThread.js`. Updates `Composer.js` to support an optional `onZap` handler and `zapStats` prop, rendering the button with an icon-only style and the stats pill reusing the existing CSS class. Updates `AppShell.js` to orchestrate the Zap interface display and pass the necessary statistics.
2026-01-21 21:39:27 +00:00
thePR0M3TH3AN 6b1ce04af6 Merge pull request #1480 from PR0M3TH3AN/ai/smoke-tests-20260121-1282992729253330531
Add automated smoke test script using Playwright
2026-01-21 16:29:23 -05:00
thePR0M3TH3AN 804c564c08 Merge pull request #1477 from PR0M3TH3AN/update-webtorrent-config-9552895628045698758
Improve WebTorrent Fallback Reliability
2026-01-21 16:26:30 -05:00
google-labs-jules[bot] 429c1c168d chore(ai): add smoke test script (agent)
Added `scripts/agent/smoke-test.mjs`, a Playwright-based smoke test that:
- Spins up a local web server (`python -m http.server`) and local relay (`scripts/agent/simple-relay.mjs`).
- Launches a headless browser to interact with the served app.
- Verifies key flows: Login, Video Publish, Verification, and DM Decryption.
- Reports status to `artifacts/smoke-summary-YYYYMMDD.json` and logs.

This fulfills the requirement for a regression smoke test covering key user flows.
2026-01-21 21:23:27 +00:00
google-labs-jules[bot] 8769eab3f7 feat: improve webtorrent fallback reliability
- Increased `PROBE_TIMEOUT_MS` in `js/gridHealth.js` to 20s to reduce false negatives in peer detection.
- Relaxed the peer check in `js/app.js` to allow forcing a switch to WebTorrent even if the liveliness checker reports 0 peers (showing a warning instead of an error).
- Added `tests/verify_app_switch.mjs` to validate the UI logic change.
2026-01-21 21:23:21 +00:00
thePR0M3TH3AN 6d0250cc2e Merge pull request #1479 from PR0M3TH3AN/jules-remove-republish-btn-5471016097718708399
Remove "Republish now" button from profile watch history
2026-01-21 16:14:30 -05:00