Commit Graph
3852 Commits
Author SHA1 Message Date
thePR0M3TH3AN 1908dfe8db Merge pull request #1671 from PR0M3TH3AN/ai/deps-security-scan-16274800310085154888
Security Scan and Dependency Analysis
2026-01-25 10:48:09 -05:00
thePR0M3TH3AN 3a599e3ad5 Merge pull request #1670 from PR0M3TH3AN/ai/onboarding-20231026-1317313232699865149
docs(ai): improve onboarding steps
2026-01-25 10:47:23 -05:00
thePR0M3TH3AN de470d7e43 Merge pull request #1669 from PR0M3TH3AN/ai/interop-tests-20250523-5080573414385366993
feat: Add Nostr interop test script with local relay
2026-01-25 10:46:50 -05:00
thePR0M3TH3AN e4a4216fae Merge pull request #1668 from PR0M3TH3AN/telemetry-aggregation-script-13541382405670106865
feat(ai): telemetry aggregation script
2026-01-25 10:46:10 -05:00
thePR0M3TH3AN 06550ef007 Merge pull request #1667 from PR0M3TH3AN/ai/schema-validate-20231026-12531232348450891371
chore(ai): event schema validation tool + fixes
2026-01-25 10:42:14 -05:00
thePR0M3TH3AN e6518f8ab4 Merge pull request #1666 from PR0M3TH3AN/ai/refactor-share-nostr-20260125-14923769825350051949
refactor(ai): extract ShareNostrController from js/app.js
2026-01-25 10:39:24 -05:00
google-labs-jules[bot] 94f3aa59df chore(ai): security scan and dependency issues
- Generated artifacts/npm-audit.json
- Generated artifacts/npm-outdated.json
- Created issue drafts in artifacts/issues/ for blocked/major upgrades:
  - nostr-tools (Blocked by policy)
  - cross-env (Major v10)
  - tailwindcss (Major v4)
  - jsdom (Major v27)
  - esbuild (Major v0.27)
2026-01-25 09:29:59 +00:00
google-labs-jules[bot] 93b3434145 docs(ai): improve onboarding steps (agent)
- Audit onboarding process (`npm ci`, build, lint).
- Fix hex color lint failures by updating `scripts/check-hex.js` ignore list.
- Fix inline style lint failures by updating `scripts/check-inline-styles.mjs` allowlist.
- Fix raw tailwind colors in `js/ui/components/EmbedPlayerModal.js` by using semantic tokens.
- Add `ai/onboarding-report.md` detailing the audit.
2026-01-25 08:25:42 +00:00
google-labs-jules[bot] 70e63ca922 feat(test): add interop-test.mjs for Nostr integration testing
- Implements `scripts/agent/interop-test.mjs` to validate Nostr protocol interoperability.
- Uses `simple-relay.mjs` to spin up a local test relay (no public relay spam).
- Generates ephemeral keys for each run using `nostr-tools`.
- Verifies `VIDEO_POST` (Video Note) publishing and fetching.
- Verifies `VIEW_EVENT` publishing.
- Verifies Direct Message (DM) sending and listing (decryption).
- Polyfills browser globals (WebSocket, crypto, localStorage, IndexedDB) for Node.js execution.
2026-01-25 07:51:08 +00:00
google-labs-jules[bot] bfa333849a feat(ai): implement privacy-preserving telemetry aggregator script
- Enhance `scripts/agent/telemetry-aggregator.mjs` to parse TAP formatted unit test logs (e.g., `test_unit_debug.log`).
- Add logic to identify and group errors by stack trace fingerprint.
- Implement PII sanitization for IPs, emails, and keys.
- Generate a Markdown report in `ai/reports/` with prioritized issues.
- Generate a JSON artifact in `artifacts/` for machine consumption.
- Ensure telemetry is opt-in via `ENABLE_TELEMETRY` env var.
- Produce initial telemetry report `ai/reports/telemetry-20260125.md`.
2026-01-25 06:36:09 +00:00
google-labs-jules[bot] 5790b6e7c1 chore(ai): event schema validation tool + fixes
- Created `scripts/agent/validate-events.mjs` to validate all event builders.
- Fixed `buildViewEvent` to generate a fallback `d` tag for kind 30079 compliance.
- Relaxed `REPOST` schema validation to allow empty content (blind reposts), per NIP-18.
- Updated `docs/nostr-event-schemas.md` to reflect schema changes.
2026-01-25 05:29:32 +00:00
google-labs-jules[bot] 4c93080baa refactor(ai): extract ShareNostrController from js/app.js (agent) 2026-01-25 03:34:10 +00:00
thePR0M3TH3AN 7afe811b1f Merge pull request #1665 from PR0M3TH3AN/fix-video-modal-css-conflict-18316255251114241385
Fix video player modal layout by removing conflicting CSS overrides
2026-01-24 22:16:13 -05:00
google-labs-jules[bot] d06a4298ee fix(ai): remove video modal css overrides breaking layout (agent)
This change removes a block of CSS in `css/tailwind.source.css` that was incorrectly applying `!important` layout overrides to the main video modal (`.video-modal__*`, `#modalVideo`), causing visual regressions. These overrides were likely intended for the embed view but were scoped too broadly. `embed.html` uses distinct selectors and remains unaffected, as verified by visual tests.

- Removed destructive `!important` rules for `.video-modal__*` and `#modalVideo`.
- Preserved `.bv-logo__accent` theming rule.
- Rebuilt CSS.
2026-01-25 02:57:50 +00:00
thePR0M3TH3AN 7f38c4597b Merge pull request #1664 from PR0M3TH3AN/feature/s3-manifest-upload-v2-12799695231766651880
Support S3 Presigned Multipart Manifest Upload
2026-01-24 21:45:28 -05:00
google-labs-jules[bot] a33092fc47 feat(upload): support presigned multipart manifest for S3 uploads
- Updated `js/s3-quick.js` to support new manifest structure: `{ bucket, key, uploadId, parts: [{partNumber, url}] }`.
- Added logic to sort parts, upload chunks, collect ETags, and call `completeUrl` if present.
- Updated `js/ui/components/UploadModal.js` to handle manifest flow, validate new structure, and alert user if completion is manual (missing `completeUrl`).
- Updated `components/upload-modal.html` with new placeholder example and documentation note.
- Verified logic with reproduction script and UI with Playwright.
2026-01-25 02:44:49 +00:00
thePR0M3TH3AN 7132a80709 Merge pull request #1663 from PR0M3TH3AN/fix-pushstate-origin-977125356888089584
fix: prevent SecurityError in pushState when playing video on local origin
2026-01-24 21:39:21 -05:00
google-labs-jules[bot] ee0af68bfd fix: prevent SecurityError in pushState when playing video on local origin
When running the application locally (e.g., `127.0.0.1:5500`) but using a production configuration (`BITVID_WEBSITE_URL` pointing to `bitvid.network`), `playVideoByEventId` would attempt to `pushState` with the production URL. This triggers a browser `SecurityError` due to the origin mismatch, preventing the video modal from opening.

This change adds a check to normalize the `pushUrl`. If the target URL's origin differs from the current window's origin, it falls back to a relative path using `window.location.pathname` combined with the target's search parameters and hash. This ensures `pushState` always receives a safe, same-origin URL regardless of the environment configuration.
2026-01-25 02:33:30 +00:00
thePR0M3TH3AN 4560ca3ca6 Merge pull request #1662 from PR0M3TH3AN/fix-video-modal-display-17175209581181206635
Fix video player modal visibility by removing conflicting CSS rule
2026-01-24 21:19:25 -05:00
google-labs-jules[bot] 8de33b7cb1 fix(ui): remove display:none from #playerModal selector to fix modal visibility
The #playerModal ID selector in `css/tailwind.source.css` incorrectly set `display: none`. This ID selector has higher specificity than the `.hidden` utility class (applied by Tailwind) used by `VideoModal.js` to toggle visibility.

When `VideoModal.js` removed the `.hidden` class to show the modal, the ID selector's `display: none` remained active, keeping the modal hidden.

Also removed the `#playerModal.flex` rule as `.bv-modal` already provides flex behavior.

This fixes the issue where clicking a video card would trigger the logic but fail to display the player.
2026-01-25 02:16:32 +00:00
thePR0M3TH3AN feef662bf8 Merge pull request #1661 from PR0M3TH3AN/feat/s3-quick-upload-4202021437560592801
Add S3 quick upload with presigned manifest support
2026-01-24 20:42:50 -05:00
google-labs-jules[bot] adad6a07a4 feat: Add S3 quick upload with presigned manifest support
- Add `js/s3-quick.js` with `uploadWithManifest` and `uploadWithKeys`.
- Update `components/upload-modal.html` to add "Use presigned manifest" toggle and warning.
- Update `js/ui/components/UploadModal.js` to wire up the manifest upload flow.
- Add local persistence for quick S3 settings (though mainly handled by existing storage settings).
- Ensure keys are only used for client-side uploads or replaced by manifest flow.
2026-01-25 01:38:41 +00:00
thePR0M3TH3AN bc4b2a3321 Merge pull request #1660 from PR0M3TH3AN/fix/ai/providers-undefined-profilemodal-13878465202103731701
fix(ai): resolve PROVIDERS undefined in profileModalController
2026-01-24 20:19:40 -05:00
thePR0M3TH3AN 5b2b50cef7 Merge pull request #1658 from PR0M3TH3AN/fix/share-menu-auth-sync-12408954512497854865
Fix share menu auth state synchronization
2026-01-24 20:19:21 -05:00
thePR0M3TH3AN 6c7b93b60f Merge pull request #1659 from PR0M3TH3AN/ai/triage-todos-20241026-8887713661641391947
Triage TODOs and generate issue drafts
2026-01-24 20:19:00 -05:00
google-labs-jules[bot] b2d5619f78 fix(ai): resolve PROVIDERS undefined in profileModalController (agent)
Import `PROVIDERS` from `../services/storageService.js` in `js/ui/profileModalController.js`.
This fixes a `ReferenceError` when testing or saving generic S3 storage configurations.
The error was caused by using `PROVIDERS.GENERIC` without importing the constant.
2026-01-25 01:14:37 +00:00
google-labs-jules[bot] 82834a18fe chore(ai): triage TODOs and generate issue drafts
- Scanned repo for TODO/FIXME/XXX.
- Found no trivial TODOs in JS sources.
- Found non-trivial TODOs in `tests/visual/moderation.spec.ts` related to headless test environment issues.
- Generated `artifacts/todos.txt` with the findings (filtering out false positives).
- Generated `artifacts/issues.md` with issue drafts for the identified non-trivial TODOs.
2026-01-25 01:13:09 +00:00
google-labs-jules[bot] 70dcfa3ef5 fix: update share menu state on pubkey change 2026-01-25 01:11:34 +00:00
thePR0M3TH3AN 874c29e41e Merge pull request #1657 from PR0M3TH3AN/codex/add-s3-provider-selector-to-upload-modal
Add S3 provider support to upload modal storage settings
2026-01-24 20:00:14 -05:00
thePR0M3TH3AN 999235d71e Add S3 storage option to upload modal 2026-01-24 20:00:00 -05:00
thePR0M3TH3AN e94a410e6c Merge pull request #1656 from PR0M3TH3AN/fix/embed-black-bar-13757505465448233546
Fix embed player layout collapsing by adding embed.html to Tailwind config
2026-01-24 19:52:40 -05:00
google-labs-jules[bot] 0840235798 fix(config): add embed.html to tailwind content config
This fixes a layout issue in the embed player where the body height would collapse to the default video height (150px) because `h-screen` and other utility classes were missing from the generated CSS. Adding `embed.html` to `tailwind.config.cjs` ensures these classes are generated.
2026-01-25 00:51:52 +00:00
thePR0M3TH3AN df2f5b1eed Merge pull request #1655 from PR0M3TH3AN/fix/video-modal-black-bar-126294532786175547
fix: eliminate black bars in video modal player
2026-01-24 19:30:42 -05:00
google-labs-jules[bot] b9f7ffd95e fix: eliminate black bars in video modal player
Enforce full-width/height video display and dynamic object-fit logic to prevent letterboxing and layout gaps.

- Add robust CSS overrides to 'css/tailwind.source.css' to ensure video fills the stage.
- Update 'VideoModal.js' to dynamically switch between 'cover' and 'contain' based on aspect ratio match.
- Handle ambient canvas positioning to prevent layout shifts.
2026-01-25 00:29:52 +00:00
thePR0M3TH3AN bcfe070bbe Merge pull request #1654 from PR0M3TH3AN/agent-weekly-report-3510456207313124861
Weekly Report 2026-01-24
2026-01-24 19:27:44 -05:00
google-labs-jules[bot] a7338ce6d0 docs(ai): weekly synthesis report 2026-01-24 2026-01-25 00:25:04 +00:00
thePR0M3TH3AN 1a86b82fea Merge pull request #1653 from PR0M3TH3AN/fix/embed-video-fill-and-logo-accent-9972861085055590695
fix(embed): resolve video letterboxing and wire logo accent color
2026-01-24 18:58:06 -05:00
google-labs-jules[bot] a708883abb fix(embed): video sizing letterbox and logo accent
- Changed embed video sizing to `object-fit: cover` and `width: 100%` to eliminate black bars/letterboxing.
- Updated `embed.html` and `css/tailwind.source.css` to enforce these styles on `.video-modal__media`, `.video-modal__video`, and `#embedVideo`.
- Wired the embed logo accent color to use the instance configuration (`THEME_ACCENT_OVERRIDES` from `config/instance-config.js`) via a `--bitvid-accent` CSS variable injected in `js/embed.js`.
- Added unit and visual tests to verify styling and configuration logic.
2026-01-24 23:57:29 +00:00
thePR0M3TH3AN 18fa0c3512 Merge pull request #1652 from PR0M3TH3AN/feat/enhance-pr-review-script-11867843121781566388
refactor(agent): use runCommand helper for consistency and reliability
2026-01-24 18:45:50 -05:00
google-labs-jules[bot] d59cb45f8e refactor(agent): use runCommand helper for consistency and reliability
- Update `scripts/agent/review-pr.mjs` to use `runCommand` wrapper for all command executions.
- Increase `maxBuffer` to 10MB to prevent crashes during large test/lint outputs.
- Ensure consistent logging and option handling.
2026-01-24 23:40:20 +00:00
thePR0M3TH3AN 6c122c2fd3 Merge pull request #1651 from PR0M3TH3AN/fix-embed-gap-and-logo-4459649553039133031
fix(embed): transparent video background and correct logo color
2026-01-24 18:36:19 -05:00
google-labs-jules[bot] 4264a1ed0e fix(embed): transparent video background and correct logo color
- Add `bg-transparent` to `#embedVideo` to fix visual gap/letterboxing issues.
- Inline the BitVid logo SVG in `embed.html` and use `bv-logo` class with `data-variant="inverse"` to ensure correct white wordmark and themed accent color on the dark overlay.
2026-01-24 23:35:45 +00:00
thePR0M3TH3AN 3de86b3b4d Merge pull request #1650 from PR0M3TH3AN/ui/embed-overlay-fix-13909911349337846125
Fix embed overlay position and view counter
2026-01-24 18:19:50 -05:00
google-labs-jules[bot] e02f8f48ae Fix embed overlay position and view counter 2026-01-24 23:19:03 +00:00
thePR0M3TH3AN 15898d3175 Merge pull request #1649 from PR0M3TH3AN/embed-fixes-11287616167883311307
fix: Embed player UI and stats loading
2026-01-24 18:03:01 -05:00
google-labs-jules[bot] 9287f91fc1 fix: Embed player UI, stats loading, and share URL
- Remove black background from embed video to allow transparency
- Update "Watch on Bitvid" button to "Watch on" + white logo
- Fix share URL generation to point to main site instead of embed
- Ensure view counts and reactions are subscribed in embed mode
2026-01-24 23:02:33 +00:00
thePR0M3TH3AN a8f924a583 Merge pull request #1648 from PR0M3TH3AN/update-embed-design-974021588342090211
Update Embed Player Design
2026-01-24 17:42:24 -05:00
google-labs-jules[bot] d621e6f21a feat: update embed player design with transparent background and overlay stats
- Removed background colors from `embed.html` for transparency.
- Added a hover-triggered overlay with "Watch on BitVid" button and stats (views, likes, dislikes).
- Updated `js/ui/components/EmbedPlayerModal.js` to implement stats update methods and handle the overlay elements.
- Updated `js/embed.js` to set the share URL on the overlay after video resolution.
- Verified visual changes with Playwright.
2026-01-24 22:41:56 +00:00
thePR0M3TH3AN a9bd7ec79e Merge pull request #1647 from PR0M3TH3AN/debug/embed-forward-logs-11196417843215875731
Debug: forward embed logs to parent when embed_debug=1
2026-01-24 17:30:21 -05:00
google-labs-jules[bot] 439265d9c0 Debug: forward embed logs to parent when embed_debug=1
This commit instruments the embed runtime to forward structured logs and lifecycle events
(Nostr, relay, pointer resolution, playback decision, WebTorrent) to the parent window
via `postMessage` when the `embed_debug=1` query parameter is present.

It also adds a defensive guard to `resetTorrentStats` in `js/app.js` to prevent TypeErrors.

Changes:
- Added `js/embedDiagnostics.js` module.
- Modified `js/embed.js` to initialize diagnostics and instrument startup.
- Modified `js/app.js` to instrument playback fallback and patch `resetTorrentStats`.
- Modified `js/webtorrent.js` to instrument peer probing and streaming.
2026-01-24 22:29:18 +00:00