Commit Graph
58 Commits
Author SHA1 Message Date
thePR0M3TH3AN 6116b6a7db Add relay health panel and telemetry opt-in 2026-01-19 14:03:15 -05:00
thePR0M3TH3AN 1fbfee5915 Add DM decrypt limits and caches 2026-01-19 13:51:48 -05:00
thePR0M3TH3AN 3c75ac8c3f Add DM read receipts and typing indicators 2026-01-19 13:29:40 -05:00
thePR0M3TH3AN 9ea9fe2f08 Add DM attachment upload and preview flow 2026-01-19 12:51:34 -05:00
thePR0M3TH3AN 6ab445011c Merge pull request #1390 from PR0M3TH3AN/ai/doc-nostr-client-20231026-4334329458905976061
chore(ai): document js/nostr/client.js
2026-01-19 10:34:12 -05:00
thePR0M3TH3AN 51b550adaa Improve DM relay selection fallback handling 2026-01-19 10:31:13 -05:00
google-labs-jules[bot] 38f1594243 chore(ai): doc js/nostr/client.js (agent)
- Added JSDoc comments to `NostrClient` class and methods.
- Added JSDoc comments to `EventsCacheStore`.
- Created `docs/nostr-client-overview.md` with high-level documentation.
- Fixed a race condition in `tests/nostr-delete-flow.test.mjs`.
2026-01-19 15:18:36 +00:00
thePR0M3TH3AN 4566c96330 Add NIP-17 DM delivery option 2026-01-19 10:05:00 -05:00
thePR0M3TH3AN 4cc51d7a79 Add NIP-44 verification to DM decrypt worker 2026-01-19 09:40:51 -05:00
thePR0M3TH3AN b05e898391 Add worker DM decrypt and persistence 2026-01-19 08:49:58 -05:00
thePR0M3TH3AN 56f2c1807c Implement worker-based NIP-04 DM sending 2026-01-19 08:39:43 -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 0a1ccc2bc9 Harden signer session persistence 2026-01-18 11:10:40 -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 b0d0dbdba7 Add signer capabilities for DM encryption 2026-01-18 09:21:08 -05:00
thePR0M3TH3AN d567bdbdcf Use signer adapters in nostr client flows 2026-01-18 09:08:22 -05:00
thePR0M3TH3AN 028d1164f9 Add signer registry helpers 2026-01-18 09:04:12 -05:00
thePR0M3TH3AN cef64aa5d3 refactor: extract signer cipher helpers 2026-01-18 08:56:53 -05:00
google-labs-jules[bot] a2de2b550d Fix hashtag preferences loading and profile persistence issues
- Migrated Kind 0 profile metadata storage to unified `profileCache.js` with partitioning and persistence.
- Added `defaultDTag` for hashtag preferences in `cachePolicies.js` to ensure consistent key resolution.
- Updated `hashtagPreferencesService.js` to use `profileCache` and implemented legacy data migration.
- Added `handleEvent` to `NostrClient` to centrally ingest Kind 0 events into the cache.
- Updated `authService.js` and `cache.js` to delegate profile operations to the unified cache system.
- Added `PROFILE_METADATA` schema to `nostrEventSchemas.js`.
2026-01-18 02:09:04 +00:00
google-labs-jules[bot] b49a294dc0 feat: isolate view telemetry and restrict session actor publishing
- Add `isSessionActor` helper to `js/nostr/sessionActor.js` to identify ephemeral keys.
- Update `js/nostr/viewEvents.js` to namespace view deduplication caches by `actorPubkey` to prevent data leakage between sessions.
- Block comment publishing for session actors in `js/nostr/commentEvents.js`.
- Block watch history list publishing for session actors in `js/nostr/client.js`.
- Block user block list publishing for session actors in `js/userBlocks.js`.
- Block hashtag preference publishing for session actors in `js/services/hashtagPreferencesService.js`.
- Add inline documentation clarifying variable sources.
2026-01-17 22:48:31 +00:00
google-labs-jules[bot] 3deb8d08f0 Implement profile-scoped caching and signer invalidation logic
- Updated `profileCache.js` to support clearing runtime memory on signer change.
- Updated `NostrClient` to trigger `clearSignerRuntime` on `setActiveSigner`.
- Updated list services (`subscriptions`, `userBlocks`, `hashtagPreferences`, `watchHistory`) to listen for `runtimeCleared` and reload data.
- Updated `NostrClient` sync metadata methods to default to the active profile pubkey.
- Added `partition-updated` event emission to `profileCache`.
2026-01-17 21:43:35 +00:00
google-labs-jules[bot] 9d06f43321 feat: implement incremental fetching for Nostr lists
Implements a `SyncMetadataStore` to persist last-seen timestamps for replaceable lists (Kind 10000, 30000, 30002, 30015).
Adds `fetchListIncrementally` helper to `NostrClient` which performs per-relay `since` queries.
Updates `SubscriptionsManager`, `UserBlockListManager`, `HashtagPreferencesService`, and `adminListStore` to utilize incremental fetching.
Prevents local cache wipes when incremental fetches return empty results (indicating "no updates").
2026-01-17 21:11:48 +00:00
google-labs-jules[bot] 86ffb8cb2a Define centralized cache policies and wire them into fetchers 2026-01-17 19:12:09 +00:00
google-labs-jules[bot] 4f1b180c94 docs: improve architectural comments in NostrClient 2026-01-17 05:21:45 +00:00
google-labs-jules[bot] 065e74769c Refactor NIP-46 login UI to be cleaner and QR-first
- Simplified `components/login-modal.html` to center the QR code and use a "Copy Link" button instead of a large textarea.
- Updated `js/ui/loginModalController.js` to support the new DOM structure and error handling.
- Added `docs/nip46-roadmap.md` to document current state and future features.
- Fixed `NostrClient.destroy()` usage (synchronous void method) in `js/nostr/client.js`.
- Relaxed NIP-46 `connect` response validation in `js/nostr/client.js` and `js/nostr/nip46Client.js` to accept "ack" (case-insensitive) as a valid success signal, preventing timeouts with signers that do not echo the secret.
2026-01-16 20:45:58 +00:00
google-labs-jules[bot] bdc86aaef6 Fix future timestamp bug and improve loading spinner UX 2026-01-13 14:48:56 +00:00
thePR0M3TH3AN db2b08378d Add session actor hook for moderation sync 2026-01-11 08:50:22 -05:00
google-labs-jules[bot] c934e243c3 feat: warn on magnet-only uploads and make video fetch limit configurable
- Add a confirmation dialog in `UploadModal.js` when a user uploads a video with only a magnet link to warn about potential data loss.
- Replace the hardcoded limit of 300 in `NostrClient.fetchVideos` with a configurable limit that respects `DEFAULT_VIDEO_REQUEST_LIMIT` and `MAX_VIDEO_REQUEST_LIMIT`, improving client-side scalability.
2026-01-08 01:24:31 +00:00
google-labs-jules[bot] 1b577d3326 Refactor: remove legacy compatibility systems
- Removed `WATCH_HISTORY_LEGACY_KIND` (30078) support from watch history fetch and config.
- Removed `WATCH_HISTORY_LEGACY_LIST_IDENTIFIERS` from config.
- Removed `LEGACY_EVENTS_STORAGE_KEY` (bitvidEvents) migration logic from client.
- Removed `loadLegacyAdminState` and `LEGACY_STORAGE_KEYS` from admin list store.
- Updated tests to remove references to legacy kinds.
2026-01-06 19:48:55 +00:00
google-labs-jules[bot] a7b3f5572b Fix missing session actor for anonymous users
- Update `mintSessionActor` in `js/nostr/client.js` to support `nostr-tools` v2 `generateSecretKey` and properly handle `getPublicKey` input (hex vs bytes).
- Ensure `ensureSessionActor` awaits `ensureNostrTools()` before attempting to mint a new actor.
- This resolves the issue where video view events and watch history updates failed for non-logged-in users with a "missing-actor" error.
2026-01-06 02:38:56 +00:00
thePR0M3TH3AN 8a4e4754f2 Revert "fix(logs): suppress dm sync spam and allow local image paths" 2026-01-05 21:26:32 -05:00
google-labs-jules[bot] c64d70ad88 fix(nostr): restore session actor creation for view counts 2026-01-05 21:41:58 +00:00
google-labs-jules[bot] 8293caf6d3 Refactor watch history to use simplified monthly record schema 2026-01-05 14:44:45 +00:00
google-labs-jules[bot] 498d9cb5b2 Revise watch-history tags to use month IDs
Refactors the watch-history system to prioritize `YYYY-MM` month identifiers over legacy snapshot IDs in event tags, storage keys, and cross-module references. Updates event schemas, storage keying (v3), and client interfaces to align with the new month-based structure. Renames `snapshotId` parameters to `taskId` for republishing operations.
2026-01-05 14:21:53 +00:00
google-labs-jules[bot] 595d4cbe07 Refactor watch history to use single monthly event
Replaces the legacy chunked storage architecture with a single encrypted event per month.
- Renames `buildWatchHistoryChunkEvent` to `buildWatchHistoryEvent`.
- Updates `WatchHistoryManager` to publish and fetch single events, maintaining read compatibility for legacy chunks.
- Simplifies payload construction and removes chunk indexing logic.
- Updates tests to verify single-event publishing and legacy fallback.
2026-01-04 22:03:34 +00:00
thePR0M3TH3AN ba666bdaba Refactor watch history payload building 2026-01-03 13:57:46 -05:00
thePR0M3TH3AN db27c7f56a Refactor nostr event cache persistence 2026-01-02 15:33:51 -05:00
thePR0M3TH3AN ff07ed8e01 Add paging and limits to nostr video subscription 2026-01-02 14:11:41 -05:00
thePR0M3TH3AN a9f2c4ec37 update 2025-11-03 18:57:43 -05:00
thePR0M3TH3AN 3b4492461c Ensure video reverts always emit d tag 2025-10-30 14:43:19 -04:00
thePR0M3TH3AN 6eb8594e28 Add file hash support to NIP-94 mirrors 2025-10-30 12:41:49 -04:00
thePR0M3TH3AN 864447fc71 Preserve d tag when editing NIP-33 video notes 2025-10-30 09:22:15 -04:00
thePR0M3TH3AN f3007b9e0b Preserve d tag when editing nostr videos 2025-10-30 08:06:49 -04:00
thePR0M3TH3AN 2b22f0f739 Normalize NIP-94 MIME tags 2025-10-29 21:35:38 -04:00
thePR0M3TH3AN 487fc740da Gate EventEmitter listener warnings behind verbose mode 2025-10-27 14:58:09 -04:00
thePR0M3TH3AN 7de8eddcbe Throttle COUNT diagnostics unless verbose dev mode 2025-10-27 14:48:29 -04:00
thePR0M3TH3AN 27bafdd3de Add verbose dev mode toggle for COUNT warnings 2025-10-27 14:36:00 -04:00
thePR0M3TH3AN 4183a521d7 Shim SimplePool for legacy API expectations 2025-10-26 21:41:33 -04:00
thePR0M3TH3AN a534e20c10 Add DM decryptor and service integrations 2025-10-26 19:07:30 -04:00