Feature: Choose how new videos get summarized As a user who wants control over compute and noise I want to pick whether new videos are summarized automatically or on demand So that I only spend summarization on the videos I actually care about Background: Given I am a registered user with a connected video account Scenario: Auto mode summarizes recent new videos automatically Given my summarization mode is "auto" When a subscribed channel posts a new video with captions within the recency window Then Tapir summarizes it without my asking And the summary appears in my list Scenario: Auto mode lists older videos without summarizing them Given my summarization mode is "auto" When discovery finds a video published before the recency window Then the video appears in my list with no summary And it is not summarized automatically And I can still summarize it on demand with "Summarize" Scenario: Manual mode is the default and leaves new videos unsummarized Given I have not changed my summarization mode Then my mode is "manual" When a subscribed channel posts a new video with captions Then the video appears in my list with no summary And nothing is summarized until I request it Scenario: Requesting a summary in manual mode queues it for the next run Given my summarization mode is "manual" And a new video is in my list with no summary When I click "Summarize" on that video Then the video is marked as requested And the next run summarizes it And the request flag is cleared after it is processed # auto_summarize is a per-user setting and summarize_requested is a per-video queue # flag (migration 006). The web button sets the flag; `tapir run` processes both the # auto videos and the manually queued ones, then clears the flag. # # Recency bound (ADR-020): in auto mode the scheduler only summarizes videos published # within TAPIR_AUTO_SUMMARIZE_WINDOW (default ~7d); older videos are discovered and # listed but wait for an explicit "Summarize" — so a back-catalogue does not re-drive # the per-IP caption gate (ADR-014) every cycle. A manual request bypasses the bound.