docs: reconcile companion guide with confirmed playback and PiP

This commit is contained in:
archipelago
2026-10-07 19:53:09 -04:00
parent 01a55d2de7
commit 2ccc0381bc
2 changed files with 22 additions and 11 deletions
+16 -8
View File
@@ -9,10 +9,12 @@ proof that a particular deployed app or companion version supports every feature
Cloud video PiP is implemented in companion0.5.35/build55; the operator accepted
the delivered Cloud PiP flow on2026-10-07. Audio and video use separate channels.
Native background audio is a companion0.5.36/build56 candidate:29 Android tests
and six companion-bridge dashboard tests pass; physical background/lock-screen/task
removal acceptance remains required. Do not infer those phone results from
browser or Robolectric tests.
Native background audio is operator-confirmed on companion 0.5.37/build57 for
the reported background playback and notification flow. The full physical
controls, queue, task-removal and recovery matrix remains open. Notification
artwork has a qualified dashboard correction awaiting guarded deployment and
physical confirmation; it does not require another APK. Browser and Robolectric
results do not establish phone acceptance.
## Declare the audio integration
@@ -107,7 +109,7 @@ Example state:
window.parent.postMessage({
type: 'archipelago:media-state', version: 1, session,
available: true,
title: track.title, artist: track.artist,
title: track.title, artist: track.artist ?? '',
artwork: track.cover, shuffle: player.shuffleEnabled,
playing: player.playing,
position: player.currentTime, duration: track.duration,
@@ -189,7 +191,10 @@ the operator subsequently reports that background playback now works and the
notification is present, but song artwork is missing. This accepts the reported
background flow only; the complete controls, queue and recovery matrix below
remains open. No definitive cause of the earlier failure is established. USB
access is unavailable. Artwork handling is under investigation/correction.
access is unavailable. The artwork origin correction passes 26 focused dashboard
tests, production browser checks at 390/1440px and two native JPEG tests on API
28/35. Guarded dashboard deployment and physical artwork confirmation remain
pending; these checks do not prove the cover from a particular live track.
Apps continue using the existing version1 app audio protocol above. They do not
@@ -205,8 +210,11 @@ Dashboard→native messages contain version1, a random session, monotonically
increasing sequence, bounded title/position/duration, playback/control flags and
optional JPEG thumbnail bytes. Artwork is fetched by the already authenticated
page with same-origin credentials only, capped at512KiB, resized to192px and sent
as a bounded data URL. Native code does not fetch artwork URLs or receive auth
credentials. Cross-origin images without CORS may have no notification thumbnail;
as a bounded data URL. The qualified correction admits HTTP covers on the
verified app origin, including its distinct port, while rejecting arbitrary HTTP
origins and URL credentials. Cross-origin requests omit cookies and require CORS;
redirects are rejected and no referrer is sent. Native code does not fetch artwork
URLs or receive auth credentials. Cross-origin images without CORS may have no notification thumbnail;
missing artwork never blocks playback. Native image decoding bounds dimensions.
Native→dashboard controls carry the same session. Retired sessions, stale sequence
+6 -3
View File
@@ -583,9 +583,12 @@ review; this new media task is part of that preceding work.
Document the supported video/PiP contract for other apps after qualification;
do not claim the audio postMessage bridge already implements video PiP.
Source inspection so far: MainActivity declares no supportsPictureInPicture flag,
and the native sources contain no PiP entry/controller implementation. Existing
WebViewFullscreen handles fullscreen; this is not evidence of native PiP support.
**Nearly finished:** Cloud PiP is implemented and was delivered in companion
0.5.35/build55; the operator accepted the reported Cloud PiP flow on 2026-10-07.
The reusable audio adapter and developer guide are implemented in
[app-media-integration.md](app-media-integration.md). Remaining physical edge
checks include disabled/unsupported PiP, session expiry, FIPS interruption and
process recreation. The accepted flow does not establish that complete matrix.
## 20. Companion background media for V4V and other apps