mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 16:02:26 +00:00
First slice of creator playlists. Adds a bitvid-native addressable playlist event and the pure, hermetic core that builds/parses/mutates it. No UI or network yet — those land in follow-up commits. - nostrEventSchemas.js: PLAYLIST_KIND=30082 (+ NOTE_TYPES.PLAYLIST, BASE_SCHEMAS entry) and buildPlaylistEvent(). Data lives in tags: d (id), title/description/ image, and ordered `a` refs (30078:pubkey:d) to videos; order = tag order; repeated refs deduped. Deliberately NOT NIP-51's 30005 "video curation set" — bitvid already reads 30005 as legacy interest-sets, so reuse would collide. - js/playlists/playlistService.js: parsePlaylistEvent, buildPlaylist, and immutable add/remove/reorder item helpers + videoCoordinate() (reuses the canonical buildVideoAddressPointer, same 30078 contract as the zap fix) + generatePlaylistId(). Pure — fully unit-testable with no relays/signer. - tests/playlist-service.test.mjs: 12 scenarios (build tags + order + dedup, d-tag required, parse structure/rejects/defaults, build→parse round-trip, add/remove/reorder immutability + clamping, coordinate derivation incl. the kind-0 internal-object case). - docs/nostr-event-schemas.md: catalogue row for the new kind. Schema validation, lint, and build all pass; tests 12/12. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Documentation Index
Welcome to the bitvid documentation. This directory contains detailed architectural guides, API references, and system overviews.
Core Systems
- Application Coordinators: Overview of the coordinator pattern used to manage app-wide state and services.
- Data-Flow Refactor — Dev Plan & Spec: The incremental plan to put all subsystems on a shared, governed relay/data foundation (SubscriptionManager, stores, unidirectional flow).
- Known Bugs (deferred): Confirmed defects/limitations found during the refactor, queued to fix later.
- Feed Algorithm ↔ Lists Audit: Read-only audit of whether the For You feed is actually driven by the user's follows/hashtags/watch-history, with the gaps and a fix order.
- Authentication Architecture: How session management, login flows, and signer integration work.
- Feed Engine: The pipeline for fetching, filtering, scoring, and sorting video feeds.
- Playback & Fallback: The URL-first playback strategy with WebTorrent fallback orchestration.
- Watch History System: Encrypted watch history synchronization and storage.
Nostr Protocol
- Nostr Event Schemas: The definitive catalogue of all Nostr event kinds and data structures used by bitvid.
- DM Privacy Model: How Direct Messages are handled, including NIP-17 relays and privacy controls.
- NIP-46 Client Overview: Details on the NIP-46 remote signer implementation.
- Batch-Capable nip-07 Extension Proposal: Exploratory design for a signer extension that parallelizes bulk decryption (DMs, watch history) without exposing keys.
Moderation & Safety
- Moderation Service: How content moderation, reporting, and admin lists function.
- Logging Strategy: Guidelines for using
devLoggervsuserLoggerand production logging policies.
Design & UI
- Design System: Guide to the token-based design system and CSS architecture.
- Menus & Popovers: Documentation for the menu and popover system.
Operations
- Instance Configuration: Guide to configuring a bitvid instance.
- Deployment Notes: Notes and checklists for deploying bitvid.
- Manual QA Checklist: The standard manual QA script for releases.
For more details on contributing, please see CONTRIBUTING.md.