Commit Graph
4576 Commits
Author SHA1 Message Date
thePR0M3TH3AN e1a8cb41d2 Merge pull request #1990 from PR0M3TH3AN/ai/debug-frontend-20250212-838542710107527339
fix(ai): frontend console error — strip xs on localhost (agent)
2026-01-30 13:58:37 -05:00
google-labs-jules[bot]andPR0M3TH3AN 53a14a0dfe fix(ai): cleanup logging and use effective magnet in webtorrent.js
This commit refactors `js/webtorrent.js` to ensure the `stripXsParameter` helper is correctly used and its result (`effectiveMagnetURI`) is passed to `client.add()`.

- Refactored logic to use `effectiveMagnetURI` variable.
- Cleaned up conditional logging.
- Ensured consistent usage in `streamVideo`.

Tests run:
- `npm run lint`
- `npm run test:unit:shard1`
- `python3 scripts/agent/debug_frontend.py` (verified error is gone)

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 18:57:43 +00:00
google-labs-jules[bot]andPR0M3TH3AN 4f40025b9d fix(ai): frontend console error — strip xs on localhost (agent)
Diagnosed a CORS error on local development environment caused by WebTorrent fetching `.torrent` files from R2 buckets (via `xs` parameter) that do not allow localhost origin.

Modified `js/webtorrent.js` to strip the `xs` parameter from magnet links when running on `localhost` or `127.0.0.1`. This prevents the browser from attempting the blocked fetch request, resolving the console error while maintaining functionality (falling back to DHT/peers).

Verified using `scripts/agent/debug_frontend.py` which captures frontend console logs via Playwright.

Tests run:
- `npm run lint`
- `npm run test:unit:shard1`
- `python3 scripts/agent/debug_frontend.py` (verified error is gone)

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 18:53:25 +00:00
thePR0M3TH3AN 6a55bd9a60 Merge pull request #1988 from PR0M3TH3AN/fix-auth-race-condition-7254158584929414727
Fix race condition in user list loading during login
2026-01-30 12:43:54 -05:00
google-labs-jules[bot]andPR0M3TH3AN 8373529c76 fix(app): sequence user list loading after profile relays are initialized
Prior to this change, user-specific lists (block lists, subscriptions, hashtag preferences, DMs, NWC settings) were fetched concurrently with the profile/relay initialization in `handleAuthLogin`. This caused a race condition where the application would attempt to fetch sensitive user data using default relays instead of the user's preferred relays, often resulting in empty or stale data.

This patch refactors `handleAuthLogin` in `js/app.js` to chain the loading of these lists to the completion of `profileStatePromise` (which ensures relays are loaded via `postLoginPromise`). This guarantees that the correct relays are used for fetching user-specific data.

Also defines `dmStatePromise`, `nwcPromise` and `hashtagPreferencesPromise` which were previously referenced but seemingly undefined in the scope, ensuring proper promise tracking.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 17:41:47 +00:00
google-labs-jules[bot]andPR0M3TH3AN 962f943b53 fix(app): sequence user list loading after profile relays are initialized
Prior to this change, user-specific lists (block lists, subscriptions, hashtag preferences, DMs, NWC settings) were fetched concurrently with the profile/relay initialization in `handleAuthLogin`. This caused a race condition where the application would attempt to fetch sensitive user data using default relays instead of the user's preferred relays, often resulting in empty or stale data.

This patch refactors `handleAuthLogin` in `js/app.js` to chain the loading of these lists to the completion of `profileStatePromise` (which ensures relays are loaded via `postLoginPromise`). This guarantees that the correct relays are used for fetching user-specific data.

Also defines `dmStatePromise`, `nwcPromise` and `hashtagPreferencesPromise` which were previously referenced but seemingly undefined in the scope, ensuring proper promise tracking.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 17:35:39 +00:00
google-labs-jules[bot]andPR0M3TH3AN 9481de9e0a fix(app): sequence user list loading after profile relays are initialized
Prior to this change, user-specific lists (block lists, subscriptions, hashtag preferences, DMs, NWC settings) were fetched concurrently with the profile/relay initialization in `handleAuthLogin`. This caused a race condition where the application would attempt to fetch sensitive user data using default relays instead of the user's preferred relays, often resulting in empty or stale data.

This patch refactors `handleAuthLogin` in `js/app.js` to chain the loading of these lists to the completion of `profileStatePromise` (which ensures relays are loaded via `postLoginPromise`). This guarantees that the correct relays are used for fetching user-specific data.

Also defines `dmStatePromise`, `nwcPromise` and `hashtagPreferencesPromise` which were previously referenced but seemingly undefined in the scope, ensuring proper promise tracking.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 17:25:07 +00:00
thePR0M3TH3AN b8fad92b25 Merge pull request #1986 from PR0M3TH3AN/fix-nip07-decryption-13328665886531040373
fix(nostr): correctly resolve signer capabilities when methods are present
2026-01-30 11:43:25 -05:00
thePR0M3TH3AN cd6e8e9f27 Merge pull request #1987 from PR0M3TH3AN/load-relays-before-fetching-profile-7456935442893055659
Load user relays before fetching profile and feed
2026-01-30 11:41:33 -05:00
google-labs-jules[bot]andPR0M3TH3AN cfb395ff1a fix(tests): update expected relay health state in unit test
This update aligns `tests/services/relay-health-service.test.mjs` with the actual state object structure used in `RelayHealthService`, which now includes `consecutiveFailures` and `lastUserLogAt` properties. This fixes a CI failure in the `agent-review` job.

The previous fix for `tests/app-batch-fetch-profiles.test.mjs` (duplicate variable) is also included in this branch history.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 16:36:27 +00:00
google-labs-jules[bot]andPR0M3TH3AN fdc070479b Optimize post-login sequence to load relays before other data
Prioritizes fetching the user's relay list (NIP-65) immediately after login, ensuring that subsequent data fetches (profile, contact list, DMs, feed) utilize the user's preferred relays instead of default ones. This prevents "slow" or incomplete data loading issues caused by relying on defaults.

- Refactored `authService.applyPostLoginState` to sequence relay loading before profile/block loading.
- Refactored `app.handleAuthLogin` to await relay loading before initiating dependent fetches (Hashtags, Moderation, DMs, NWC, Lists, Feed).
- Updated unit tests in `tests/auth-service.test.mjs` to verify sequential execution and correct return values.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 16:34:12 +00:00
google-labs-jules[bot]andPR0M3TH3AN 991d166254 fix(tests): remove duplicate variable declaration in profile batch fetcher test
This fixes a syntax error in `tests/app-batch-fetch-profiles.test.mjs` where `originalReadRelays` was declared twice, causing the CI `agent-review` job (and subsequent deploy checks) to fail.

The underlying NIP-07 decryption fix (correctly resolving signer capabilities) remains in place from the previous commit.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 16:26:31 +00:00
google-labs-jules[bot]andPR0M3TH3AN 730618efa8 fix(nostr): correctly resolve signer capabilities when methods are present
This fixes a critical issue where valid NIP-07 signers were treated as incapable of NIP-44/NIP-04 operations if their initial `capabilities` flag was false, even if the necessary methods (e.g., `nip44Decrypt`) were subsequently added or already present.

This addresses errors like "Gift wrap events require a NIP-44 decryptor" for users with valid extensions.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 16:20:13 +00:00
thePR0M3TH3AN 8a3e337e97 Merge pull request #1985 from PR0M3TH3AN/ai/fuzz-suite-20260130-14030343412094288093
Add fuzz testing suite for Nostr schemas, DM decryptor, and Magnet utils
2026-01-30 11:14:31 -05:00
google-labs-jules[bot]andPR0M3TH3AN dc2dc70b69 test(fuzz): add fuzzing harnesses for schemas, dm, and magnet utils
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 16:14:02 +00:00
thePR0M3TH3AN 35698340a8 Merge pull request #1984 from PR0M3TH3AN/codex/add-relay-health-panel-to-ui
Add relay health summary and persistent failure logging
2026-01-30 11:08:15 -05:00
thePR0M3TH3AN 09c0ac8127 Add relay health summary banner 2026-01-30 11:08:02 -05:00
thePR0M3TH3AN 93f78e60ee Merge pull request #1968 from PR0M3TH3AN/ai/reproducers-popover-video-20260129-656412173162674175
chore(ai): add minimal reproducers for known bugs
2026-01-30 11:07:07 -05:00
thePR0M3TH3AN 9c8cc465ce Merge pull request #1983 from PR0M3TH3AN/codex/improve-websocket-stability-and-ui-responsiveness
Add per-relay backoff and rate-limited relay summary logging
2026-01-30 11:01:30 -05:00
thePR0M3TH3AN 6c8349fdfb Add relay backoff and summary logging 2026-01-30 11:01:17 -05:00
thePR0M3TH3AN 063f0d0305 Merge pull request #1979 from PR0M3TH3AN/ai/doc-client-20250224-5696189605440496000
chore(ai): document js/nostr/client.js
2026-01-30 11:00:55 -05:00
thePR0M3TH3AN 652e9a22d7 Merge pull request #1981 from PR0M3TH3AN/ds-audit/2024-05-22-5966333681015751836
Daily Design System Audit Report
2026-01-30 11:00:34 -05:00
google-labs-jules[bot]andPR0M3TH3AN e2b3ab82c9 fix(test): resolve duplicate declaration in batch fetch profile test and fix nip07 permission race
Resolves a SyntaxError where 'originalReadRelays' was declared twice in 'tests/app-batch-fetch-profiles.test.mjs', causing CI failures.
Also fixes a race condition in `js/nostr/client.js` where NIP-07 permission upgrades were not awaited, causing `tests/nostr-login-permissions.test.mjs` to fail. Updated tests to accommodate the multi-pass login flow.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:59:58 +00:00
google-labs-jules[bot]andPR0M3TH3AN 1d885091cf fix: stabilize nostr login permissions test
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:56:13 +00:00
google-labs-jules[bot]andPR0M3TH3AN 65f28991a7 fix(test): remove duplicate variable declaration in batch fetch profile test
Resolves a SyntaxError where 'originalReadRelays' was declared twice in 'tests/app-batch-fetch-profiles.test.mjs', causing CI failures. This change ensures the test file parses and runs correctly.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:51:44 +00:00
google-labs-jules[bot]andPR0M3TH3AN dd13f735d9 fix: ensure jsdom for tests and resolve syntax error in batch fetch test
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:49:04 +00:00
thePR0M3TH3AN 03475a808e Merge pull request #1982 from PR0M3TH3AN/codex/implement-relay-sanitization-and-health-filtering
Improve relay sanitization and health filtering
2026-01-30 10:48:51 -05:00
thePR0M3TH3AN 5a5fd50641 Improve relay sanitization and health checks 2026-01-30 10:48:28 -05:00
google-labs-jules[bot]andPR0M3TH3AN c51f5344d9 chore(design): daily design system audit report
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:40:13 +00:00
google-labs-jules[bot]andPR0M3TH3AN b0b88c03d0 fix: ensure jsdom dependency is installed for tests
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:37:58 +00:00
google-labs-jules[bot]andPR0M3TH3AN 3e08479d04 fix: resolve syntax error in profile batch fetch test
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:34:20 +00:00
thePR0M3TH3AN 368bc2d63d Merge pull request #1980 from PR0M3TH3AN/codex/clarify-dm-errors-for-missing-nip-44-support
Handle NIP-44 decryptor errors in DM panel
2026-01-30 10:32:55 -05:00
thePR0M3TH3AN 25ac2a2c6b Handle NIP-44 decryptor DM errors 2026-01-30 10:32:40 -05:00
google-labs-jules[bot]andPR0M3TH3AN 3862415340 chore(ai): doc js/nostr/client.js (agent)
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:31:06 +00:00
thePR0M3TH3AN 035291bfa6 Merge pull request #1977 from PR0M3TH3AN/perf/optimize-critical-paths-3892933543654891645
Optimize critical performance paths to prevent high CPU/GPU usage
2026-01-30 10:29:47 -05:00
thePR0M3TH3AN 6d6407d5a6 Merge pull request #1978 from PR0M3TH3AN/codex/reduce-login-latency-by-adjusting-permissions
Defer NIP‑07 encryption permissions; request core permissions at login
2026-01-30 10:29:12 -05:00
thePR0M3TH3AN abdfa4b68b Defer NIP-07 encryption permissions 2026-01-30 10:29:00 -05:00
google-labs-jules[bot]andPR0M3TH3AN a0f893ace6 perf: optimize critical rendering and data processing paths
- Refactor `AmbientBackground` to use `ResizeObserver` instead of polling layout in animation loop.
- Implement async chunking for `ExploreDataService` to prevent main thread blocking during heavy calculations.
- Throttle `UrlHealthController` video probes to a maximum of 3 concurrent requests to prevent resource exhaustion.
- Document optimization tasks in `OPTIMIZATION_TASKS.md`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:27:25 +00:00
thePR0M3TH3AN 0e9f9204a1 Merge pull request #1976 from PR0M3TH3AN/codex/update-signer-hydration-for-nip-07
Support NIP‑07 hydration and refresh NIP‑44 capabilities on active signer
2026-01-30 10:16:01 -05:00
thePR0M3TH3AN 2a0a0a0427 Update NIP-07 signer hydration 2026-01-30 10:15:50 -05:00
thePR0M3TH3AN 36e96306f5 Merge pull request #1975 from PR0M3TH3AN/codex/add-caching-for-probe-results
Cache and dedupe hosted URL probes
2026-01-30 10:11:45 -05:00
thePR0M3TH3AN 2007e53b39 Add probe caching and dedupe for playback 2026-01-30 10:11:31 -05:00
thePR0M3TH3AN b246e8a37b Merge pull request #1974 from PR0M3TH3AN/codex/update-health-probe-polling-logic
Tighten torrent probe polling and dedupe in-flight probes
2026-01-30 10:07:39 -05:00
thePR0M3TH3AN 8a2ee7beae Tighten torrent probe polling 2026-01-30 10:07:28 -05:00
thePR0M3TH3AN cc7fe64e90 Merge pull request #1946 from PR0M3TH3AN/ai/dead-code-20240123-13702536329573366933
chore(ai): remove dead code (agent)
2026-01-30 10:05:35 -05:00
thePR0M3TH3AN 8637cff173 Merge pull request #1971 from PR0M3TH3AN/ai/docs-update-YYYYMMDD-1055396062770171148
Update documentation and build scripts
2026-01-30 10:04:58 -05:00
thePR0M3TH3AN 1956be2356 Merge pull request #1959 from PR0M3TH3AN/ai/todo-triage-15444387951313537222
chore(ai): triage TODOs (TODO)
2026-01-30 10:04:29 -05:00
thePR0M3TH3AN 8bb976e4e2 Merge pull request #1973 from PR0M3TH3AN/codex/refactor-torrent-status-interval-management
Consolidate torrent status mirroring and add visibility-aware interval management
2026-01-30 10:03:58 -05:00
thePR0M3TH3AN 8cdeebed03 Consolidate torrent status interval handling 2026-01-30 10:03:47 -05:00
google-labs-jules[bot]andPR0M3TH3AN e482d32650 chore(ai): remove dead code (agent)
Removed unused exports and functions identified as dead code.
- Removed unused exports from `js/utils/storage.js`, `js/utils/storagePointer.js`, `js/utils/videoTags.js`, `js/ui/moderationCopy.js`.
- Removed unused function `updateTagPillStrip` from `js/ui/components/tagPillList.js` and associated tests.
- Updated `tests/utils/video-tags.test.mjs` to remove test for private function.
- Added `artifacts/depcheck.json` showing dependency analysis.
- Fixed unit test mock for `ProfileModalController` to include `hashtagPreferencesService.load`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-30 15:03:18 +00:00