Files
tapir/docs/use-cases/connect_account.feature
mathias 40808f2d4b
CI / Lint / Test / Vet (push) Successful in 10s
CI / Build & Import (push) Successful in 10s
docs(onboard): BDD scenarios + architecture for the ADR-028 burst
- connect_account.feature: refine the burst scenario to "best recent" (likely-good
  selection, skips too-short/too-long) and add a scenario for the stronger model.
- scenario_coverage: remap to TestOnboardBurstVideoIDs + add the model scenario
  (the old NewestUnsummarizedVideoIDs test was removed).
- architecture.md: new "Connect-time onboarding burst" subsection — junk-avoiding
  selection over persisted duration, the burst-only stronger-model chain, and why
  has-captions/cached-first are not selection signals.
2026-06-11 19:54:29 +02:00

68 lines
2.8 KiB
Gherkin

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.