Amend DESIGN.md for TV tracking decisions #117

Closed
opened 2026-08-23 15:55:55 +01:00 by naps62-yolo · 0 comments
Owner

Three TV tracking decisions extend or contradict the current text. The document
is the contract, so it changes before the code that assumes it. Every other
issue in this batch depends on this one.

§4.1 — Season.tracked is a rule, not decoration. The section describes
Series.auto_track and leaves Season.tracked unexplained, and nothing in the
codebase reads it. Give it a meaning: a tracked season marks newly revealed
episodes wanted, and turning it on marks every already-revealed episode in that
season wanted. Turning it off withdraws nothing — leaf intent is never removed
implicitly. auto_track keeps its own meaning one level up: when metadata
reveals a new season, that season becomes tracked.

§4.1 and §4.2 — season 0 is excluded. Specials are dozens of undated shorts
and recaps that indexers do not carry. auto_track must never mark season 0
tracked, and derived status must ignore season 0 episodes entirely, so a
manually wanted special cannot pin a series at incomplete or hold back
ended. The accepted consequence: specials are visible and grabbable in the
series detail view, and invisible to status.

§6.2 and §14 — RSS skips packs for a started season. §6.2 says every wanted
item is matched against every RSS result forever, which taken literally lets a
season pack satisfy one missing episode of a season already half on disk. §14
already refuses to re-grab a pack over episodes on disk; state that the RSS lane
obeys the same guard, so both lanes agree and a season does not behave
differently depending on which lane sees a release first. A pack for a season
with nothing on disk stays eligible. The manual escape hatch when a single
episode cannot be found is the season release deck, not a lane exception.

Documentation only. No code changes.

Three TV tracking decisions extend or contradict the current text. The document is the contract, so it changes before the code that assumes it. Every other issue in this batch depends on this one. **§4.1 — `Season.tracked` is a rule, not decoration.** The section describes `Series.auto_track` and leaves `Season.tracked` unexplained, and nothing in the codebase reads it. Give it a meaning: a tracked season marks newly revealed episodes wanted, and turning it on marks every already-revealed episode in that season wanted. Turning it off withdraws nothing — leaf intent is never removed implicitly. `auto_track` keeps its own meaning one level up: when metadata reveals a new season, that season becomes tracked. **§4.1 and §4.2 — season 0 is excluded.** Specials are dozens of undated shorts and recaps that indexers do not carry. `auto_track` must never mark season 0 tracked, and derived status must ignore season 0 episodes entirely, so a manually wanted special cannot pin a series at `incomplete` or hold back `ended`. The accepted consequence: specials are visible and grabbable in the series detail view, and invisible to status. **§6.2 and §14 — RSS skips packs for a started season.** §6.2 says every wanted item is matched against every RSS result forever, which taken literally lets a season pack satisfy one missing episode of a season already half on disk. §14 already refuses to re-grab a pack over episodes on disk; state that the RSS lane obeys the same guard, so both lanes agree and a season does not behave differently depending on which lane sees a release first. A pack for a season with nothing on disk stays eligible. The manual escape hatch when a single episode cannot be found is the season release deck, not a lane exception. Documentation only. No code changes.
naps62-yolo added the area/infraphase/6-tvdifficulty/easytype/chore labels 2026-08-23 15:55:55 +01:00
naps62-yolo added this to the TV tracking milestone 2026-08-23 15:58:35 +01:00
naps62-yolo added a new dependency 2026-08-23 16:36:55 +01:00
naps62-yolo added a new dependency 2026-08-23 16:36:55 +01:00
naps62-yolo added a new dependency 2026-08-23 16:36:55 +01:00
naps62-yolo added a new dependency 2026-08-23 16:36:55 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: yolo/arr#117