Releases: Sea-Shell/sortarr
Release list
v2.20.2
2.20.2 (2026-06-24)
- fix(ci): guard build job against empty release tag (#410) (eea806c), closes #410
The build job in the release workflow runs on every push to main, but
only makes sense when a new semantic-release tag was actually created.
Without an if-guard, it tries to checkout refs/tags/ (empty git-tag
output) and fails with 'pathspec did not match any file(s)'.
Add if: needs.release.outputs.new-release-published == 'true' to
the build job, matching the pattern already used by the deploy job.
v2.20.1
2.20.1 (2026-06-24)
- fix(pipeline): decouple Phase 1 lookback from cross-pipeline tracking + add pipeline sorting (#409) (d9627ae), closes #409
- fix(pipeline): decouple Phase 1 lookback from cross-pipeline tracking + add pipeline sorting
Root cause: _compute_published_after() used get_min_tracking_for_subscription()
which returns the MIN(last_processed) across ALL pipelines. When a broad-scope
pipeline processed a subscription recently, this narrowed the YouTube API
lookback window in Phase 1 to just hours, causing zero activities to be
fetched for pipelines with narrow subscription scopes.
Fix: Remove cross-pipeline tracking from _compute_published_after(). Phase 1
now uses settings.published_after if set, otherwise reprocess_days, or 52-week
fallback. Per-pipeline freshness check at checkpoint 2.2 remains independent.
Also adds pipeline sort_order support:
- V9 migration: ALTER TABLE pipelines ADD COLUMN sort_order
- get_pipelines(): ORDER BY sort_order ASC, name ASC
- create_pipeline(): auto-increment sort_order from MAX + 1
- New PUT /pipelines/reorder batch endpoint
- PipelineCreate/Update/Response models with sort_order
- PipelineConfig dataclass with sort_order
- UI: ▲/▼ reorder buttons on pipeline cards, sort_order field in modal
- fix: address critic findings — full-list reorder API, PipelineConfig sort_order, validation, tests
- ci(deps): update azure/k8s-set-context digest to 8698eba (#406) (51579e2), closes #406
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> - ci(deps): update nrkno/github-workflow-semantic-release action to v4.14.0 (#408) (9e5c4af), closes #408
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> - chore(deps): lock file maintenance (#404) (3227068), closes #404
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> - chore(deps): update dependency pydantic-settings to v2.14.2 [security] (#402) (0c49bca), closes #402
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> - chore(deps): update python:3.14-slim docker digest to 63a4c7f (#407) (14e79d2), closes #407
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> - chore(deps): update python:3.14-slim docker digest to f54c5f3 (#405) (2efb428), closes #405
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com>
v2.20.0
v2.19.2
v2.19.1
2.19.1 (2026-06-19)
- fix: log decisions when pipeline subscription has no activity (#399) (502b50e), closes #399
Previously when a targeted subscription had no recent YouTube activity
or the API call failed, the pipeline silently skipped it without
recording any decision. Now both cases log a subscription_skipped
decision with a clear reason (no_new_activity / api_error).
v2.19.0
v2.18.0
v2.17.1
2.17.1 (2026-06-18)
-
fix(deps): update dependency @playwright/test to v1.61.0 (#396) (3ecca5e), closes #396
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> -
ci(deps): update actions/checkout action to v6.0.3 (#393) (092cac4), closes #393
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> -
ci(deps): update astral-sh/setup-uv action to v8.2.0 (#394) (415996a), closes #394
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> -
ci(deps): update nrkno/github-workflow-semantic-release action to v4.13.0 (#395) (1485b96), closes #395
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> -
chore(deps): lock file maintenance (#390) (b22da0a), closes #390
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> -
chore(deps): pin dependency @playwright/test to v1.60.0 (#391) (b0b6fdb), closes #391
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> -
chore(deps): update python:3.14-slim docker digest to 44dd044 (#392) (13c8e4c), closes #392
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com>
v2.17.0
2.17.0 (2026-06-12)
- feat(ui): add sortarr icon set (splitter concept) (#387) (a013aa9), closes #387
- feat(pipeline): add detailed routing info to video decisions
- pipeline_runner: include pipeline name, rule, playlist, pipeline_id in reason_detail for added videos
- ui: show 'Confirmed' badge and highlight match details in run details table
- feat(ui): compact run-detail page with expandable skipped videos
- Added tracks now center of attention with green highlight and 'Added to Playlist' header
- Skipped/error videos hidden in expandable section
- Subscription skips remain visible
- Summary counts color-coded (green added, muted skipped, red errors)
- feat(ui): add app icons with neon cyberpunk theme
- icon.svg: Full-size animated SVG with flow particles, sort arrows, playlist blocks
- favicon.svg: Compact 32x32 version for browser tabs
- manifest.json: PWA manifest for installable app
- All icons use neon red/cyan/green color scheme matching UI
- feat(ui): use new sortarr icons (splitter concept)
- sortarr-icon.svg: Full neon version with dark bg
- sortarr-icon-transparent.svg: Transparent bg for favicon
- sortarr-icon-mono.svg: Monochrome for mask-icon/notifications
- Updated manifest.json and index.html references
- chore(ui): remove old icon files (replaced by sortarr-icon set)
v2.16.0
2.16.0 (2026-06-12)
- feat(pipeline): add detailed routing info to video decisions (#386) (779c4a7), closes #386
- feat(pipeline): add detailed routing info to video decisions
- pipeline_runner: include pipeline name, rule, playlist, pipeline_id in reason_detail for added videos
- ui: show 'Confirmed' badge and highlight match details in run details table
- feat(ui): compact run-detail page with expandable skipped videos
- Added tracks now center of attention with green highlight and 'Added to Playlist' header
- Skipped/error videos hidden in expandable section
- Subscription skips remain visible
- Summary counts color-coded (green added, muted skipped, red errors)
- chore(deps): update python:3.14-slim docker digest to 3fa9f11 (#384) (41cb4de), closes #384
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com> - chore(deps): update python:3.14-slim docker digest to d7a925f (#385) (0348c98), closes #385
Co-authored-by: sea-shell-renovate[bot] <276363836+sea-shell-renovate[bot]@users.noreply.github.com>