Miguel Palhas
23f5781714
feat(meta): substitute TBA for unnamed episodes
2026-08-23 20:55:16 +01:00
Miguel Palhas
877dbae7cb
Merge #152 : URL-addressed TV release decks
...
Closes #152
2026-08-23 20:49:01 +01:00
Miguel Palhas
cf36a4302c
feat(web): route season and episode release decks
2026-08-23 20:44:28 +01:00
Miguel Palhas
06a68372e6
feat(api): expose series and season on episodes
2026-08-23 20:44:28 +01:00
Miguel Palhas
4762f2612f
feat(web): show the vanished flag on seasons
2026-08-23 20:32:30 +01:00
Miguel Palhas
468f31f0b0
Merge #141 : expose seasons.vanished on the API
...
Closes #141
2026-08-23 20:31:13 +01:00
Miguel Palhas
571ec42e92
feat(api): expose seasons.vanished ( #141 )
...
Season objects from the series endpoints now carry the conflict flag
#137 writes, the way episodes already do.
2026-08-23 20:27:34 +01:00
Miguel Palhas
db72cb4bcd
docs: use agent-browser for the visual pass
2026-08-23 20:24:00 +01:00
Miguel Palhas
d5013d4ca8
Merge #129 : series detail view
...
Closes #129
2026-08-23 20:21:15 +01:00
Miguel Palhas
7f9729fb57
style(web): issue refs without hex-looking hashes
2026-08-23 20:18:51 +01:00
Miguel Palhas
e335a1be73
style(api): drop needless raw string hashes
2026-08-23 20:13:54 +01:00
Miguel Palhas
82100ef7ab
feat(web): series detail view with season and episode decks
2026-08-23 20:12:06 +01:00
Miguel Palhas
6826170431
feat(web): series data layer and /series route
2026-08-23 20:12:06 +01:00
Miguel Palhas
4efc7b1833
fix(web): token linter ignores comments
2026-08-23 19:54:42 +01:00
Miguel Palhas
353608ae63
Merge #140 : name episodes in the attention queue
...
Closes #140
2026-08-23 19:52:48 +01:00
Miguel Palhas
d86d975073
fix(web): drop issue refs that trip the token linter
2026-08-23 19:51:52 +01:00
Miguel Palhas
9129728622
refactor(api): extract attention merge helpers
2026-08-23 19:48:59 +01:00
Miguel Palhas
e4c115803b
style: fix test formatting
2026-08-23 19:46:16 +01:00
Miguel Palhas
1d31ea7d1b
feat(web): render SxxEyy chips in attention queues
2026-08-23 19:45:33 +01:00
Miguel Palhas
7f7f26dbc7
feat(api): name attention episodes and seasons
2026-08-23 19:45:33 +01:00
Miguel Palhas
11d2952863
Merge #137 : reconcile whole seasons removed upstream
...
Closes #137
2026-08-23 19:36:37 +01:00
Miguel Palhas
00ff4db26a
style: cargo fmt
2026-08-23 19:35:07 +01:00
Miguel Palhas
409967eef6
feat(daemon): reconcile vanished seasons ( #137 )
2026-08-23 19:34:55 +01:00
Miguel Palhas
943f18cdf5
feat(db): add seasons.vanished conflict flag
2026-08-23 19:34:55 +01:00
Miguel Palhas
1af73caa34
Merge #133 : render TV lanes in the attention queue
...
Closes #133
2026-08-23 19:27:35 +01:00
Miguel Palhas
71cbb9269b
fix(web): reword comment that tripped the token gate
2026-08-23 19:26:43 +01:00
Miguel Palhas
160c00c77f
feat(web): render tv lanes in attention queues
2026-08-23 19:23:19 +01:00
Miguel Palhas
779d4b8504
Merge #139 : episode tag beats a movie id match
...
Closes #139
2026-08-23 19:17:47 +01:00
Miguel Palhas
64e711feec
fix(core): guard movie id lane against episode tags
2026-08-23 19:13:49 +01:00
Miguel Palhas
a378b22306
Merge #134 : satisfied titles leave the attention queue
...
Closes #134
2026-08-23 19:09:15 +01:00
Miguel Palhas
04b2688330
Merge #124 : match RSS results against wanted episodes
...
Closes #124
2026-08-23 19:09:15 +01:00
Miguel Palhas
91414a043f
chore: regenerate sqlx query data
2026-08-23 19:07:29 +01:00
Miguel Palhas
a28b455fff
fix: gate hard-fail attention on unsatisfied titles
2026-08-23 19:07:29 +01:00
Miguel Palhas
9df120b92a
feat(daemon): match RSS results to wanted episodes
...
One feed pass now serves films and episodes alike. A
single-episode release grabs its open episode directly; a season
pack only grabs when season_grab_mode allows packs for that
season (§14, #117 ), and when it wins, the singles stand down.
Blocked series keep matching RSS (§6.3) and nothing here touches
the targeted-search backoff (§6.2).
2026-08-23 19:07:00 +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
d8316ae0c8
feat(api): series files keyed by episode id
2026-08-23 18:41:36 +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
17949c0848
Merge #138 : close title boundary on plural season ranges
...
Closes #138
2026-08-23 18:17:19 +01:00
Miguel Palhas
4f848c27f0
fix(parse): close title on spelled-out season ranges
2026-08-23 18:12:47 +01:00
Miguel Palhas
e4c49b75de
Merge #130 : add a series from unified search
...
Closes #130
2026-08-23 18:05:45 +01:00