Skip to content

Release history

watchstate releases

Self-hosted service to sync your plex, jellyfin and emby play state. without relying on 3rd-party external services.

All releases

14 shown

No immediate action
v1.8.5 Mixed

GUID source + timeout increase + markdown fix

No immediate action
v1.8.4 Bug fix

Migration fixes + backend refactor

No immediate action
v1.8.3 Bug fix

Database reset bugfix

No immediate action
v1.8.2 Mixed

SQLite fix + CLI events

v1.8.1 Bug fix

Fixed legacy DB migration command now skips non‑existent tables.

Full changelog

What's Changed

  • fix: allow legacy db migration command to skip tables that dont exists by @arabcoders in https://github.com/arabcoders/watchstate/pull/820

Full Changelog: https://github.com/arabcoders/watchstate/compare/v1.8.0...v1.8.1


Commits since v1.8.0

  • a83098e fix: allow legacy db migration command to skip tables that dont exists. Fixes #819
v1.8.0 Bug fix
Notable features
  • HMAC signature verification for command requests
  • CLI view for history
  • Additional locking handling in processing DB
Full changelog

What's Changed

  • Refactor: move migrations over to new db package. by @arabcoders in https://github.com/arabcoders/watchstate/pull/815
  • fix: webhook failing sometimes during long import operations. by @arabcoders in https://github.com/arabcoders/watchstate/pull/816

Full Changelog: https://github.com/arabcoders/watchstate/compare/v1.7.0...v1.8.0


Commits since v1.7.0

  • fca37d9 fix: prevent infinite loop when StreamBody used in wrong way.
  • f28211b refactor: improve the console history.
  • 6731b4c refactor: how we handle and discover prune handlers
  • 8a8f045 feat: implement HMAC signature verification for command requests.
  • 2f0cefe chore: better naming format for tests, and updated external packages
  • 9308e87 fix: another attempt at fixing sqlite 21 bad parameter or other API misuse error
  • 4b03386 refactor: move migrations and db operations over to new package.
  • 17049a1 fix: some tests didnt set the tmpPath correctly.
  • b0b2683 refactor: fix sqlite pragma loading
  • 61724f8 refactor: standardize user selection cross commands
  • 5775d34 chore: delete useless tests and standardize tests support utils
  • 88d3b85 refactor: decouple old dblayer from new package connection
  • 0771186 fix: webhook failing sometimes during long import operations.
  • e253dd0 feat: add CLI view for history view
  • d493cde feat: handle more locking cases in processing db.
  • 6884835 refactor: tests
  • 233230a refactor: handle emby multipart request and test events.
  • 0415550 feat: redesign the video player.
  • cc554fc refactor: queue webhooks directly to cache if task scheduler is runnig task.
  • 00b6f97 fix: add compat for v1.7.0 migrations
  • 1fe7290 feat: link task prev run to event id
v1.7.0 New feature
Notable features
  • Playlist sync across multiple backends
  • Plex NFO agent support
  • OpenAPI viewer
Full changelog

What's Changed

  • feat: Playlist Sync by @arabcoders in https://github.com/arabcoders/watchstate/pull/812
  • feat: add support for plex new nfo agent by @arabcoders in https://github.com/arabcoders/watchstate/pull/814

Full Changelog: https://github.com/arabcoders/watchstate/compare/v1.6.0...v1.7.0


Commits since v1.6.0

  • 01b6444 feat: initial code to support playlist sync cross backends
  • 63279a1 refactor: add more logging to playlist sync and switch to more relaxing sync mode
  • 22d6174 docs: add openapi viewer
  • cf669fb fix: fix an edge case where due to global transaction some inserts would fail and the failed prepared statement will carry over.
  • 5c81df1 fix: sqlite 21 bad parameter or other API misuse triggered sometimes due to different scaler type
  • cbf5f82 refactor: minor UI updates to logs rendering
  • 18f3baf feat: add support for plex new nfo agent
v1.6.0 Security relevant
Security fixes
  • Harden security throughout API endpoints
  • Restrict auth open scope to limited routes
Notable features
  • Ratelimit middleware
  • Environment key management commands
  • API token refresh
Full changelog

What's Changed

  • feat(console): gracefully handle command execution restore by @arabcoders in https://github.com/arabcoders/watchstate/pull/806
  • Refactor: Harden security throughout API endpoints by @arabcoders in https://github.com/arabcoders/watchstate/pull/807
  • Fix: Major performance tuning and bug fixes by @arabcoders in https://github.com/arabcoders/watchstate/pull/811

Full Changelog: https://github.com/arabcoders/watchstate/compare/v1.5.1...v1.6.0


Commits since v1.5.1

  • fc5352a refactor: improve history rendering and add raw view to search
  • fa34ef1 feat(console): gracefully handle command execution restore
  • 7afc881 fix(console): harden the restore logic
  • 0aed994 refactor(console): make ping event a comment instead of an event
  • 7c67e53 refactor: extend the form guard to route change as well
  • de4899a refactor: as player endpoint is public and secured by token it doesnt need the api key.
  • 137db07 fix: restrict the auth open scope to limited routes
  • b4bcdc9 feat: add Ratelimit middleware
  • e70e620 feat: add commands to manage environment keys
  • 3a14818 refactor: update dialog message handling
  • 7983361 feat: add token refresh to the API
  • 30812b6 refactor: drop command auto run in web console
  • de53247 feat: add TestCommand for API endpoint testing
  • c378100 refactor: limit backup API endpoint to json/zip files
  • 0810c0e feat: enhance static asset serving and restrict static serving to specified dirs
  • 4cc6c5a fix: allow setting theme as system
  • 30e49e2 fix: update tests to target existing file.
  • d0cbd5c fix: do not fallback to remote api for icons.
  • 88876c3 fix: include complete icons
  • 5fb3acb refactor: update how we render changelog page
  • da14aa0 refactor: add swipe control for sidebar
  • ca45255 fix: isMobile watch
  • 57a753c refactor: rename variable to showSidebar
  • 5359713 refactor: re-enable plex external user support
  • 1a137b2 feat: add backend TestCommand for backend client actions
  • df57e67 feat: Add date format customization for WebUI
  • 632df7b fix(ui/sidebar): edge swipe in iOS safari
  • 7eba957 fix(httpClient): Debug logging now preserves named query params
  • 3116929 fix: sidebar should be styled like main content
  • 2550ff2 refactor: update the history item view page
  • 2f5b123 feat: add user-aware db query command
  • 6ed688b Refactor: implement real sync-requests for export related write requests
  • 53aca78 refactor: save profile data to file in dev mode
  • 04e604c fix: wrap import call in single transaction to speed up the import proccess
  • 2c7262d refactor: Reuse prefetched show metadata during Plex and Jellyfin import
v1.5.1 Breaking risk
Breaking changes
  • Users and sub-users renamed to identities
Notable features
  • Integration of arabcoders/database package with updated database configuration
Full changelog

What's Changed

  • Refactor: update history rendering page by @arabcoders in https://github.com/arabcoders/watchstate/pull/802
  • refactor: rename users and sub users to identities by @arabcoders in https://github.com/arabcoders/watchstate/pull/804

Full Changelog: https://github.com/arabcoders/watchstate/compare/v1.5.0...v1.5.1


Commits since v1.5.0

  • 2cc3a3b refactor: affix user db file with version
  • 2e947bd feat: integrate arabcoders/database package and update database configuration
  • 5b64d66 refactor: update how history page renders
  • 119bed0 docs: add contributing guidelines for the project
  • 73c7bb3 refactor: rename users and sub users to identities to reduce confusion, and convert backends:create to an API endpoint
  • 0b41257 docs: update README
v1.5.0 New feature
Notable features
  • Frontend rewrite using Nuxt UI
  • API documentation
  • Scheduler display fixes
v1.0.9 Breaking risk
Breaking changes
  • Plex no longer provides way to obtain external user token
Security fixes
  • Updated firebase/php-jwt to version 7.0
Notable features
  • Configuration option to disable deduplication
v1.0.8 Maintenance

Code quality improvements including linting and test preparation, bugfixes for metadata and imports, and switched build tool from pnpm to bun.

v1.0.7 Bug fix

Fixed Jellyfin API mark-as-played workaround and resolved incomplete Plex user list synchronization issue affecting media state tracking.

Beta — feedback welcome: [email protected]