mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-11-06 04:42:57 +00:00
feat(liveness): config-driven card visibility policy + probe prefetch (#5)
Makes the card liveness-visibility behavior switchable so it can be A/B feel-tested, and probes ahead of the scroll for a snappier result. - CARD_LIVENESS_POLICY (config/instance-config.js): "show-pending" (default, unchanged) | "hide-foreign" (foreign/ingested cards hidden until a source verifies; native cards stay show-pending) | "hide-all". Owner's own cards are always visible. Flip live for testing without a rebuild: window.__BITVID_CARD_LIVENESS_POLICY__ = "hide-foreign" then refresh/scroll. Implemented via a data-foreign provenance flag on the card + getCardLivenessPolicy() in cardSourceVisibility.js. - LIVENESS_PROBE_PREFETCH_MARGIN (default 600px): both liveness probes were already viewport-gated (IntersectionObserver, on-screen-first, WebTorrent priority-queued + concurrency-capped); this expands their rootMargin so cards just below the fold verify before the user reaches them. - Tests: three policy scenarios in tests/video-card-source-visibility.test.mjs; also un-broke 3 pre-existing VideoCard tests by adding the missing IntersectionObserver JSDOM stub. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
df99bdb65f
commit
ccbe8d9bb2
10 files changed
+236
-16
No files matched your search
@@ -2625,6 +2625,12 @@ export class VideoCard {
|
||||
if (this.video.pubkey) {
|
||||
this.root.dataset.ownerPubkey = this.video.pubkey;
|
||||
}
|
||||
// Provenance flag for the liveness visibility policy: foreign/ingested videos
|
||||
// (pulled in from other Nostr apps) can be hidden-until-verified separately
|
||||
// from bitvid-native uploads. See cardSourceVisibility + CARD_LIVENESS_POLICY.
|
||||
const isForeign =
|
||||
this.video?.foreign === true || this.video?.source === "nip71-ingest";
|
||||
this.root.dataset.foreign = isForeign ? "true" : "false";
|
||||
}
|
||||
|
||||
applySourceDatasets() {
|
||||
|
||||
Reference in new issue
Block a user