docs(portals): tighten closer timing and page-wide gate wording

A launching session may already have its closer before the launch IPC
resolves, the Xtream movie launch gate does not cover the inline
player's diagnostic fallback, and the hero-state spec covers only the
external-player and reset rows.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Fable 5.1 committed 2026-10-04 09:39:04 +02:00
1 parent 94668fb058
commit c8ef77214a
2 files changed
+8 -7

No files matched your search

@@ -473,8 +473,8 @@ interface is unavailable; exact external timestamps remain best-effort.
The detail "…" menu's "Open in external player" sends the title to MPV/VLC
through `PortalPlayer.openExternalPlayback(playback, player)` whatever the
configured player is. The launch IPC cannot be cancelled, and until it
resolves the session is at most `launching`, with no exact closer. Every
detail host therefore keeps these rules:
resolves the session is at most `launching` and may not have a closer yet.
Every detail host therefore keeps these rules:
- **One external player per owner.** Before launching, the host closes the
external session the page owns: the session of the same title on the
@@ -506,10 +506,11 @@ detail host therefore keeps these rules:
also `retire(owner)` when the selection leaves it, so a start that never
settles does not keep the flag set on a return to the same title. A movie's
"Reset progress" is scoped the same way.
- **Two gates are page-wide.** The Xtream movie page refuses every start
while an external launch it made has not settled. A series page runs one
watched or reset batch at a time, whichever series is shown; the Stalker
page also holds episode starts until that batch settles.
- **Two gates are page-wide.** The Xtream movie page refuses Play, Start
over, source switches and the menu launch while an external launch it made
has not settled. A series page runs one watched or reset batch at a time,
whichever series is shown; the Stalker page also holds episode starts until
that batch settles.
Owner keys and queueing are provider contracts:
@@ -440,5 +440,5 @@ The series page keeps its launch state at module level in
Regression coverage: `serial-details-external-launch.spec.ts` (chain,
duplicate guard, queued choice), `serial-details-playback.service.spec.ts`
(page token) and, for the menu rows,
(page token) and, for the external-player and reset rows,
`libs/ui/components/src/lib/detail-ui/series-hero.state.spec.ts`.