Commit Graph
4012 Commits
Author SHA1 Message Date
google-labs-jules[bot]andPR0M3TH3AN c81f71b6d2 fix(client): track and filter unreachable relays to prevent timeouts
Introduces `unreachableRelays` tracking in `NostrClient` to identify relays that fail connection during initialization.
Updates fetch operations (`fetchListIncrementally`, `subscribeVideos`, etc.) to use `getHealthyRelays`, filtering out known bad relays to prevent `SimplePool` timeouts (7s) from blocking the application.
This resolves slow loading and app breakage when the user's persistent configuration contains dead relays.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-26 19:55:05 +00:00
thePR0M3TH3AN 4a9d771689 Merge pull request #1751 from PR0M3TH3AN/fix-hashtag-preferences-reliability-11590046793499190431
Fix Hashtag Preferences Reliability
2026-01-26 14:31:54 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6a2432dd4c fix(nostr): anchor hashtag preferences fetch to local state
- Updated `NostrClient.fetchListIncrementally` to accept a `since` override.
- Updated `HashtagPreferencesService.load` to pass `since` based on local cache timestamp.
- Ensures preferences are refreshed if local state is stale or missing, overriding potentially incorrect `SyncMetadataStore` state.
- Added regression tests for `fetchListIncrementally` since parameter logic.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-26 19:21:38 +00:00
thePR0M3TH3AN e970098edd Merge pull request #1750 from PR0M3TH3AN/subscribe-button-fix-16941923470046179700
Fix subscribe button responsiveness and list persistence
2026-01-26 13:56:52 -05:00
google-labs-jules[bot]andPR0M3TH3AN 73541168f7 fix(subscriptions): improve reliability of list loading and button responsiveness
- Implemented optimistic UI updates for the channel subscribe button to improve responsiveness.
- Fixed a race condition in `js/subscriptions.js` and `js/services/hashtagPreferencesService.js` where lists were wiped on refresh due to `profileCache.activePubkey` not being initialized in time. Now using `profileCache.getProfileData(pubkey, ...)` to ensure the correct cache entry is loaded.
- Validated with targeted unit tests.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-01-26 18:56:34 +00:00
thePR0M3TH3AN 560dcf96b0 Merge pull request #1749 from PR0M3TH3AN/fix-syntax-error-s3uploadservice-8597746335056404895
Fix SyntaxError in s3UploadService.js
2026-01-26 13:30:20 -05:00
google-labs-jules[bot] f321477455 fix(s3): remove duplicate normalizedInfoHash declaration
Removes a redundant `const normalizedInfoHash` declaration in `s3UploadService.js` that caused a `SyntaxError` and prevented the application from loading. The variable is already declared in the outer scope of the `try` block.
2026-01-26 18:29:42 +00:00
thePR0M3TH3AN 5123944a7d update 2026-01-26 13:23:11 -05:00
thePR0M3TH3AN f1a5d6f3ed Merge pull request #1748 from PR0M3TH3AN/revert-1747-improve-profile-modal-fetching-11060559516076687952
Revert "perf(profile): implement stale-while-revalidate for lists and messages"
2026-01-26 13:19:21 -05:00
thePR0M3TH3AN 27b71ba9bb Revert "perf(profile): implement stale-while-revalidate for lists and messages" 2026-01-26 13:18:51 -05:00
thePR0M3TH3AN b570350412 Merge pull request #1747 from PR0M3TH3AN/improve-profile-modal-fetching-11060559516076687952
perf(profile): implement stale-while-revalidate for lists and messages
2026-01-26 13:17:25 -05:00
google-labs-jules[bot] d61074e200 perf(profile): implement stale-while-revalidate for lists and messages 2026-01-26 18:16:45 +00:00
thePR0M3TH3AN 8a1d6d5e55 Merge pull request #1746 from PR0M3TH3AN/codex/refactor-buildr2key-to-use-deterministic-prefix
Refactor R2 key generation to deterministic identifier prefix
2026-01-26 12:47:18 -05:00
thePR0M3TH3AN c02db755ac Refactor R2 key prefix for deterministic identifiers 2026-01-26 12:47:05 -05:00
thePR0M3TH3AN 00b0e85438 Merge pull request #1745 from PR0M3TH3AN/codex/define-videorootid-for-series-identifier
Persist file fingerprints (infoHash / SHA256) separately from stable videoRootId
2026-01-26 12:26:17 -05:00
thePR0M3TH3AN 82986650ce Store video file fingerprints alongside series IDs 2026-01-26 12:25:54 -05:00
thePR0M3TH3AN f907f96e1b Merge pull request #1744 from PR0M3TH3AN/codex/update-publishvideo-to-handle-optional-videorootid
Reuse upload-provided series identifier for publishVideo (videoRootId + d tag)
2026-01-26 12:13:40 -05:00
thePR0M3TH3AN 3006a75602 Allow publish video series identifiers 2026-01-26 12:13:26 -05:00
thePR0M3TH3AN bf69acedec Merge pull request #1741 from PR0M3TH3AN/enhance-s3-storage-ui-9302963025146887048
Enhance Custom S3 Storage UI and Configuration
2026-01-26 11:56:22 -05:00
thePR0M3TH3AN 0ee74146dd Merge pull request #1742 from PR0M3TH3AN/ai/fuzz-targets-20231026-13475624679443815617
Add fuzz testing scripts
2026-01-26 11:55:59 -05:00
google-labs-jules[bot] a1cb6377a6 feat(agent): add fuzz testing scripts for nostr schemas, DM decryptor, and magnet utils 2026-01-26 16:53:30 +00:00
google-labs-jules[bot] 6e3562b64b feat(ui): enhance custom S3 storage configuration with helper text and force path style option
- Add helper text to the S3 storage configuration form to guide users on Endpoint URL format.
- Add 'Force Path Style' checkbox to S3 storage configuration to support MinIO and other S3-compatible providers that require it.
- Update `ProfileModalController` to toggle visibility of these new fields based on the selected provider.
- Update `ProfileModalController` to save and load the `forcePathStyle` setting.
- Update `tests/ui/storageService.test.mjs` to verify persistence of `forcePathStyle`.
2026-01-26 16:50:48 +00:00
thePR0M3TH3AN 178f75c093 update 2026-01-26 11:38:49 -05:00
thePR0M3TH3AN 20241b584e update 2026-01-26 11:36:33 -05:00
thePR0M3TH3AN f2344a25d6 Merge pull request #1739 from PR0M3TH3AN/fix-playback-toggle-timeout-18406339072238976341
Fix playback timeout fallback when source is forced
2026-01-26 11:15:24 -05:00
google-labs-jules[bot] 4823486ed7 fix(playback): disable timeout and fallback when source is forced by user 2026-01-26 16:12:12 +00:00
thePR0M3TH3AN f5203ddb47 Merge pull request #1738 from PR0M3TH3AN/feat/playback-timeout-fallback-8232196413966424077
feat(playback): add configurable timeout for initial playback start
2026-01-26 10:57:07 -05:00
google-labs-jules[bot] 7921ab6a2e feat(playback): add configurable timeout for initial playback start
Introduces a race condition between the primary playback source (URL or Torrent) and a configurable timeout. If the primary source fails to reach the 'playing' state within the timeout window, the system automatically falls back to the alternative source.

- Adds `DEFAULT_PLAYBACK_START_TIMEOUT` to instance config (3000ms).
- Updates `PlaybackService` to implement timeout logic using `withTimeout` wrapper.
- Ensures proper cleanup of stalled attempts (resetting video element, destroying torrent client).
2026-01-26 15:55:11 +00:00
thePR0M3TH3AN c650597da1 Merge pull request #1737 from PR0M3TH3AN/ai/doc-nip46-client-20241026-1908093676591025314
chore(ai): document js/nostr/nip46Client.js
2026-01-26 10:37:09 -05:00
google-labs-jules[bot] 9d56dc7d0b chore(ai): doc js/nostr/nip46Client.js (agent) 2026-01-26 15:34:58 +00:00
thePR0M3TH3AN e795c74a8e Merge pull request #1736 from PR0M3TH3AN/configurable-playback-source-1228416119579415834
feat: make default playback source configurable (url/torrent)
2026-01-26 10:23:21 -05:00
google-labs-jules[bot] c22037a575 feat: make default playback source configurable
- Added `DEFAULT_PLAYBACK_SOURCE` to `config/instance-config.js` to allow choosing between "url" (default) and "torrent" priority.
- Updated `js/constants.js` to derive `URL_FIRST_ENABLED` flag from the configuration.
- Refactored `PlaybackService.execute()` in `js/services/playbackService.js` to robustly support "Torrent First" logic with fallback to URL, while maintaining "URL First" with fallback to Torrent.
- Added unit tests in `tests/services/playbackService_order.test.mjs` to verify playback order and fallback mechanics.
2026-01-26 15:13:56 +00:00
thePR0M3TH3AN 0c2afb2a2a Merge pull request #1735 from PR0M3TH3AN/ai/docs-update-20250222-9018200966737497518
Update documentation for quickstarts and contributing guidelines
2026-01-26 09:39:18 -05:00
thePR0M3TH3AN b248850aad Merge pull request #1734 from PR0M3TH3AN/fix-nip07-init-retry-2139027211423598828
Retry NIP-07 extension detection to improve reliability
2026-01-26 09:39:01 -05:00
google-labs-jules[bot] ee48362c37 docs(ai): update quickstart and contributing (agent) 2026-01-26 14:38:31 +00:00
google-labs-jules[bot] f66a2e5245 fix(nostr): retry NIP-07 detection on timeout
Increases the robustness of NIP-07 extension detection by implementing a retry loop in `NostrClient.login`. If the initial detection (default 5s) times out, the client will retry up to 3 times with a 1-second delay between attempts, effectively handling slower injection scenarios or race conditions during page load.

- Modified `js/nostr/client.js` to wrap `waitForNip07Extension` in a retry loop.
- Validated with a reproduction test case simulating late injection.
2026-01-26 14:34:02 +00:00
thePR0M3TH3AN 4a1b58b777 Merge pull request #1733 from PR0M3TH3AN/ai/tests-nostr-client-20250212-10572128665581621917
Add Unit Tests for Core Nostr Modules
2026-01-26 09:22:26 -05:00
google-labs-jules[bot] 603b0b1a69 test(ai): add unit tests for NostrClient and NostrService (agent) 2026-01-26 14:09:53 +00:00
thePR0M3TH3AN af31262873 Merge pull request #1732 from PR0M3TH3AN/codex/verify-and-update-moderation-block-behavior
Normalize block lookups for author moderation
2026-01-26 08:02:17 -05:00
thePR0M3TH3AN 802c70a0e3 Normalize block checks for author moderation 2026-01-26 08:01:40 -05:00
thePR0M3TH3AN 50ec850706 Merge pull request #1730 from PR0M3TH3AN/codex/add-unit-tests-for-r2service
R2Service: add DI for storage helpers and unit tests for bucket selection
2026-01-26 07:47:06 -05:00
thePR0M3TH3AN 84468cbed5 Add R2 bucket config tests 2026-01-26 07:46:54 -05:00
thePR0M3TH3AN e092c7f7cc Merge pull request #1729 from PR0M3TH3AN/codex/fix-r2-upload-issues-and-cors-errors
Fix R2 bucket resolution to honor configured bucket metadata
2026-01-26 07:41:24 -05:00
thePR0M3TH3AN 3945c9cd3e Merge branch 'unstable' into codex/fix-r2-upload-issues-and-cors-errors 2026-01-26 07:41:16 -05:00
thePR0M3TH3AN 16b8656521 Fix R2 bucket resolution and add coverage 2026-01-26 07:40:23 -05:00
thePR0M3TH3AN 3303ed16af Merge pull request #1727 from PR0M3TH3AN/ai/reproducers-moderation-ui-20260126-8388654315083971859
Add minimal reproducer for Moderation UI bug
2026-01-26 07:38:45 -05:00
thePR0M3TH3AN 55e6ec0cdf Merge pull request #1728 from PR0M3TH3AN/codex/update-verifypublicaccess-to-use-configured-bucket
Use configured bucket for R2 verification
2026-01-26 07:37:38 -05:00
thePR0M3TH3AN 5759b9437a Use configured bucket for R2 verification 2026-01-26 07:37:24 -05:00
google-labs-jules[bot] 5f1f659308 Add minimal reproducer for Moderation UI bug
- Adds examples/reproducers/issue-moderation-ui/repro.spec.ts
- Adds examples/reproducers/issue-moderation-ui/README.md
- Adds examples/reproducers/issue-moderation-ui/playwright.config.ts
- Reproduces failure in 'Show anyway' button visibility check
2026-01-26 12:37:03 +00:00
thePR0M3TH3AN 80ac1f1d5c Merge pull request #1726 from PR0M3TH3AN/codex/update-bucket-usage-in-r2service.js
Use meta.bucket when resolving R2 uploads
2026-01-26 07:35:52 -05:00