Commit Graph
425 Commits
Author SHA1 Message Date
google-labs-jules[bot] 4c7230f540 Remove metadata storage and handling from watch history
Removes the metadata argument from `WatchHistoryService.publishView` and cleans up the associated caching and resolution logic in `watchHistory.js` and `watchHistoryFeed.js`. Deletes `js/watchHistoryMetadata.js` as it is no longer used.

This simplification ensures watch history strictly manages pointers and timestamps, leaving metadata resolution to higher-level consumers. It also reduces the payload size and complexity of persisted history records.

Tests have been updated to reflect the API changes.
2026-01-05 16:58:59 +00:00
google-labs-jules[bot] ac3873e5d7 Refactor watch history service to use idempotent monthly upsert logic.
Removes legacy snapshot/chunk retry scheduling in favor of a monthly upsert approach.
Updates state persistence to remove `pendingSnapshotId`.
Fixes race condition in `scheduleRepublishForQueue` by using selective queue pruning.
Ensures data is not lost on publish failure in `snapshot`.
Updates tests to align with new architecture.
2026-01-05 15:42:48 +00:00
google-labs-jules[bot] e9ba3f6681 Refactor watch history to use plaintext monthly buckets
- Update `js/nostrEventSchemas.js` to remove encryption tagging and update schema for `WATCH_HISTORY`.
- Update `js/nostr/watchHistory.js` to:
  - Bump storage version to 4.
  - Bucket items by `YYYY-MM`.
  - Publish plaintext JSON payloads with only event IDs and timestamps.
  - Remove encryption logic from publishing.
  - Update fetching to handle plaintext and fallback to legacy parsing.
- Update `js/watchHistoryService.js` to strip metadata from queued items and handle new snapshot response.
- Update `tests/watch-history.test.mjs` to reflect new plaintext behavior and disabled obsolete tests.
2026-01-05 15:26:31 +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
google-labs-jules[bot] b79a8eb0d0 Refactor watch history to use monthly payload schema
* Redefine `parseWatchHistoryPayload` to support `month`, `events` (IDs), and `watchedAt` map.
* Update `mergeWatchHistoryItemsWithFallback` to merge new monthly fields with fallback items.
* Update `buildWatchHistoryPayload` to produce payloads with `events` instead of `items`.
* Update `WatchHistoryManager` to remove legacy chunk index handling.
* Ensure backward compatibility for legacy chunk payloads.
2026-01-04 22:15:27 +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
google-labs-jules[bot] 34b835d4e1 Refactor watch history to use single monthly payload event
Replaces the chunked watch history implementation with a single monthly payload.
This simplifies the event structure and removes chunking logic while maintaining backward compatibility for reading legacy chunked events.
Updates `parseWatchHistoryPayload`, `buildWatchHistoryPayload`, `publishSnapshot` and `fetch` in `js/nostr/watchHistory.js`.
Updates tests to reflect the new single-event behavior.
2026-01-04 21:19:41 +00:00
thePR0M3TH3AN ba666bdaba Refactor watch history payload building 2026-01-03 13:57:46 -05:00
thePR0M3TH3AN e9ce494ccd Remove watch history metadata caching 2026-01-03 09:11:26 -05:00
thePR0M3TH3AN 9310929f0d Ensure trusted seeds hydrate before app creation 2026-01-02 12:18:57 -05:00
thePR0M3TH3AN 16539400e8 Ensure comment snapshots show in video modal on first open 2026-01-02 11:37:22 -05:00
thePR0M3TH3AN 2c8066fd9d Handle synchronous comment snapshots in video modal 2026-01-02 11:24:04 -05:00
thePR0M3TH3AN 9d859b07ed Render guest comment snapshots before auth gating 2026-01-02 11:08:28 -05:00
thePR0M3TH3AN a8119f5b43 Handle login-required comment visibility 2026-01-02 10:13:45 -05:00
thePR0M3TH3AN 3e27f06a13 Add comment thread and modal regression tests 2025-12-29 22:00:32 -05:00
thePR0M3TH3AN 3c6e397984 Improve profile hydration retry diagnostics 2025-12-29 21:19:00 -05:00
thePR0M3TH3AN 735d67313c Add shared hex normalization for comment flows 2025-12-12 13:42:15 -05:00
thePR0M3TH3AN 624ab91c29 Add dev logging for improved comment cache fallback 2025-12-12 12:33:15 -05:00
thePR0M3TH3AN 7a56e7a691 Surface comment cache storage failures 2025-12-12 12:10:37 -05:00
thePR0M3TH3AN 6caa31ae51 Normalize comment thread video IDs 2025-12-12 12:03:39 -05:00
thePR0M3TH3AN 203a0a6d0c Normalize comment profile pubkeys in modal 2025-12-12 11:14:50 -05:00
thePR0M3TH3AN 2dd2be9345 Normalize comment thread event ids 2025-12-12 11:05:00 -05:00
thePR0M3TH3AN a6dcc44c12 Normalize comment cache keys 2025-12-12 10:29:33 -05:00
thePR0M3TH3AN 04e72a0b46 Propagate video root identifier from pointer metadata 2025-11-14 09:30:01 -05:00
thePR0M3TH3AN f0218e5bb5 Add tests for canonical hashtag preference kind 2025-11-13 14:59:03 -05:00
thePR0M3TH3AN 8a111d8ee8 Handle lowercase root identifiers when fetching comments 2025-11-12 20:56:15 -05:00
thePR0M3TH3AN 74bbe8e078 Add root identifier plumbing to modal comments 2025-11-12 20:31:43 -05:00
thePR0M3TH3AN 6331896f6a Sanitize additional Nostr tags 2025-11-12 09:54:34 -05:00
thePR0M3TH3AN 9e969e8120 Sanitize mute tags before publishing block list 2025-11-12 09:28:04 -05:00
thePR0M3TH3AN c882139e90 Fix comment event matching for uppercase addresses 2025-11-04 16:52:12 -05:00
thePR0M3TH3AN 5a0b35ff60 Merge branch 'unstable' of https://github.com/PR0M3TH3AN/bitvid into unstable 2025-11-03 21:49:18 -05:00
thePR0M3TH3AN 8ad7d82a70 update 2025-11-03 21:49:10 -05:00
thePR0M3TH3AN 8258686f55 Preserve raw video author pubkeys for comment threads 2025-11-03 21:27:30 -05:00
thePR0M3TH3AN 2d01711320 update 2025-11-03 19:04:52 -05:00
thePR0M3TH3AN a59f214aeb Serialize repost targets when available 2025-11-03 14:35:43 -05:00
thePR0M3TH3AN e704b93287 Fix comment address fallback when video tags missing 2025-11-03 11:36:39 -05:00
thePR0M3TH3AN d9b45ed867 Ensure comment events keep root e tags alongside addresses 2025-11-03 09:56:33 -05:00
thePR0M3TH3AN 7db78b07f2 Restore legacy subscription list compatibility 2025-11-03 09:42:17 -05:00
thePR0M3TH3AN 3d60d865fa Merge pull request #1022 from PR0M3TH3AN/codex/cap-modal-tag-list-using-tag-strip-helper
Trim video modal tags to container width
2025-10-30 21:02:45 -04:00
thePR0M3TH3AN b4d2370611 Trim video modal tag list to container width 2025-10-30 21:01:37 -04:00
thePR0M3TH3AN 86526bbe02 Fix top-level comment detection and add coverage 2025-10-30 21:00:38 -04:00
thePR0M3TH3AN aff9d11d25 Trim popular tag pills to container width 2025-10-30 16:44:02 -04:00
thePR0M3TH3AN 2fae0a0e7c Update subscription and block lists to encrypted tag arrays 2025-10-30 15:51:21 -04:00
thePR0M3TH3AN bc9bf9e682 Enforce relay resolution for repost events 2025-10-30 15:32:18 -04:00
thePR0M3TH3AN 3b4492461c Ensure video reverts always emit d tag 2025-10-30 14:43:19 -04:00
thePR0M3TH3AN ba6815f795 Merge branch 'unstable' into codex/extend-mirrorvideoevent-and-add-validation 2025-10-30 12:42:25 -04:00
thePR0M3TH3AN 6eb8594e28 Add file hash support to NIP-94 mirrors 2025-10-30 12:41:49 -04:00
thePR0M3TH3AN ba656978a5 Add target kind tag to quote reposts 2025-10-30 12:39:46 -04:00
thePR0M3TH3AN 59161df063 Require active signer for comment publishing 2025-10-30 11:39:09 -04:00
thePR0M3TH3AN cd3c3824b9 Handle dual NIP-44/NIP-04 watch history encryption 2025-10-30 11:17:39 -04:00