Skip to content

fix(watchlist): count a part-watched single season as Watching - #89

Merged
Isma-L154 merged 1 commit into
mainfrom
fix/88-watching-single-season
Sep 19, 2026
Merged

Isma-L154 merged 1 commit into
mainfrom
fix/88-watching-single-season

Conversation

@Isma-L154

Copy link
Copy Markdown
Owner

Closes #88.

What was happening

Lanterns and Neagley are both brand-new shows with exactly one aired season. The episode picker recorded episodes for them quite happily — the card even read Next: S1E4 — but the Watching tab reported nothing was being watched, and neither show reached the Continue-watching rail.

Root cause

isInProgress was gated on isTrackable. That predicate answers a different question: does the season stepper earn its place — and it answers no below two seasons, because a 0-to-1 counter is pure friction. Episode tracking, added later, works from a single aired season. The two bars drifted apart, and "what am I in the middle of" ended up asking "does this show deserve a stepper".

So any show with one aired season could never be in progress, however many of its episodes had been ticked off. The answer to the issue's open question is yes: it is specific to new series, and to a first season while a second is only announced.

The fix

  • seasonCeiling is lifted out of domain/progress — "is there a ceiling at all" and "is the ceiling above one" are two questions, and callers kept reaching for isTrackable to ask the first. It keeps the existing fallback to totalSeasons for rows saved before air dates were tracked.
  • isInProgress measures against that ceiling: one aired season is enough to be part-way through something.
  • The rail had quietly inherited the same assumption, since only multi-season shows used to reach it. A single-season show has no stepper to draw, and drawing one anyway printed 0/0 beside an empty bar — those now get the card's own watched toggle.

No schema change, so nothing to migrate.

Tests

Four cases in domain/watchlist.spec.ts (single season part-watched; first season in progress with a second announced; untouched single season stays out; unresolved season data stays out) and a new ContinueWatching.svelte.spec.ts pinning which control each kind of show gets.

496 unit tests, 17 e2e, lint and check all pass.

QA

Seeded a local DB with the two real shows from the issue (TMDB 95350 and 273207, one 8-episode season each) and drove it in Chrome.

Before — Next: S1E4 on the card, Watching 1, rail shows only Breaking Bad.
After — Watching 3, rail shows all three, single-season shows get a Watched button rather than 0/0.

Also exercised: marking episode 4 through the picker (moves to Next: S1E5, stays in Watching), the rail's new Watched button (leaves the rail, Watching 3→2, Watched 1→2), and unwatching it back to zero (returns to To watch, not Watching). Checked at 390px. No console errors.

A brand-new show has exactly one aired season, and "in progress" was
gated on `isTrackable` — the predicate that decides whether the season
*stepper* earns its place, which answers no below two seasons because a
0-to-1 counter is pure friction. Two unrelated questions, one bar.

So the episode picker recorded three episodes of Lanterns, the card read
"Next: S1E4", and the Watching tab still said nothing was being watched.
Every surface that asks "what am I in the middle of" was really asking
"does this show deserve a stepper".

`isInProgress` now measures against the season ceiling itself: one aired
season is enough to be part-way through something. `seasonCeiling` is
lifted out of `progress` to say that, keeping the fallback to the total
for rows saved before air dates were tracked.

The rail had quietly inherited the same assumption — it only ever drew
the stepper, because only multi-season shows reached it. A single-season
show has none to draw, and drawing one anyway printed "0/0" beside an
empty bar, so those get the card's own watched toggle instead.

Closes #88
@Isma-L154
Isma-L154 force-pushed the fix/88-watching-single-season branch from 3ada410 to 2ce8fda Compare September 19, 2026 07:30
@Isma-L154
Isma-L154 merged commit a52dfda into main Sep 19, 2026
3 checks passed
@Isma-L154
Isma-L154 deleted the fix/88-watching-single-season branch September 19, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Episodes not marked as 'Watching' in 'My List'

1 participant