Skip to content

Releases

Smart Optimizer UI v2.2.4

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:18
f2a4028

Smart Optimizer UI v2.2.4

Rate-limit-safe updater metadata

v2.2.4 removes the normal dependency on GitHub's unauthenticated REST API for update checks.

The previous updater queried api.github.com/releases/latest. During the live v2.2.2 test, the earlier browser refresh loop repeatedly forced fresh release checks and exhausted GitHub's unauthenticated API quota for the NAS public IP, producing HTTP 403 rate-limit errors even though newer releases existed.

Smart Optimizer now checks a small release asset named SmartOptimizerUI-update.json through GitHub's normal release-download path. Each release publishes this manifest with:

  • release version and notes
  • application bundle filename, size and direct download URL
  • application bundle SHA-256
  • SPK filename, size and direct download URL
  • SPK SHA-256

The GitHub API remains only as a compatibility fallback.

Additional updater fixes retained

  • the Updates page no longer loops after a successful update
  • successful update POSTs redirect back to the normal Updates page
  • queued/installing updates cannot be submitted repeatedly
  • update payload and supervisor use the same persistent package update directory
  • release assets without a trusted SHA-256 digest are rejected
  • an unavailable update server now shows Unavailable rather than incorrectly showing Up to date
  • favicon caching is corrected for SPK installs

No optimizer ranking, RULES, connection, authentication, or local-state behavior changed.

Smart Optimizer UI v2.2.3

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:09
2252ed8

Smart Optimizer UI v2.2.3

Updates page refresh-loop hotfix

v2.2.3 fixes a browser refresh loop that could appear after a successful in-app update.

The updater correctly switched Smart Optimizer to the new application release, but the Updates page kept seeing the persistent updated status and redirected itself back to /updates?refresh=1 every polling cycle.

The page now reloads only when the running application version differs from the version that originally rendered the page. That gives exactly one reconnect after an update:

  • old page sees the new running version
  • browser reloads once
  • new page is rendered by the new version
  • polling continues without further reloads

No optimizer, RULES, connection, authentication, or local-state behavior changed.

Smart Optimizer UI v2.2.2

Choose a tag to compare

@github-actions github-actions released this 26 Sep 12:49
b952725

Smart Optimizer UI v2.2.2

Self-update hotfix

v2.2.2 fixes the first real-world issue found while testing the new v2.2.0 Radarr-style updater.

The v2.2.0 application downloaded update bundles under the configuration directory while the stable supervisor only accepted bundles from the package update directory. The supervisor therefore rejected a correctly downloaded and SHA-256 verified bundle with:

Update bundle is outside package storage.

v2.2.2 aligns both sides on the same persistent package update directory.

Update page improvements

  • Successful in-app update submissions now redirect back to the normal Updates page instead of leaving the browser on the POST endpoint.
  • Refreshing the browser can no longer re-submit the update form and accidentally queue the same update repeatedly.
  • While an update is queued or installing, the button displays Updating… and is disabled.
  • When already current, the button displays Up to date.
  • The favicon response is no longer cached for a day and the favicon URL is cache-busted once so Synology SPK installs pick up the bundled Smart Optimizer icon reliably.

Architecture

The v2.2.x application updater remains unprivileged. It updates only the writable Smart Optimizer application payload; the stable Synology package shell remains in place.

Fresh installs and package-level changes still use the normal SPK.

Smart Optimizer UI v2.2.1

Choose a tag to compare

@github-actions github-actions released this 26 Sep 12:38
6fcf789

Smart Optimizer UI v2.2.1

First one-click in-app update test

v2.2.1 is intentionally a small follow-up release whose main purpose is to prove the new v2.2.0 Radarr-style updater on a real Synology install.

If you already installed the v2.2.0 SPK, this release should be installable entirely from Smart Optimizer:

  1. Open Settings > Updates.
  2. Press Update now.
  3. Smart Optimizer downloads the official v2.2.1 application bundle from GitHub.
  4. The GitHub SHA-256 digest is verified.
  5. The stable package supervisor verifies and stages the bundle again.
  6. Smart Optimizer restarts automatically on v2.2.1.
  7. If startup validation fails, the supervisor rolls back to the previous working release.

No DSM Package Center step should be required for this application update.

What changed

This is a validation release for the new self-update architecture. There are no intended changes to optimizer ranking, RULES V2, Radarr/Sonarr connection settings, authentication, or local state.

The normal SPK is still published for fresh installs and package-level upgrades, while existing v2.2.0 installs should use the in-app application bundle.

Security

  • The updater remains unprivileged.
  • Only the Smart Optimizer application payload is replaced.
  • SHA-256 is verified before activation.
  • Unsafe archive paths and symlinks are rejected.
  • Local API keys, passwords, control JSON, connection files, exclusions, and runtime state are not part of the update bundle.

Smart Optimizer UI v2.2.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 09:30
7af9cd1

Smart Optimizer UI v2.2.0

Radarr-style in-app updates for Synology SPK installs

v2.2.0 changes the Synology package architecture so normal Smart Optimizer application updates no longer require DSM Package Center after the one-time v2.2.0 package installation.

The SPK now contains a small stable, unprivileged supervisor. The supervisor launches Smart Optimizer from writable package storage and handles verified application updates without replacing the Synology package itself.

Update flow

  • Smart Optimizer checks the official GitHub release.
  • The UI downloads the versioned Smart Optimizer application bundle.
  • GitHub's SHA-256 release digest is verified before installation.
  • The stable supervisor re-verifies the downloaded bundle.
  • The bundle is extracted only inside Smart Optimizer's package storage.
  • Required files are validated and Python sources are compiled before activation.
  • The supervisor switches to the new application release and restarts the web UI.
  • If the new application exits during startup validation, the supervisor automatically rolls back to the previous working release.

This is similar to Radarr's in-app update model: normal application files can update themselves while the package/service shell remains stable.

Package updates

A new SPK is only needed when package-level components change, such as the supervisor, bundled Python runtime, Synology service integration, package permissions, or DSM compatibility.

Security

  • The supervisor runs as the normal Synology package user, not root.
  • Application update bundles are restricted to the official Smart Optimizer GitHub release.
  • SHA-256 is checked before activation.
  • Unsafe archive paths and symlinks are rejected.
  • API keys, passwords, local control JSON, connection files, and runtime state are not included in release bundles.
  • Release bundles identify themselves as release builds rather than the development/master instance.

Migration

Install the v2.2.0 SPK over the currently installed Smart Optimizer package once. After that, normal Smart Optimizer application releases can update from inside the Updates page automatically.

Smart Optimizer UI v2.1.2

Choose a tag to compare

@github-actions github-actions released this 26 Sep 09:12
f5ac5b6

Smart Optimizer UI v2.1.2

DSM 7 updater fix

This release fixes the GitHub SPK update flow introduced in v2.0.4.

The previous updater correctly downloaded the latest SPK and verified its SHA-256 digest, but then wrote an install-request file for a host updater that was never present in the public package. The UI therefore claimed that installation would continue automatically even though no installer was running.

On DSM 7, third-party packages run as an unprivileged package user, so a normal GitHub-installed SPK cannot safely replace itself through the privileged Package Center installer.

v2.1.2 changes the flow to:

  • download the latest GitHub SPK to package storage
  • verify its SHA-256 digest
  • expose that verified SPK back to the authenticated browser
  • let the user download the verified package
  • instruct the user to install it over the existing version using DSM Package Center > Manual Install
  • preserve existing Smart Optimizer configuration/state during the package upgrade

The release build also fails if the packaged UI ever again claims that automatic self-installation will continue.

Also retained

  • Release SPKs identify themselves as release builds, not the development/master build.
  • RULES V2 behavior is unchanged.
  • No local API keys, control JSON, passwords, or runtime state are included.

Smart Optimizer UI v2.1.1

Choose a tag to compare

@github-actions github-actions released this 26 Sep 09:04
38dd650

Smart Optimizer UI v2.1.1

Packaging hotfix

This release fixes the update/status page in the downloadable Synology SPK.

GitHub release packages now identify themselves as installed release builds instead of the development/master build. The package build also validates this before publishing so the development-only status override cannot accidentally ship again.

No optimizer ranking, RULES V2, API, or local configuration behavior changed from v2.1.0.

Smart Optimizer UI v2.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 02:54
2a2aaa1

Smart Optimizer UI v2.1.0

RULES V2

This release adds the new configurable Radarr and Sonarr RULES system.

New RULES controls

  • Dedicated RULES pages for Radarr and Sonarr.
  • Configurable resolution paths and per-path growth limits.
  • Codec preference selector: none, x265, x264 or AV1.
  • Source preferences including Remux, BluRay, WEB-DL, WEBRip and HDTV.
  • Optional HDR10+, 10-bit, DTS:X, lossless audio and E-AC-3/DD+ preferences.
  • Optional PROPER/REPACK and Freeleech preferences.
  • Optional smaller-file and seeder tie-breaking.
  • Dynamic ordered preferred-indexer lists populated from the configured Arr indexers.
  • Preferred indexers do not remove fallback releases from consideration.

Ranking

  • Highest permitted resolution remains the first hard selection boundary.
  • Radarr and Sonarr now use configurable V2 release ranking instead of the old hard-coded TorrentLeech/x265 preference logic.
  • Nonpreferred indexers remain valid fallbacks.
  • Existing hard safety checks remain in force.
  • Sonarr's unintended hidden 40% reduction cap has been removed.

UI

  • Larger RULES controls on both dashboards.
  • Radarr RULES uses the Radarr red hover treatment.
  • Sonarr RULES uses the Sonarr blue hover treatment.
  • Restored the dedicated 32x32 browser favicon.

Synology

  • 64x64 and 256x256 DSM package icons are now retained as explicit package assets.
  • Native offline x86_64 SPK packaging remains self-contained.

Fresh-install defaults

Public releases do not contain the maintainer's local RULES configuration.

  • Optional RULES preferences default to OFF.
  • Percentage/growth defaults are 0%.
  • Preferred-indexer lists start empty.
  • Local Smart Optimizer control JSON is not included.

Privacy

The public release does not contain:

  • Radarr API keys
  • Sonarr API keys
  • passwords or Deluge credentials
  • private LAN addresses
  • smart-optimizer-control.json
  • optimizer runtime state

Smart Optimizer UI v2.0.4

Choose a tag to compare

@github-actions github-actions released this 25 Sep 22:59
bf2b5c0

Smart Optimizer UI v2.0.4

Performance and source-cleanup checkpoint

This release freezes the tested Smart Optimizer UI state before the next feature-development cycle.

Changes

  • Added RAM-only stale-while-revalidate caching for Radarr and Sonarr history, queue, and API-status requests.
  • Reduced page navigation latency by avoiding repeated synchronous API waits.
  • Moved large embedded PNG artwork out of smart-optimizer-ui.py and into assets/.
  • Reduced the primary UI Python source from roughly 12 MB to roughly 423 KB.
  • Deduplicated the shared Update Status/Favicon and Admin Update Mode blocks.
  • Shared UI fragments now live under assets/fragments/.
  • Updated Docker packaging to ship the external assets.
  • Updated native Synology SPK packaging to ship the external assets.
  • Preserved existing Radarr/Sonarr optimizer behavior and current UI appearance.

Privacy

Local API keys, connection configuration, optimizer state files, and Smart Optimizer control files are not included.

Smart Optimizer UI v2.0.3

Choose a tag to compare

@github-actions github-actions released this 25 Sep 21:05
48160e7

Smart Optimizer UI v2.0.3

Package Center icon hotfix

This release fixes the DSM Package Center artwork without changing Smart Optimizer behavior.

  • Replaces the package icon source with the exact supplied 128x128 Smart Optimizer logo.
  • Generates DSM 7's required 64x64 PACKAGE_ICON.PNG.
  • Generates the matching 256x256 PACKAGE_ICON_256.PNG.
  • Preserves transparency and the original logo composition.
  • Adds build validation so future SPKs fail if either icon has the wrong dimensions.

All native/offline functionality from v2.0.2 is unchanged.