Feature: Connect and manage video accounts
  As a user
  I want to connect my YouTube or Vimeo account and have my subscriptions tracked
  So that Tapir watches the channels I already follow

  Scenario: Connect a YouTube account
    Given I have no connected video accounts
    When I connect my YouTube account
    Then the connection is stored with status "active"
    And my refresh token is stored only as a secret reference
    And my subscriptions are synced

  @pending
  # Vimeo connect is not built yet (provider label exists; no connect flow or test).
  Scenario: Connect a Vimeo account
    Given I have no connected video accounts
    When I connect my Vimeo account
    Then the connection is stored with status "active"
    And my subscriptions are synced

  Scenario: Connecting an account discovers videos immediately
    Given I have no connected video accounts
    When I connect my YouTube account
    Then a discovery pass for my account is triggered right away
    And I do not have to wait for the next scheduled pass to see my videos

  Scenario: Connecting summarizes my best recent videos right away
    Given I have no connected video accounts
    When I connect my YouTube account
    Then up to the onboarding cap of my newest likely-good videos are summarized through the rate gate
    And videos whose known duration is too short or too long are skipped
    And the rest are left to the scheduled recency-bounded pass

  Scenario: The onboarding burst summarizes with a stronger model
    Given I have no connected video accounts
    When I connect my YouTube account
    Then the burst summarizes with the stronger onboarding model first
    And the standard summarizer chain still follows as a fallback

  Scenario: Tokens are never stored in the clear
    When I connect any video account
    Then no OAuth token value is stored in the database
    And only an opaque secret reference is stored

  Scenario: Revoking a connection stops watching but keeps history
    Given I have a connected YouTube account with summaries
    When I revoke the connection
    Then the connection status becomes "revoked"
    And no new videos are watched for that connection
    And my existing summaries remain readable

  @pending
  # Per-provider BYO credential config is not built as a web flow yet (the summarizer
  # supports a fallback endpoint, but there is no user-facing BYO setup + its test).
  Scenario Outline: BYO AI credential is optional and per-provider
    When I configure a BYO provider "<provider>"
    Then the credential is stored only as a secret reference
    And it is used only as the fallback when local AI fails

    Examples:
      | provider  |
      | anthropic |
      | openai    |
      | gemini    |

  # Stage 1 (Future B): connecting a new user's account requires no code change.
  # Isolation: a user can only ever see and manage their own connections.
