Files
archy/docs/v4v-native-player-20261006.md
T

2.4 KiB

V4V native player and music banner follow-up

Source changes

  • The existing native player now offers previous, next and shuffle. Each command delegates to V4V's existing action, so V4V owns the queue and shuffle ordering. Shuffle state and the current cover come back from the same app snapshot.
  • Cover artwork sits under a dark contrast layer; malformed or credential-bearing URLs are ignored. Remote artwork requires HTTPS. No media URL, payment token or second audio element is handed to the dashboard.
  • The app iframe remains mounted while hidden. The app panel and bottom bar have complementary transitions, disabled for reduced-motion preferences.
  • V4V's same-host default-port media handshake survives a same-app login redirect or absent referrer. Parent window, exact origin and per-session nonce checks remain required. Unrelated host/sibling-port referrers are rejected.
  • The Sovereign Music banner uses the app's final settled cymatic field, not an early intro frame: the original pattern, zero offset, particle lift 0.88 and renderFrame(0), matching setSettledPattern. The capture uses a fixed random seed and the app's actual cymatics.mjs. A decorative record/play symbol and waveform appear on the right, subdued on small screens.

Validation

  • App media protocol: 4 tests passed, including login redirect boundaries and delegation of all three queue controls.
  • Dashboard bridge/audio/catalog: 18 tests passed.
  • Native player rendering: 1 test passed, including cover, authoritative shuffle, control delegation, visibility on reopen and absence of a second audio element.
  • Vue type check passed.
  • Real Chromium component rendering at 390 and 1440 pixels: all six buttons visible; previous/next/shuffle reached the controller; no horizontal overflow. Reduced-motion rendering exercised. This is an isolated component fixture, not live app integration acceptance.
  • The operator reported that the existing bottom-bar transition is now working. This is separate from the automated evidence above.

Still required after deployment

On Yaya, play a real song, close the app, operate previous/next/shuffle from the native bar, and reopen the same iframe. Verify uninterrupted audio, matching song/cover/shuffle, and the app's actual queue. Repeat at mobile and desktop sizes and through the new Nostr login. Verify banner visually with the signed node-only catalog. This follow-up does not claim those live checks passed yet.