docs/RELEASE_REVIEW_1.14.2_RC2.md
Rama master · réplica de lectura del repositorio original.
# 1.14.2-rc.2 review — 2026-09-15
Base: `4ee741d7` (`master`, matching GitHub at the start of review).
## Changes
- **GH #210:** AnimeTosho checks series identity, sequel suffixes, season/episode
numbering, and individual files in batches before creating subtitle results.
A matching feed AniDB id cannot override a contradictory release name.
The feed's `eid` parameter now uses `anidb_episode_id`, never `absolute_episode`.
- **GH #207:** SubSource uses the documented API v1 search/list/download flow and
a required API key in Settings > Providers. The key is encrypted at rest,
masked in config responses and takes effect without restarting. HTTP/schema
errors propagate; ZIP packs select the requested episode.
- **Cleanup diagnostics:** skipped sweeps log whether `foreign_track_sweep_enabled`
is false or no enabled `foreign_tracks` rule exists. No cleanup is enabled by
the upgrade. `cleanup_foreign_tracks_default` is a different setting.
- `1.14.2` changelog, README and DE/EN What's New content cover the changes.
- Docker packaging excludes local `venv`/`.venv` directories. The development
environment contained 22,819 files (0.38 GiB); it must not enter a Linux image.
## Corrections to the supplied devlog
TVSubtitles and Subf2m were already repaired by `e043842a` and shipped in 1.14.1.
GH #207 remains open for SubSource. The maintainer's 2026-09-14 issue comment
documents that distinction. Their existing endpoint regression tests still pass.
Four 0 ms sweeps do not establish that media cleanup is broken: the scheduled
entry point has its own disabled-by-default switch and needs an enabled rule.
The current production values of those two gates were not read in this review.
## Live checks
- AnimeTosho `Bleach 21` returned 27 feed entries. Several TYBW releases carried
the original show's AniDB id (`2369`); metadata-only filtering is insufficient.
- With the fix, Bleach S02E01 / absolute 21 returns no candidates from that feed.
The remaining original-series batch entries provided no usable subtitles.
- Positive control: **Frieren: Beyond Journey's End S01E01** returned five
candidates. Downloading `687355:3586174` returned 1,590,207 bytes with valid ASS
`[Script Info]` and `[Events]` sections.
- SubSource's contract was read from its official API documentation, including
its public response examples. Successful keyed search and download are still
**pending live verification**; no real SubSource key was available.
## Scope and limits
No database migration is introduced. AnimeTosho rejects unverified aliases and
ambiguous files; operators should use the full series title. Historical
non-numeric SubSource ids need a new search. Multiple indistinguishable subtitles
in a SubSource archive are rejected rather than selecting an arbitrary file.
The original GitNexus database failed to refresh because of a lock/WAL error.
A fresh isolated worktree of these changes was indexed successfully. Its change
analysis found only the intended provider/config/sweep/release-note changes,
with overall medium risk and four affected config-update execution flows.
The config endpoint integration test covers the new field's write/reload path.
## Sources
- [AnimeTosho issue #210](https://github.com/Abrechen2/sublarr/issues/210)
- [Provider issue #207 and maintainer update](https://github.com/Abrechen2/sublarr/issues/207#issuecomment-5668575695)
- [SubSource API documentation](https://subsource.net/api-docs)
- [AnimeTosho live feed](https://feed.animetosho.xyz/json)
## Release gate
RC target: `1.14.2-rc.2`, staging port `5766`. Stable promotion remains a separate
step after RC acceptance. Validation results are recorded below before commit.
## Validation results
- Backend full run: **7,080 passed, 20 skipped, 30 failed, one collection error**.
All failures came from missing declared dependencies in the local virtualenv
(`dogpile.cache` and `lingua`, with dependent adapter imports also affected).
The same seven test files on clean `4ee741d7` reproduced **exactly 30 failures
and one collection error**. After installing the already-declared missing
packages, **all 53 tests in those seven files passed**. No production code or
dependency manifest change was needed to resolve them.
- Final targeted regressions: **48 passed** (AnimeTosho, SubSource, sweep gates).
Config masking/valid keys and existing scraper tests: **67 passed**.
- Frontend: **1,313 tests passed in 142 files**; ESLint and TypeScript passed.
- Backend Ruff lint and formatting passed for the full backend (1,254 files).
- Production frontend dependency license check passed.
- Local `linux/amd64` Docker image built. Health returned HTTP 200,
`status=healthy`, `version=1.14.2-rc.2`. The image has neither `/app/venv` nor
`/app/.venv`. Its gunicorn arguments match the Dockerfile command.
- No SubSource keyed live test, ARM64 build, registry publication or RC-server
deployment has been performed as part of this preparation.