Commit Graph
3121 Commits
Author SHA1 Message Date
google-labs-jules[bot] eaedf3e36c feat: introduce NIP-46 request queue with throttling and priority
- Added `js/nostr/nip46Queue.js` to manage concurrent RPC requests.
- Updated `Nip46RpcClient` to serialize outgoing requests, preventing "rate-limited" errors.
- Implemented exponential backoff for retries when relays reject events due to rate limits.
- Added priority levels to `sendRpc` to prioritize user actions (signing, connecting) over background tasks (decrypting).
- Verified with new unit tests in `tests/unit/nip46Queue.test.mjs`.
2026-01-18 17:40:12 +00:00
thePR0M3TH3AN 202c453e91 Merge pull request #1322 from PR0M3TH3AN/bugfix/hashtag-preferences-load-on-login-17645134283647080499
fix: ensure hashtag preferences load on login
2026-01-18 11:47:07 -05:00
google-labs-jules[bot] 2dd896044c fix: ensure hashtag preferences load on login
When a user logs in, `profileCache` emits a `profileChanged` event. Previously, `HashtagPreferencesService` only reset its state on this event, failing to fetch the new user's preferences. This commit updates the subscription handler to call `load(pubkey)` when a new profile is set, ensuring interests and disinterests are reliably synchronized.
2026-01-18 16:44:06 +00:00
thePR0M3TH3AN f9a49539f8 Merge pull request #1317 from PR0M3TH3AN/ai/fuzz-robustness-20250215-12620895249618793143
Add fuzz testing harnesses and robustness fixes
2026-01-18 11:43:49 -05:00
thePR0M3TH3AN 4d5d8b96f6 Merge pull request #1315 from PR0M3TH3AN/ai/doc-client-20231026-15350337132812859795
chore(ai): document js/nostr/client.js
2026-01-18 11:42:47 -05:00
thePR0M3TH3AN 0e2f0495ba Merge pull request #1312 from PR0M3TH3AN/ai/docs-update-20240523-6702486559021222440
Update documentation for Quickstart and Contributing
2026-01-18 11:41:51 -05:00
thePR0M3TH3AN f5eb90cc84 Merge pull request #1321 from PR0M3TH3AN/codex/update-documentation-for-signer-adapters
Add signer adapter documentation
2026-01-18 11:31:06 -05:00
thePR0M3TH3AN da7f62a372 Add signer adapter documentation 2026-01-18 11:30:43 -05:00
thePR0M3TH3AN 3cebdad46b Merge pull request #1320 from PR0M3TH3AN/codex/add-tests-for-nostr-adapters-and-registry
Add Nostr signer adapter, registry, and DM decryptor preference tests
2026-01-18 11:25:48 -05:00
thePR0M3TH3AN 84e9dcd2c1 Add nostr adapter and registry tests 2026-01-18 11:25:22 -05:00
thePR0M3TH3AN 4a7a1e036a Merge pull request #1318 from PR0M3TH3AN/codex/connect-persistence-helpers-for-nsec-and-nip-46
Harden signer session persistence and NIP-46 metadata storage
2026-01-18 11:13:51 -05:00
thePR0M3TH3AN 0a1ccc2bc9 Harden signer session persistence 2026-01-18 11:10:40 -05:00
google-labs-jules[bot] ec5fc23164 feat(fuzz): add input robustness testing harnesses and fixes
- Add fuzz testing scripts for `nostrEventSchemas.js`, `dmDecryptor.js`, and `magnetUtils.js` in `scripts/agent/`.
- Fix `build...` functions in `nostrEventSchemas.js` to handle `null`/`undefined` inputs.
- Fix `buildVideoPostEvent` to gracefully handle circular references in content serialization.
- Fix `normalizeAndAugmentMagnet` in `magnetUtils.js` to handle non-iterable `extraTrackers`.
- Include minimal reproducers for discovered crashes in `examples/reproducers/`.
2026-01-18 16:09:48 +00:00
thePR0M3TH3AN e4851e274a Merge pull request #1316 from PR0M3TH3AN/codex/add-promise-queue-utility-for-signevent
Serialize signer signEvent requests with queued signer and timeout
2026-01-18 10:58:56 -05:00
thePR0M3TH3AN 95bb462508 Serialize nostr signEvent requests 2026-01-18 10:58:19 -05:00
google-labs-jules[bot] 4af5879a6c chore(ai): doc js/nostr/client.js (agent) 2026-01-18 15:07:53 +00:00
thePR0M3TH3AN 745eb6ac48 Merge pull request #1314 from PR0M3TH3AN/codex/add-capabilities-field-to-signers
Add signer `capabilities` and prefer NIP-44 for DM encryption with NIP-04 fallback
2026-01-18 09:21:31 -05:00
thePR0M3TH3AN b0d0dbdba7 Add signer capabilities for DM encryption 2026-01-18 09:21:08 -05:00
thePR0M3TH3AN 519bb168aa Merge pull request #1313 from PR0M3TH3AN/codex/update-modules-to-use-getactivesigner
Refactor nostr signer access to use nostrClientFacade
2026-01-18 09:16:39 -05:00
thePR0M3TH3AN 52d2488d17 Refactor nostr signer access 2026-01-18 09:15:18 -05:00
google-labs-jules[bot] 4f2660a354 docs(ai): update quickstart and contributing (agent) 2026-01-18 14:12:27 +00:00
thePR0M3TH3AN 2410412450 Merge pull request #1311 from PR0M3TH3AN/codex/refactor-signers-with-adapter-factories
Use signer adapters in Nostr client login and NIP-46 flows
2026-01-18 09:08:38 -05:00
thePR0M3TH3AN d567bdbdcf Use signer adapters in nostr client flows 2026-01-18 09:08:22 -05:00
thePR0M3TH3AN 66f3c9f4b0 Merge pull request #1310 from PR0M3TH3AN/codex/extend-signer-management-in-nostrclientregistry
Add signer registry and active-signer hooks
2026-01-18 09:04:36 -05:00
thePR0M3TH3AN 028d1164f9 Add signer registry helpers 2026-01-18 09:04:12 -05:00
thePR0M3TH3AN 0ead956fc5 Merge pull request #1309 from PR0M3TH3AN/codex/move-createprivatekeycipherclosures-to-signerhelpers
refactor: extract signer cipher helpers
2026-01-18 08:57:59 -05:00
thePR0M3TH3AN cef64aa5d3 refactor: extract signer cipher helpers 2026-01-18 08:56:53 -05:00
thePR0M3TH3AN 46fed1eb10 Merge pull request #1308 from PR0M3TH3AN/codex/create-async-signer-api-module-and-adapters
Add signer interface and Nostr signer adapters
2026-01-18 08:53:11 -05:00
thePR0M3TH3AN a6ae684a98 Add signer interface and nostr adapters 2026-01-18 08:52:25 -05:00
thePR0M3TH3AN f8a1e336e6 Merge pull request #1307 from PR0M3TH3AN/ai/reproducers-1-20260118-13735674150690396798
Add minimal reproducer for SimilarContentCard thumbnail blur bug
2026-01-18 07:57:08 -05:00
thePR0M3TH3AN 96b9cf114a Merge pull request #1306 from PR0M3TH3AN/ai/tests-profileCache-20260118-4171977534236207089
Add unit tests for profileCache and appState
2026-01-18 07:56:04 -05: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
thePR0M3TH3AN 30597191c7 Merge pull request #1304 from PR0M3TH3AN/ai/onboarding-20260118-2854898587831741605
docs(ai): improve onboarding steps
2026-01-18 07:53:37 -05:00
thePR0M3TH3AN bcb4777d59 Merge pull request #1303 from PR0M3TH3AN/ai/interop-tests-20260118-15201644868147508755
Add Nostr protocol interop test script
2026-01-18 07:52:13 -05:00
thePR0M3TH3AN d6ff9765b2 Merge pull request #1302 from PR0M3TH3AN/telemetry-aggregation-tool-15692846024567566751
Telemetry Aggregation Tool
2026-01-18 07:50:43 -05:00
google-labs-jules[bot] eecba37d3e Add reproducer for SimilarContentCard thumbnail bug 2026-01-18 12:19:32 +00:00
google-labs-jules[bot] e11f44f2f2 test(ai): add unit tests for profileCache and appState (agent) 2026-01-18 11:15:34 +00: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] 09545c869c docs(ai): improve onboarding steps and add devcontainer
- Update README.md to recommend `npm ci` and include test steps.
- Update CONTRIBUTING.md with explicit development setup instructions.
- Add `.devcontainer/devcontainer.json` for reproducible Node 20 environment.
- Add audit report in `ai/reports/onboarding-20260118.md`.
2026-01-18 08:23:14 +00:00
google-labs-jules[bot] 82f92d420f feat(ai): add interop-test.mjs for Nostr protocol validation
Implements `scripts/agent/interop-test.mjs` to validate core Nostr operations
(Video Post, View Event, Encrypted DM) against a small set of public relays.
Ensures ephemeral keys are used and no private data is persisted.

Features:
- Ephemeral sender/receiver key generation.
- Polyfills for WebSocket, localStorage, and Crypto for Node.js environment.
- Verification of event signatures, IDs, and content shape.
- DM encryption/decryption roundtrip verification.
- Safe relay list usage (only 2 known relays).
2026-01-18 07:11:08 +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
thePR0M3TH3AN a82c66b760 Merge pull request #1301 from PR0M3TH3AN/fix-hashtag-reset-crash-11374645465269223196
Fix hashtag preferences crash and prevent data reset on load failure
2026-01-17 23:51:18 -05:00
google-labs-jules[bot] cc66fafcdd fix(hashtag-preferences): prevent crash and data loss on load failure
- fix `TypeError: Assignment to constant variable` in `HashtagPreferencesService.load` by changing `const` to `let` for `wasLoadedForUser`.
- Prevent existing cached preferences from being wiped when remote decryption fails.
2026-01-18 04:49:07 +00:00
thePR0M3TH3AN b2d3ae3286 Merge pull request #1300 from PR0M3TH3AN/feat/optimistic-filtered-videos-cache-11029654294546507650
feat: optimistic persistent filtered-videos cache
2026-01-17 23:33:11 -05:00
google-labs-jules[bot] d4779a0825 feat: optimistic persistent filtered-videos cache (localStorage) for faster initial grid render
- Adds `STORAGE_KEY_FILTERED_VIDEOS` and `MAX_PERSISTED_VIDEOS` constants.
- Implements `loadPersistedFilteredVideos` and `persistFilteredVideos` helper methods.
- Updates `loadVideos` to load persistent videos optimistically and emit "persistent-cache" updates.
- Ensures all persistent data is strictly re-filtered (blocked authors, NSFW, access control) before use.
- Skips emitting empty in-memory cache updates if optimistic data is available to prevent UI flashing.
- Persists fresh filtered results in `applyAndNotify` to keep cache up-to-date.
- Adds comprehensive verification script logic (tested via `scripts/verify-optimistic-cache.mjs` before cleanup).
2026-01-18 04:31:43 +00:00
thePR0M3TH3AN e1a12868e0 Merge pull request #1298 from PR0M3TH3AN/ai/refactor-torrent-status-20231027-751310548949696499
Refactor updateTorrentStatus to TorrentStatusController
2026-01-17 22:24:56 -05:00
thePR0M3TH3AN 2088234a3e Merge pull request #1297 from PR0M3TH3AN/ai/ci-health-20250212-3024044749559597461
CI Health: Fix flaky tests in comments and moderation services
2026-01-17 22:23:20 -05:00
thePR0M3TH3AN 7697a3ce2d Merge pull request #1296 from PR0M3TH3AN/fix-hashtag-prefs-profile-cache-16997779974733027289
Fix hashtag preferences loading and profile persistence issues
2026-01-17 22:21:58 -05:00
google-labs-jules[bot] 45b20bb58e refactor(ai): extract updateTorrentStatus from js/app.js (agent)
Moved torrent status update logic to `js/ui/torrentStatusController.js` to improve separation of concerns as per `AGENTS.md`. The controller accepts a `getVideoModal` accessor and an `onRemovePoster` callback to decouple it from direct `videoModal` or `Application` dependencies. Added unit tests in `tests/ui/torrentStatusController.test.mjs`.
2026-01-18 03:11:25 +00:00
google-labs-jules[bot] 7743572a22 chore(ai): CI health fixes (flaky tests) 2026-01-18 02:39:42 +00:00