Make seasons.tracked govern episode intent #119

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

Depends on: #117

seasons.tracked is written by the API and returned in responses, and nothing
reads it to make a decision. It is the rule DESIGN.md §4.1 needs once metadata
refresh starts revealing episodes into seasons that already exist, and it is
what the series detail view's per-season toggle acts on — there is no bulk
backfill action, so this toggle is the only way to want a whole season.

The rule, as amended by #117:

  • Turning tracked on marks every already-revealed episode in that season
    wanted, and future ones follow.
  • Turning it off withdraws nothing. Leaf intent is never removed implicitly.
  • An episode revealed into a tracked season is wanted. An episode revealed into
    an untracked season is not.
  • Season 0 is never tracked automatically (#118), but an operator who tracks it
    by hand gets the same rule.

The decision belongs in arr-core next to apply_auto_track, pure and tested
against a table of cases. PATCH /api/series/{id}/seasons/{n} then applies it
instead of writing the flag and stopping, and the comment at
crates/arr-api/src/series.rs:134 is corrected. #121 consumes the same function
for episodes revealed by metadata refresh.

Depends on: #117 `seasons.tracked` is written by the API and returned in responses, and nothing reads it to make a decision. It is the rule DESIGN.md §4.1 needs once metadata refresh starts revealing episodes into seasons that already exist, and it is what the series detail view's per-season toggle acts on — there is no bulk backfill action, so this toggle is the only way to want a whole season. The rule, as amended by #117: - Turning `tracked` on marks every already-revealed episode in that season wanted, and future ones follow. - Turning it off withdraws nothing. Leaf intent is never removed implicitly. - An episode revealed into a tracked season is wanted. An episode revealed into an untracked season is not. - Season 0 is never tracked automatically (#118), but an operator who tracks it by hand gets the same rule. The decision belongs in `arr-core` next to `apply_auto_track`, pure and tested against a table of cases. `PATCH /api/series/{id}/seasons/{n}` then applies it instead of writing the flag and stopping, and the comment at `crates/arr-api/src/series.rs:134` is corrected. #121 consumes the same function for episodes revealed by metadata refresh.
naps62-yolo added the difficulty/moderatearea/corephase/6-tvtype/feature 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
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: yolo/arr#119