Skip to content

Track the staged Watch Together lobby contract for Apple clients #344

Description

@Quick104

Related server scope: Silo-Server/silo-server#1279 and Silo-Server/silo-server#1280.

The server adds a staged Watch Together lobby. A lobby may have selected_content_id set while nothing is playing; selection_revision advances on start and stop, while staging only advances generation. Native clients need to understand this contract before exposing the new flow.

Acceptance:

  • Read /api/v2/watch-together/capabilities and respect individual feature flags, including unavailable member-state, picker, or socket support.
  • Enter playback only for phase == playing. Render a selected lobby item as staged; handle start, stop back to the lobby, and mode switches.
  • Use lobby_ready for the advisory lobby check and keep it distinct from playback buffering readiness. Consume membership and readiness across API servers.
  • Integrate the bounded member-state and picker reads under the current profile and room proof. Handle inaccessible IDs being omitted.
  • Treat selection revision as the playback epoch; test stop/start, reconnect, host rejoin at the room position, and stale responses after profile replacement.

Apple follow-up scope: track the native contract and UI work for any future Watch Together integration. This ticket does not schedule a feature launch. Verify the state transitions in shared client logic and validate each enabled Apple platform before release.

AI disclosure: drafted during the server PR review using Codex in T3 Code, model gpt-6-astra, gh CLI, and repository source inspection. No native implementation or device validation was performed. The server review reproduced and repaired shared membership, catalog access, readiness, and capability-reporting defects; native implementation remains the work tracked here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions