spec: ocp-1.md — five state axes enumerated; playlist membership; failure signaling - #141
spec: ocp-1.md — five state axes enumerated; playlist membership; failure signaling#141JarbasAl wants to merge 1 commit into
Conversation
…lure signaling - State model corrected from "three axes" to the actual five (PlayerState, MediaState, loop/shuffle, track state, PlaybackType), with new §3.4/§3.5 enumeration tables built honestly from existing prose. - Resolved the dangling "(see Follow-ups)" citation into a real §4.6 Open items subsection tracking pending MediaState/track-state numeric codes. - media-entry `status` retyped from number to reserved: producers SHOULD omit, consumers MUST ignore until numeric codes exist. - media/playlist membership and next/previous positioning defined by uri match; base search payload confirmed implementation-defined. - Added failure MUSTs to §8 (missing uri, acquisition failure, backend death mid-track). - Softened the GUI-1 §3.4 time-convention citation to name the convention GUI-1 v2 adopts, since that unification is still open in PR #108. - Reworded "the media pipeline" to name PIPELINE-1 as a conformant plugin. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 41 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Audit fixes to OVOS-OCP-1, grouped:
statusfield typing (O3): retyped fromnumberto reserved — producers SHOULD omit it, consumers MUST ignore any value present, until §4.6's numeric codes are assigned. The old typing implied a stable wire encoding that doesn't exist yet.mediaMUST be a member ofplaylistwhen present, located byurimatch;next/previousmove relative to that position. This was previously undefined despite being load-bearing for §4.3.playrequest missinguribefore dispatch; announceMediaState INVALID_MEDIAon acquisition failure; announcePlayerState STOPPEDif the backend dies mid-track.ovos.common_play.searchpayload, not just its bracketing Messages.Cross-dependency note (O1): §4.5 cited OVOS-GUI-1 §3.4 as if the millisecond/
-1-unknown time convention were already uniform across GUI-1's media templates. Ondev, GUI-1 §3.4 is still split —SYSTEM_audio_playeruses seconds,SYSTEM_media_playeruses ms — and that unification only lands with #108 (open, not yet merged). The citation is now phrased as "the convention OVOS-GUI-1 v2 adopts," which is true today and stays true once #108 merges; no factual claim in this PR depends on #108's merge order.O8 (GLOSSARY OCP terms) intentionally out of scope — tracked separately.
Test plan
devstate directly (grepon gui-1.md) rather than trusting the audit note.