Miguel Palhas
a28b455fff
fix: gate hard-fail attention on unsatisfied titles
2026-08-23 19:07:29 +01:00
Miguel Palhas
03e7774869
Merge #136 : resolve IMDb ids to series as well
...
Closes #136
2026-08-23 19:01:42 +01:00
Miguel Palhas
fea1a04c75
feat(api): surface series for IMDb id searches
2026-08-23 18:59:35 +01:00
Miguel Palhas
3956617d41
feat(meta): resolve IMDb ids against series too
2026-08-23 18:59:35 +01:00
Miguel Palhas
127338fd4d
Merge #132 : drain manual episode and season commands
...
Closes #132
2026-08-23 18:27:43 +01:00
Miguel Palhas
695f1882be
Merge #128 : series delete unlinks its files
...
Closes #128
2026-08-23 18:25:56 +01:00
Miguel Palhas
8a77049fdb
feat(daemon): drain all manual command channels
2026-08-23 18:24:50 +01:00
Miguel Palhas
39e6bce2a0
feat(daemon): manual episode/season triggers
2026-08-23 18:24:50 +01:00
Miguel Palhas
b0f56f59aa
fix(api): delete series files and media_files rows
2026-08-23 18:23:41 +01:00
Miguel Palhas
1eac85c427
Merge #131 : derive status from the episode's own season number
...
Closes #131
2026-08-23 18:21:34 +01:00
Miguel Palhas
50b68e24b6
api: derive status from episode season numbers
...
with_status drops its seasons slice for the same reason as
derive_series_status; tv_by_series no longer loads seasons at all.
Offline query data regenerated.
2026-08-23 18:18:26 +01:00
Miguel Palhas
69263da4f3
daemon: populate season_number on refreshed episodes
2026-08-23 18:18:26 +01:00
Miguel Palhas
b51386e004
core: carry season number on Episode
...
derive_series_status identified specials by looking the episode's
season up in a parallel seasons slice, so a caller passing an
incomplete slice silently reverted to pre-#118 behaviour. The season
number now rides on each episode and the slice is gone.
2026-08-23 18:18:26 +01:00
Miguel Palhas
4f848c27f0
fix(parse): close title on spelled-out season ranges
2026-08-23 18:12:47 +01:00
Miguel Palhas
00d0ec7f16
Merge #135 : fix season-pack name parsing
...
Closes #135
2026-08-23 18:05:39 +01:00
Miguel Palhas
8d79c7c378
fix(parse): pack titles and degenerate ranges
...
COMPLETE before the season tag was weak junk, so it stayed in
the title and exact-title matching failed silently (#135 ). It
now closes the boundary wherever it lands.
S01-S01 produced no claim because the dash-range branch required
last > season; a degenerate range is one season's pack, matching
the rule match_episode lifted.
2026-08-23 18:02:39 +01:00
Miguel Palhas
34ccbeeb5a
feat(api): expose vanished flag on episodes
2026-08-23 18:01:41 +01:00
Miguel Palhas
8b9a6d5a16
feat(daemon): reconcile episodes that vanish upstream
2026-08-23 17:59:45 +01:00
Miguel Palhas
3bcc612f9a
feat(db): flag episodes that vanish upstream
2026-08-23 17:59:41 +01:00
Miguel Palhas
384e260d72
Merge #121 : daily series metadata refresh
...
Closes #121
2026-08-23 17:47:46 +01:00
Miguel Palhas
0c58aae707
feat(daemon): daily series metadata refresh lane
2026-08-23 17:45:09 +01:00
Miguel Palhas
808145d73b
feat(db): stamp series metadata refresh time
2026-08-23 17:45:09 +01:00
Miguel Palhas
360a4bf43c
Merge #127 : unified search covers series and episodes
...
Closes #127
2026-08-23 17:41:22 +01:00
Miguel Palhas
58f2f8361a
feat(web): mirror tv results in search client
2026-08-23 17:39:49 +01:00
Miguel Palhas
9f8d58fd58
feat(api): unified search covers series and episodes
2026-08-23 17:35:40 +01:00
Miguel Palhas
237696417b
Merge #123 : episode and season-pack matching in arr-core
...
Closes #123
2026-08-23 17:10:05 +01:00
Miguel Palhas
e6d3ea4964
feat(core): episode and season-pack matching
2026-08-23 17:06:04 +01:00
Miguel Palhas
8b8e1dcec9
Merge #126 : TV titles in the needs-a-decision queue
...
Closes #126
2026-08-23 16:58:08 +01:00
Miguel Palhas
28e7dd9a20
Merge #119 : seasons.tracked governs episode intent
...
Closes #119
2026-08-23 16:54:47 +01:00
Miguel Palhas
e3d41c24e1
refactor(daemon): extract tv queue roll-up
2026-08-23 16:53:52 +01:00
Miguel Palhas
7632140ef2
fix(api): hoist test helper above statements
2026-08-23 16:52:13 +01:00
Miguel Palhas
8ec1506098
refactor: split long functions in tv attention work
2026-08-23 16:51:29 +01:00
Miguel Palhas
def9650489
style: cargo fmt
2026-08-23 16:50:53 +01:00
Miguel Palhas
fa3b5226e7
feat(api): season tracked toggle marks revealed episodes
2026-08-23 16:50:45 +01:00
Miguel Palhas
75bf6fb14e
feat(api): season search, deck and grab endpoints
2026-08-23 16:49:42 +01:00
Miguel Palhas
42a0895975
feat(db): season_releases table and season policy loader
2026-08-23 16:49:42 +01:00
Miguel Palhas
e8cea4aec5
refactor(api): extract tv attention lanes
2026-08-23 16:47:38 +01:00
Miguel Palhas
135d4b8247
feat(core): season tracked rule over revealed episodes
2026-08-23 16:46:26 +01:00
Miguel Palhas
b801bfbcc3
style: cargo fmt
2026-08-23 16:44:32 +01:00
Miguel Palhas
24f6dab109
feat(api): tv series in the attention queues endpoint
2026-08-23 16:44:16 +01:00
Miguel Palhas
93ccea2de0
fix(api): specials stay out of episode counters
2026-08-23 16:40:38 +01:00
Miguel Palhas
a1971ed82c
feat(daemon): tv series in the needs-a-decision queue
2026-08-23 16:39:06 +01:00
Miguel Palhas
fc93d27f7e
Merge #120 : series.tvdb_id and tvsearch by ID
...
Closes #120
2026-08-23 16:35:34 +01:00
Miguel Palhas
9f4943a01b
style: cargo fmt
2026-08-23 16:34:43 +01:00
Miguel Palhas
a5706cf1b4
feat(tv): search indexers by series tvdb id
2026-08-23 16:32:28 +01:00
Miguel Palhas
46de061e68
feat(db): nullable unique series.tvdb_id
2026-08-23 16:32:25 +01:00
Miguel Palhas
fa3f9cbd91
feat(meta): look up series external ids
2026-08-23 16:32:25 +01:00
Miguel Palhas
3bd613ec63
feat(core): derived status ignores season 0
2026-08-23 16:32:13 +01:00
Miguel Palhas
2fca8ec09f
feat(core): auto-track skips season 0
2026-08-23 16:32:13 +01:00
Miguel Palhas
71c2741d08
feat(web): settings view for roots and policies
...
Own route beside library and queues. Roots edit kind, audience, path
and their policy; policies get a form over the real fields — size
bands as number inputs, score and source weights as numbers,
resolution preference and audio/HDR rules as validated lists. Delete
arms before firing; a 409 from a referenced policy or occupied root
surfaces its message.
2026-08-23 15:14:34 +01:00