Commit Graph
58 Commits
Author SHA1 Message Date
google-labs-jules[bot]andPR0M3TH3AN 0bfa3b08e8 fix(ci): fix netlify deployment by building to dist
- Move from root publishing to clean `dist/` directory
- Create `scripts/build-dist.mjs` to orchestrate build and copy assets
- Update `package.json` build script
- Update `netlify.toml` to publish `dist/`
- Ignore `dist/` in `.gitignore`

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-29 09:07:15 +00:00
google-labs-jules[bot]andPR0M3TH3AN f80bbc7dae chore(ai): remove dead code (agent)
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 20:33:25 +00:00
thePR0M3TH3AN 36254d0a0c Merge branch 'unstable' into fix-npm-ci-noble-hashes-12361867573265667733 2026-01-27 14:54:41 -05:00
google-labs-jules[bot]andPR0M3TH3AN 19bc401296 Fix npm ci failure by resolving @noble/hashes dependency conflict
Explicitly adds @noble/[email protected] to devDependencies to satisfy the peer dependency of @exodus/bytes (used by jsdom), resolving the conflict with nostr-tools which requires version 1.3.1. Regenerates package-lock.json to include the correct versions.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 19:50:30 +00:00
google-labs-jules[bot]andPR0M3TH3AN aa7f4c6902 fix(deps): explicitly add @noble/[email protected] to resolve conflicts
Explicitly adds `@noble/[email protected]` to `package.json` dependencies.
This resolves a `peerDependencies` conflict where `@exodus/bytes` (a dependency
of `jsdom`) requires `@noble/hashes` ^1.8.0 || ^2.0.0, but `nostr-tools`
requires version 1.3.1.

By adding it to the root project, `npm` can correctly hoist version 2.0.1 for
`@exodus/bytes` while keeping version 1.3.1 nested for `nostr-tools`.
This fixes `npm ci` failures in CI environments that strictly validate the lockfile.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 19:47:12 +00:00
google-labs-jules[bot]andPR0M3TH3AN bc51f21c0d Fix profile modal opening latency by deferring expensive UI updates
The profile modal was slow to open (~100ms+ delay) when a user has many trusted contacts, blocked users, or moderation reports, because `refreshModerationSettingsUi` and `populateBlockedList` were called synchronously before making the modal visible.

This change refactors `ProfileModalController.show()` to:
1. Render the header synchronously (fast).
2. Call `open()` immediately to make the modal visible.
3. Defer expensive data population (`refreshModerationSettingsUi`, `populateBlockedList`, `refreshWalletPaneState`) to the next animation frame using `requestAnimationFrame`.

This significantly improves the perceived responsiveness of the profile button.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 19:03:03 +00:00
google-labs-jules[bot]andPR0M3TH3AN 3fe7633898 Fix docs content loading by vendoring marked and highlight.js
The documentation system relied on external CDNs for `marked` and `highlight.js`. This caused content loading failures ("Error loading content") when CDNs were blocked or unreachable.

This change:
- Adds `marked` and `highlight.js` to `package.json` dependencies.
- Vendors `marked.min.js` (from UMD build) and `highlight.min.js` (downloaded) into `vendor/`.
- Updates `index.html` to load these libraries from local `vendor/` path instead of CDN.

Verified with Playwright script ensuring docs content loads successfully.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 15:43:24 +00:00
google-labs-jules[bot]andPR0M3TH3AN 37abdd737f Fix CI build failure by adding missing devDependencies
- Added `http-server` and `serve` to `devDependencies`.
- This resolves CI failures where `npx` commands for `http-server` (used in Playwright) and `serve` (used in start scripts) would fail or block due to implicit installation restrictions.
- `package-lock.json` updated to reflect new dependencies.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-27 14:37:40 +00:00
google-labs-jules[bot] 603b0b1a69 test(ai): add unit tests for NostrClient and NostrService (agent) 2026-01-26 14:09:53 +00:00
google-labs-jules[bot] 4a0b81ad98 chore(ai): remove dead code (unused exports & deps) 2026-01-24 20:28:53 +00:00
thePR0M3TH3AN d12260b7ef Merge pull request #1628 from PR0M3TH3AN/ai/deps-playwright-1.58.0-913530217504265417
chore(ai): bump playwright to 1.58.0 and dependency scan
2026-01-24 14:32:22 -05:00
google-labs-jules[bot] f1b124f4e2 chore(ai): bump playwright to 1.58.0 and dependency scan
- Upgraded @playwright/test and playwright to ^1.58.0
- Generated dependency scan artifacts (npm-audit, npm-outdated)
- Documented issues for nostr-tools version mismatch and webtorrent upgrade
2026-01-24 09:44:41 +00:00
google-labs-jules[bot] c9201c777e Add privacy-preserving telemetry aggregation script
Moves and enhances the telemetry aggregator script to `scripts/agent/telemetry-aggregator.mjs`.
Updates `package.json` to point to the new location.
Implements robust parsing for smoke test summaries and fuzz reports.
Adds PII sanitization (IPs, emails, keys, paths).
Enforces opt-in via `ENABLE_TELEMETRY` environment variable.
Adds `ai/reports/` to `.gitignore`.
2026-01-24 06:29:10 +00:00
google-labs-jules[bot] a731ef6887 fix(ai): frontend console error — fix missing build artifact and admin list fetch warning (agent)
- Added `start` script to `package.json` to ensure `npm run build` is executed before serving, preventing 404 errors for `css/tailwind.generated.css`.
- Updated `js/adminListStore.js` to include the super admin pubkey (decoded from `ADMIN_SUPER_NPUB`) in the filter when fetching admin lists. This resolves the warning: `[adminListStore] Cannot use incremental fetch for editors without author.`
- Added `scripts/agent/debug_frontend.py` to diagnose frontend errors using Playwright.
- Verified fixes by running the debug script and confirming warnings are gone.
2026-01-23 18:45:36 +00:00
google-labs-jules[bot] 28009deae7 chore(ai): bump prettier to 3.8.1
Upgraded prettier to 3.8.1 (safe patch upgrade).
Ran security scan (0 vulnerabilities).
Identified other outdated dependencies (see PR description).
2026-01-23 09:36:20 +00:00
thePR0M3TH3AN 12ee671261 Merge pull request #1498 from PR0M3TH3AN/ai/lint-20250523-15980727212633772968
chore(ai): apply formatting/lint autofixes
2026-01-22 10:19:27 -05:00
google-labs-jules[bot] f75531d2db chore(ai): format sources and fix moderation bugs (agent)
- Format `css/tailwind.source.css` with Prettier.
- Add allowlist entry for `VideoCard.js` media query pixel value in `scripts/check-design-tokens.mjs`.
- Remove accidental artifact `js/ui/dm/jules_session_4520373547615093905.zip`.
- Fix bug in `js/app.js` and `js/services/moderationActionController.js` where blocked users' videos were not correctly hidden in the UI immediately after blocking.
- Fix bug in `tests/app/moderation-overrides.test.mjs` where `userBlocks` mocks were insufficient to reflect state changes.
2026-01-22 14:58:35 +00:00
thePR0M3TH3AN 054fca8433 Add unit test sharding and timeouts 2026-01-22 09:58:18 -05: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] 4daa41a91b chore(ai): add smoke test script (agent) 2026-01-20 21:32:55 +00:00
thePR0M3TH3AN 89e82778d6 Add DM test suites and headless e2e CI 2026-01-19 13:43:13 -05:00
google-labs-jules[bot] e78f7c47f1 chore(ai): remove dead code (agent)
Removes unused JavaScript files, exports, and npm dependencies identified during a dead code sweep.

- Deleted `js/healthService.js` (unused).
- Deleted `js/nostr/signer-interface.js` (unused).
- Deleted `js/watchHistorySort.js` (unused).
- Deleted `js/services/signerKeyManager.js` and `tests/ui/signerKeyManager.test.mjs` (unused).
- Removed `buildStorageChallengeEvent` from `js/nostrEventSchemas.js`.
- Removed `path` and `webtorrent` from `package.json` dependencies (unused/vendored).
- Updated `tests/hashtag-preferences.test.mjs` to fix a mock-related failure exposed by environment checks.

Verified with `npm run test:unit`. `lint` and `format` checks run.
Note: `tests/moderation-service.test.mjs` failure deemed pre-existing.
See `artifacts/depcheck.json` (if retained) for dependency analysis.
2026-01-18 20:20:54 +00:00
thePR0M3TH3AN e3dc7f2f43 Merge pull request #1305 from PR0M3TH3AN/ai/deps-upgrade-bundle-2024-01-18-8434648762069799900
Dependency Updates & Security Scan Report
2026-01-18 07:54:43 -05:00
google-labs-jules[bot] 7376b2e857 chore(ai): bump devDependencies (autoprefixer, esbuild, prettier) and add audit reports 2026-01-18 09:14:59 +00:00
google-labs-jules[bot] 30e0d9e287 feat(tools): add privacy-preserving telemetry aggregator
- Added `scripts/telemetry-aggregator.mjs` to collect, sanitize, and aggregate errors from unit and smoke tests.
- Added `telemetry:aggregate` script to `package.json`.
- Implemented PII sanitization for IPs, emails, and hex keys.
- Configured aggregation to prioritize critical/high severity issues.
2026-01-18 06:06:37 +00:00
google-labs-jules[bot] b83f5009e4 I have updated the zap dialog to display the "Done" button on success.
I modified `js/channelProfile.js` to implement the logic that toggles the "Send" button to "Done" and closes the dialog when clicked. Additionally, I updated `js/ui/zapController.js` to prevent the form from resetting entirely on success, which preserves receipts; instead, it now manually clears the comment and sets the completed state.

These changes ensure consistent "Done" button behavior across both the Channel Profile and Video Modal zap interfaces. I also included minor `package.json` updates for linting dependencies.
2026-01-18 01:58:56 +00:00
google-labs-jules[bot] 898f3056a8 Add load testing scripts and report 2026-01-17 19:56:27 +00:00
google-labs-jules[bot] fca40daa70 Fix oversized watch history thumbnails on mobile
- Replaced `w-full` with `w-56 max-w-full` in `.watch-history-card__thumbnail` class.
- This ensures thumbnails are constrained to ~224px (14rem) on all viewports, fixing the "bleeding" issue on mobile while maintaining the desktop layout.
- The `max-w-full` ensures safety on very narrow screens.
2026-01-17 14:47:55 +00:00
google-labs-jules[bot] 98e63e29e6 Expand tests for generic connection payloads and R2-specific mapping
This change adds comprehensive unit and integration tests to cover:
1. `signerKeyManager.js`: Verification of key derivation from signatures and passphrases.
2. `storageService.js`: Tests for saving, retrieving, and decrypting connections, specifically verifying that generic S3 payloads (endpoint, region, bucket) are preserved alongside R2 payloads.
3. `UploadModal.js`: Integration tests mocking the storage service to verify that R2 connection details correctly map to the UI input fields and that the "Unlock" flow updates the UI state.

It also introduces `fake-indexeddb` as a dev dependency to enable reliable testing of IndexedDB interactions in the Node/JSDOM test environment.
2026-01-16 12:07:17 +00:00
google-labs-jules[bot] cced268982 Fix: Ensure comments controller is initialized when opening video modal
This addresses an issue where comments would not display on the first load of the video modal if the DOM elements were not fully bound. The `open()` method now checks if the `commentsList` is missing or disconnected and re-initializes the `CommentsController` if necessary.

Also updated `tests/video-modal-accessibility.test.mjs` to fix a JSDOM environment issue with `navigator` mocking.
2026-01-07 00:59:47 +00:00
google-labs-jules[bot] 3096f02e40 Remove metadata toggle from watch history pane
Removed the metadata toggle UI and related logic from the watch history implementation.
- Updated `components/profile-modal.html` to remove the UI block.
- Cleaned up `js/ui/profileModalController.js` and `js/historyView.js` to drop metadata preference state and handlers.
- Updated `tests/watch-history.test.mjs` to remove obsolete test cases referencing `metadataPreference`.
2026-01-05 18:56:58 +00:00
google-labs-jules[bot] cc25635ce6 Refactor watch history to use monthly buckets (v3)
Refactors `js/nostr/watchHistory.js` to store and publish watch history items in monthly buckets (`YYYY-MM`) instead of using chunk splitting. Updates storage version to 3, migrates existing data, and simplifies fetch/merge logic to handle monthly records. Removes legacy chunk rebalancing code. Updates tests to verify monthly bucketing behavior.
2026-01-05 14:11:57 +00:00
thePR0M3TH3AN 1c13122ba0 Ignore generated Tailwind CSS and update build commands 2025-11-03 11:36:48 -05:00
thePR0M3TH3AN 3e160a5035 Update nostr-tools bundle to restore nip46 handshake 2025-10-22 07:18:25 -04:00
thePR0M3TH3AN 8492091780 Track trusted mute lists and surface UI signals 2025-10-17 22:09:02 -04:00
thePR0M3TH3AN 43a75e86c8 Refactor popover engine to use Floating UI 2025-10-16 15:46:57 -04:00
thePR0M3TH3AN 5a2077595a Implement internal popover positioning 2025-10-16 12:00:59 -04:00
thePR0M3TH3AN 71ef952777 Add popover engine backed by Floating UI 2025-10-16 10:46:01 -04:00
thePR0M3TH3AN faf079f9b8 Add path dependency for Netlify build 2025-10-15 20:13:20 -04:00
thePR0M3TH3AN ed60f1b7af Add lint for Tailwind arbitrary values 2025-10-14 19:18:14 -04:00
thePR0M3TH3AN e767316501 feat: add semantic color palette and lint guard 2025-10-14 15:18:02 -04:00
thePR0M3TH3AN afffb5c01e Add design metrics tokens and tooling 2025-10-14 11:34:17 -04:00
thePR0M3TH3AN 053623bdac Refactor beacon runtime to design system modules 2025-10-14 10:26:41 -04:00
thePR0M3TH3AN 310dd51a7c Scan beacon build artifacts for inline styles 2025-10-13 21:59:05 -04:00
thePR0M3TH3AN c3ba160ef8 Replace UI grid and notify with Tailwind components 2025-10-13 21:53:26 -04:00
thePR0M3TH3AN 7d1c77e4ba Inline beacon fonts to avoid binary artifacts 2025-10-13 19:01:30 -04:00
thePR0M3TH3AN 693bd2bef2 Add inline style guard to lint suite 2025-10-13 16:51:06 -04:00
thePR0M3TH3AN cd42003e81 Refine markdown styling with Tailwind typography 2025-10-12 20:20:14 -04:00
thePR0M3TH3AN 3f1238b5a9 Remove legacy CSS and enable design system by default 2025-10-12 06:58:50 -04:00
thePR0M3TH3AN 3dd3a4611a fix: resolve nostr tools in node tests 2025-10-11 21:09:15 -04:00