Skip to content

Fix subtitle sync races and prepare Bazarr+ v2.6.2 - #429

Merged
LavX merged 5 commits into
developmentfrom
release/262-verified-20260907
Sep 7, 2026
Merged

Fix subtitle sync races and prepare Bazarr+ v2.6.2#429
LavX merged 5 commits into
developmentfrom
release/262-verified-20260907

Conversation

@LavX

@LavX LavX commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Background subtitle sync could overwrite a newer edit or recreate a deleted subtitle after #428. This follow-up coordinates subtitle writers and publishes sync results only while their original destination is still current. Ownership checks protect unrelated files, and cleanup errors no longer hide successfully saved subtitles.

Library scans now reuse an ownership index for custom subtitle folders, while mutation checks remain fresh. Successful sync promotions retain confirmation history if index refresh fails. Saved uploads notify media consumers before sync setup or queueing can fail, and refresh them again after successful sync.

Gemini cancellation stops subsequent requests and retries and clears progress. Translator status cards remain visible for zero counts, loading and errors, with a dash for unavailable counts.

The release preparation commit prepares Bazarr+ v2.6.2 (Clockwork): version metadata, 18 in-app release slides, the site entry and archived release notes. This PR targets development; publishing the release is a separate step.

Validation of the combined candidate:

  • Independent source review and maintainer verification on the test instance completed. Commit 472e72d matches all 1,433 tested ordinary files and modes, with unchanged submodule references.
  • Full local CI: 944 frontend tests passed, two skipped; 3,914 backend tests passed, eight skipped on each of Python 3.12, 3.13 and 3.14. Node 24.20.0, type checking, lint, formatting, production build and PostgreSQL checks passed.
  • Exact-image checks passed all 517 production files, 49 default-start cases and 192 runtime acceptance cases. Runtime probes used disposable fixtures with networking disabled and no live media/configuration mounts. All 517 deployed files matched the built image.
  • Browser checks passed ten translator scenarios, six movie/series upload scenarios and all 18 release-tour slides and destinations. Upload checks cover drops during archive extraction and single-close dismissal. The first tour run reported two HTTP callback errors after its behavior checks; a diagnostic-only repeat passed with zero callback errors. Their cause remains unconfirmed, and both results are retained.
  • Full configuration, all 63 provider configurations and installed versions, launch settings, and library/history counts were preserved. The separately deployed translator and existing rollback containers were preserved.

LavX added 3 commits September 7, 2026 13:57
Preserve later subtitle edits and deletions while background sync runs.
Refresh media services after outputs are saved and keep media ownership
checks when retiring generated subtitles. Report cleanup errors without
losing track of a successfully saved subtitle.

Stop Gemini requests and retries after cancellation and clear progress.

Follow up on #428.
Render all four cards for zero counts, loading and connection errors.
Show a dash for unavailable counts and preserve valid counts when only
the jobs list fails.
Prepare the stability patch with subtitle publication, translation,
provider handling, routing, upload and dependency corrections.

- Stamp package_info with version 2.6.2.
- Add 18 in-app release slides and version persistence.
- Update the site version and roadmap and archive the release notes.

Deploy-verified: the test instance reports 2.6.2, starts cleanly and passes
all 18 release-tour slides, ten translator and six upload browser cases.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-07T13:50:17.397153Z 472e72d New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Add #429 to the complete release inventory.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0487330fc4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread bazarr/subtitles/tools/subsync_engines.py Outdated
Comment thread bazarr/api/subtitles/content.py Outdated
Comment thread bazarr/subtitles/upload.py
Reuse a lazy ownership index within each library scan while keeping mutation checks fresh. Record successful sync promotion even when index refresh fails, and notify media consumers before sync setup can fail after an upload.

Cover scan ownership scaling and both publication failure paths with regression tests.
@LavX
LavX merged commit 83b59cf into development Sep 7, 2026
4 checks passed
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.

1 participant