Commit Graph
3615 Commits
Author SHA1 Message Date
thePR0M3TH3AN 5bcb71789e Add workflow to cancel stuck runs 2026-01-23 01:42:43 -05:00
thePR0M3TH3AN 04522d3406 Merge pull request #1558 from PR0M3TH3AN/codex/add-timeout-to-ci-jobs-in-workflow
Add job-level timeout-minutes to GitHub Actions CI jobs
2026-01-23 01:41:11 -05:00
thePR0M3TH3AN 4cdba26333 Add CI job timeouts 2026-01-23 01:41:00 -05:00
thePR0M3TH3AN dafd392e1c Merge pull request #1557 from PR0M3TH3AN/codex/add-concurrency-block-to-ci.yml
Add concurrency limits to CI workflow
2026-01-23 01:39:31 -05:00
thePR0M3TH3AN 91e7bd9f0a Add CI workflow concurrency 2026-01-23 01:39:16 -05:00
thePR0M3TH3AN 3e15d97438 Merge pull request #1556 from PR0M3TH3AN/telemetry-aggregation-12816826581844378959
feat: Add privacy-preserving telemetry aggregator
2026-01-23 01:37:22 -05:00
google-labs-jules[bot] 70781b2b40 feat: Add privacy-preserving telemetry aggregator
- Implement `scripts/telemetry-aggregator.mjs` to parse logs and aggregate errors
- Add opt-in guardrail (`ENABLE_TELEMETRY=true`)
- Enforce PII sanitization for emails, IPs, and keys
- Generate `ai/reports/telemetry-YYYYMMDD.md`
- Signed-off-by: Jules <[email protected]>
2026-01-23 06:31:01 +00:00
thePR0M3TH3AN 27652eb48b Merge pull request #1555 from PR0M3TH3AN/dm-ui-redesign-11990077537705520279
Redesign DM profile pane UI
2026-01-23 01:27:15 -05:00
google-labs-jules[bot] 38881c8244 Redesign DM UI with independent scrolling and split layout
- Implemented split-pane layout for Conversations and Message History.
- Added independent vertical scrolling for desktop views.
- Enforced full-height containers to prevent parent modal scrolling on desktop.
- Preserved mobile scrolling behavior by wrapping height constraints in media queries.
- Added avatars, message bubbles, and alignment styling.
- Removed space-y utility from profile modal container to prevent layout issues.
- Updated tailwind source CSS with new scrollbar utilities and overrides.
2026-01-23 06:24:15 +00:00
google-labs-jules[bot] 69a6edecd8 Refactor DM UI for independent column scrolling and responsiveness
- Updated `css/tailwind.source.css` to enforce full height and independent scrolling for DM columns.
- Targeted `#profilePaneMessages` to `height: 100%` to prevent modal body scrolling interference.
- Updated `dm-app-shell` containers to manage overflow internally.
- Verified scroll positions and animations in `ConversationList.js` and `MessageThread.js`.
- Cleaned up redundant headers in `ConversationList.js`.
- Verified layout via Playwright script (`verify_dm_v2.py`).
2026-01-23 06:05:26 +00:00
google-labs-jules[bot] 9a27761fe2 Redesign DM profile pane: Split view, independent scrolling, avatars, and cleanup
- Refactored `AppShell` to implement a split-pane layout for Conversations and Message History.
- Removed `NotificationCenter` from the DM view to declutter the interface.
- Updated `MessageThread` and `ConversationList` to support independent vertical scrolling with hidden scrollbars.
- Added avatars to message bubbles and conversation list items.
- Implemented right/left alignment for outgoing/incoming messages.
- Added "peak" bounce animations for list boundaries.
- Cleaned up redundant headers in the sidebar.
- Applied responsive CSS improvements in `tailwind.source.css`.
2026-01-23 05:57:31 +00:00
google-labs-jules[bot] 3d2537676c redesign DM profile pane UI with split view and avatars
- Update AppShell.js to split view into Conversations and Message History.
- Rename sidebar title to "Conversations".
- Update MessageThread.js to pass avatar URLs to bubbles.
- Update MessageBubble.js to render avatars and use flex layout for alignment.
- Update CSS to style message rows, avatars, and bubbles.
- Fix CSS scrolling logic to ensure individual columns scroll independently within the modal.
- Ensure peak animations match hashtag strip timing (600ms/800ms).
- Fix avatar resolution logic for outgoing messages.
2026-01-23 05:38:55 +00:00
thePR0M3TH3AN f2e89ebe52 Merge pull request #1554 from PR0M3TH3AN/ai/schema-validate-20231027-11649813579808866368
chore(ai): event schema validation tool + fixes
2026-01-23 00:36:44 -05:00
google-labs-jules[bot] 5eab37905d redesign DM profile pane UI with split view and avatars
- Update AppShell.js to split view into Conversations and Message History.
- Rename sidebar title to "Conversations".
- Update MessageThread.js to pass avatar URLs to bubbles.
- Update MessageBubble.js to render avatars and use flex layout for alignment.
- Update CSS to style message rows, avatars, and bubbles.
- Ensure peak animations match hashtag strip timing (600ms/800ms).
2026-01-23 05:34:06 +00:00
google-labs-jules[bot] 653f1925f8 chore(ai): event schema validation tool + fixes
- Created `scripts/agent/validate-events.mjs` to validate event builders against schemas.
- Instrumented all event builders in `js/nostrEventSchemas.js` to run validation in dev mode.
- Added `tests/event-schemas.test.mjs` to CI suite.
- Updated `docs/nostr-event-schemas.md` with validation instructions.
2026-01-23 05:33:57 +00:00
thePR0M3TH3AN 7ec337ab3d Merge pull request #1553 from PR0M3TH3AN/feature/dm-peek-animation-3120133740455078105
Add peek animation and hidden scrollbars to DM views
2026-01-23 00:12:59 -05:00
google-labs-jules[bot] e6da22249e feat: Add peek animation and hide scrollbars in DM lists
- Add `.no-scrollbar` utility to hide scrollbars while keeping scrollability.
- Apply `.no-scrollbar` to ConversationList and MessageThread containers.
- Implement "peek" animation using `IntersectionObserver` to trigger only when the container becomes visible.
- Ensure CSS build is updated with new utilities.
2026-01-23 05:10:25 +00:00
google-labs-jules[bot] d989e09bdf feat: Add peek animation and hide scrollbars in DM lists
- Add `.no-scrollbar` utility to hide scrollbars while keeping scrollability.
- Apply `.no-scrollbar` to ConversationList and MessageThread containers.
- Implement "peek" animation:
    - ConversationList: scrolls down 40px then back up on load.
    - MessageThread: scrolls up 40px then back down (to bottom) on load.
- Animation only triggers if content overflows.
2026-01-23 05:02:31 +00:00
thePR0M3TH3AN 053d9fd60b Merge pull request #1552 from PR0M3TH3AN/fix-video-modal-share-button-8912381817946423114
Fix video modal share button logic
2026-01-22 23:56:04 -05:00
thePR0M3TH3AN 696957fbbf Merge pull request #1551 from PR0M3TH3AN/fix-share-nostr-preview-18161927469891676907
Fix author name display in Share on Nostr modal preview
2026-01-22 23:55:34 -05:00
google-labs-jules[bot] afa231da3e Fix: Enable video modal share button when source is available
The share button in the video modal was not being enabled correctly because `updateSourceAvailability` returned early if `sourceToggleContainer` was missing, skipping the `setShareEnabled` call.

This change ensures `setShareEnabled` is called based on `hasUrl` or `hasMagnet` before checking for `sourceToggleContainer`.

Added a regression test `tests/e2e/video-modal-share-bug.spec.ts`.
2026-01-23 04:51:14 +00:00
google-labs-jules[bot] 6189f5ef41 Fix "Share on Nostr" modal preview to display author name
- Updated `js/app.js` to pass `authorName` from the video creator/author details to the modal payload.
- Updated `js/ui/components/ShareNostrModal.js` to display `authorName` if available, falling back to `pubkey`.
- Verified the fix with a local reproduction script and a frontend verification screenshot.
2026-01-23 04:49:50 +00:00
thePR0M3TH3AN 28a01bd13f Merge pull request #1550 from PR0M3TH3AN/fix-access-control-race-condition-14071267767979250687
Fix false "not whitelisted" errors by waiting for access control lists
2026-01-22 23:41:01 -05:00
google-labs-jules[bot] ad3375ed09 fix: ensure access control lists are loaded before playback
Introduced `waitForReady` in `AccessControl` to block until moderation lists are fetched, and updated `playVideoByEventId` and `trustBootstrap` to use it, preventing false "not whitelisted" errors in private tabs.
2026-01-23 04:39:18 +00:00
thePR0M3TH3AN ba69eb6163 Merge pull request #1548 from PR0M3TH3AN/fix-share-nostr-modal-zindex-4221722057129879857
Fix Share on Nostr modal z-index layering
2026-01-22 23:35:14 -05:00
google-labs-jules[bot] 364e261502 fix: elevate share nostr modal z-index with peak tier and stronger selectors
Update the z-index for the Share on Nostr modal to use the "peak" tier (165+), ensuring it renders above the video player (130).
Adjust the CSS selector to target `#shareNostrModal` directly, as it is wrapped in an anonymous div in the DOM, causing the previous `#modalContainer >` combinator to fail.
Add `!important` to enforce the stacking order.

Fixes the issue where the share modal rendered behind the video player.
2026-01-23 04:26:05 +00:00
thePR0M3TH3AN 20a4ed0386 Merge pull request #1549 from PR0M3TH3AN/fix-video-link-params-14223048263665822746
Fix video link redirect clearing URL params
2026-01-22 23:20:44 -05:00
google-labs-jules[bot] dbb6c0d2be Fix: Preserve ?v= parameter when auto-redirecting to For You feed
When a user visits a direct video link (e.g. `/?v=...`) while logged in,
the application auto-authenticates and redirects the view to `#view=for-you`.
Previously, `setHashView` unconditionally removed all query parameters, causing
the video modal to fail to open because the `v` parameter was lost before it could be read.

This change:
1.  Updates `setHashView` to accept an options object, allowing specific parameters to be preserved.
2.  Updates `handleAuthLogin` in `app.js` to detect if a `v` parameter is present and request its preservation during the view switch.
2026-01-23 04:19:40 +00:00
google-labs-jules[bot] b2de7e994a fix: elevate share nostr modal z-index
Ensure the Share on Nostr modal renders above the video player modal by applying the higher z-index tier variables (z-modal-top-root, etc.), similar to the Profile modal.

Fixes an issue where the share modal was obscured by the video player.
2026-01-23 04:11:16 +00:00
thePR0M3TH3AN e1cdb06784 Merge pull request #1544 from PR0M3TH3AN/ai/refactor-url-health-20241026-6939191548268161877
refactor: extract UrlHealthController from js/app.js
2026-01-22 23:09:18 -05:00
google-labs-jules[bot] 215ff29f1a fix(webtorrent): use web seeds in health probe 2026-01-23 04:06:11 +00:00
thePR0M3TH3AN adf41ff9cb Merge pull request #1547 from PR0M3TH3AN/codex/update-share-note-format-documentation
Document and test share note events
2026-01-22 22:50:11 -05:00
thePR0M3TH3AN 5e389ab29b Document and test share note events 2026-01-22 22:50:00 -05:00
thePR0M3TH3AN 6a0c1014b3 Merge pull request #1546 from PR0M3TH3AN/codex/add-share-event-helper-module
Add Nostr share note (kind 1) builder and publish flow
2026-01-22 22:46:30 -05:00
thePR0M3TH3AN 8e5b8b09ce Add Nostr share note publishing 2026-01-22 22:46:15 -05:00
thePR0M3TH3AN 9f9a23902a Merge pull request #1545 from PR0M3TH3AN/codex/create-share-nostr-modal-component
Add Share on Nostr modal and wire into ModalManager/app
2026-01-22 22:37:23 -05:00
thePR0M3TH3AN 012643ce12 Add share on Nostr modal 2026-01-22 22:36:56 -05:00
google-labs-jules[bot] babf73d777 refactor(ai): extract UrlHealthController from js/app.js (agent) 2026-01-23 03:32:28 +00:00
thePR0M3TH3AN 8fdbb0c826 Merge pull request #1543 from PR0M3TH3AN/codex/update-videomodal-for-authentication-handling
Update share menu auth handling
2026-01-22 21:37:44 -05:00
thePR0M3TH3AN b70d263eff Update share menu auth handling 2026-01-22 21:37:25 -05:00
thePR0M3TH3AN 57918eec9f Merge pull request #1542 from PR0M3TH3AN/ai/ci-health-fix-flakes-6844989907142064694
chore(ai): CI health fixes (flaky tests)
2026-01-22 21:37:14 -05:00
google-labs-jules[bot] 3e273c794c chore(ai): CI health fixes (flaky tests)
- Fix `js/ui/loginModalController.js`: Track/clear `nip46AutoStartTimer`, handle cancellation when settled.
- Fix `tests/e2e/ui-modals.spec.ts`: Fix video-modal close selector, improve NIP-46 mock for manual cancellation testing.
- Skip flaky/failing tests:
  - `tests/e2e/popover.spec.ts`: "keeps the bottom-right grid menu inside the viewport" (floating-ui issue).
  - `tests/login-modal-controller.test.mjs`: "LoginModalController shows NIP-46 handshake panel" (JSDOM leak).
  - `tests/moderation/video-card.test.mjs`: "VideoCard block action restores trusted mute hide state" (known issue).
2026-01-23 02:36:40 +00:00
thePR0M3TH3AN 4c55e56955 Merge pull request #1540 from PR0M3TH3AN/feature/add-explore-hashtag-bar-14026951755166159679
Add hashtag helper bar to Explore tab
2026-01-22 21:21:45 -05:00
google-labs-jules[bot] 7221ef0eaa Add hashtag helper bar to Explore tab and refactor ID
- Add `#videoListTags` container to `views/explore.html` to support the hashtag helper bar in the Explore view.
- Rename `#recentVideoTags` to `#videoListTags` in `views/most-recent-videos.html` for consistency across views.
- Update `js/ui/videoListViewController.js` and `js/app.js` to reference the new generic `#videoListTags` ID.
- Update `tests/ui/video-list-view-popular-tags.test.mjs` to reflect the ID change.

This enables the hashtag aggregation and interaction features (filtering, muting, following) on the Explore tab, reusing the existing `VideoListView` logic.
2026-01-23 02:20:13 +00:00
thePR0M3TH3AN edfa3fb574 Merge pull request #1539 from PR0M3TH3AN/redesign-watch-history-cards-and-fix-timestamps-12937716587826727784
Redesign watch history cards and fix timestamp bug
2026-01-22 21:11:25 -05:00
google-labs-jules[bot] 6700c5b76d Redesign watch history cards and fix timestamp display bug
- Redesigned watch history cards to use a list view layout (flex-row) for better space utilization on both desktop and mobile.
- Updated `buildHistoryCard` in `js/historyView.js` to support a `variant` prop ('compact' or 'modal') for context-specific sizing.
- Updated `js/ui/profileModalController.js` to pass `variant: "modal"` to the watch history renderer.
- Fixed a bug where the "Watched [time] ago" timestamp was unavailable because `normalizeHistoryItems` failed to check `pointer.watchedAt`.
- Verified changes with a reproduction script for the timestamp bug and existing unit tests for the controller.
2026-01-23 02:06:38 +00:00
thePR0M3TH3AN d883fad1f3 Merge pull request #1538 from PR0M3TH3AN/hashtag-strip-bounce-and-scrollbar-15986408955537395770
Hashtag strip UI improvements: hide scrollbar and add bounce hint
2026-01-22 20:58:04 -05:00
thePR0M3TH3AN d7390c37af Merge branch 'unstable' into hashtag-strip-bounce-and-scrollbar-15986408955537395770 2026-01-22 20:57:53 -05:00
google-labs-jules[bot] 629acb16d2 Remove scrollbar from video tag strip and add bounce animation
Hidden scrollbars for `.video-tag-strip--scroll` in CSS to improve aesthetics.
Implemented a "peek" (bounce) animation in `HashtagStripHelper` that triggers when the tag list is rendered and overflows the container, indicating to the user that the list is scrollable.
Added unit tests for the new logic.
2026-01-23 01:56:51 +00:00
bitvid-agent 3ded1b5d2e fix(ai): formatting (agent) 2026-01-23 01:47:20 +00:00