- **Headless CLI:** Added headless CLI for autonomous subtitle sync pipelines. Contributed by @Aidenir in PR [#86](https://github.com/denizsafak/AutoSubSync/pull/86):
  >Introduces assy-cli with five subcommands (sync, shift, batch, config, version), JSON output mode, structured exit codes, and a slim Docker image - so AutoSubSync can run in CI/CD, scheduled jobs, and containers without a display or Qt event loop. The sync engine logic was extracted from SyncProcess into a new sync_core module that knows nothing about Qt; SyncProcess is now a thin adapter that wires Qt signals to sync_core callbacks. The pairing logic moved to a new pairing module the GUI re-imports. utils.py drops its top-level QtWidgets/QtGui imports so the CLI never loads Qt display libraries at runtime.
  
  See [Command-line interface (assy-cli)](https://github.com/denizsafak/AutoSubSync#command-line-interface-assy-cli) for detailed instructions.
- **Python 3.14+ Compatibility:** Added a shim for `pkg_resources` to ensure compatibility with legacy dependencies (like `autosubsync`) that fail in recent Python versions where `setuptools` is not installed by default, Updated `pyproject.toml` to allow installation on Python 3.14. Contributed by @MateusSantos14 in PR [#85](https://github.com/denizsafak/AutoSubSync/pull/85)
- **Custom Subtitle Suffix:** Added a new option called `Add custom suffix for subtitles` in settings to define a default custom suffix for processed subtitles. All save locations (except "Overwrite input subtitle") will append this suffix to the output file name, added `--suffix` parameter in both CLI subcommands (`sync` and `batch`).
- Fixed `No executable found for alass` error in Windows with PyPI build, mentioned by @Milor123 in issue [#84](https://github.com/denizsafak/AutoSubSync/issues/79)
- `Auto-Pairing with Season/Episode` now sorts paired items correctly before adding to batch view, mentioned by @enchained in issue [#71](https://github.com/denizsafak/AutoSubSync/issues/71)