0.53.1

dgtlmoon/changedetection.io0.53.1Feb 16, 2026by dgtlmoon

AI Summary

This is a major release featuring a significant architectural refactor of the datastore backend to split data into individual files, alongside numerous API and queue system improvements.

Key Highlights

  • Major datastore backend refactor
  • Improved API fixes
  • Queuing system refactor
  • Memory improvements
  • Support for remote reverse proxies

New Features

  • Datastore backend refactor
  • API improvements
  • Queue system refactor
  • Watch limit capability
  • Background import tasks

Full Release Notes

# Big changes
- Very large refactor of the datastore backend, instead of all watch data stored in a single JSON DB, splits the info into `uuid/watch.json` and `uuid/tag.json`
-  Lots of API fixes
- Queuing system refactor (reduces code)

## What's Changed
* Bump apprise from 1.9.6 to 1.9.7 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/3800
* Update messages.po // German by @DominikHerold in https://github.com/dgtlmoon/changedetection.io/pull/3797
* Cli options by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3802
* add support for remote reverse proxies by @kyeotic in https://github.com/dgtlmoon/changedetection.io/pull/3806
* Improved catching of errors/exceptions in Browser Steps steps  by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3808
* Big refactor to save watches as their own datafile with some agnostic data store backend by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3775
* Db data upgrade fixes by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3811
* Make watch tags link elements by @opicron in https://github.com/dgtlmoon/changedetection.io/pull/3813
* API - Notification URLs werent always being validated by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3812
* Ability to limit total number of watches with env var `PAGE_WATCH_LIMIT` by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3828
* Janus queue worker not needed, improves multiple workers by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3826
* Puppeteer and Playwright browser close/shutdown improvements by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3830
* Bump elementpath from 5.1.0 to 5.1.1 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/3799
* Processor plugin improvements by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3739
* Memory improvement - Use builtin markupsafe instead of creating a jinja2 template env each time for small strings by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3836
* Limit trim history size by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3834
* Improved watch global settings handling by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3839
* Adding more tests and references by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3841
* Rebuild translations by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3842
* Fix for When MoreThanOnePriceFound() is raised, plugins dont fire  by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3840
* Bump pyppeteer-ng from 2.0.0rc12 to 2.0.0rc13 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/3843
* Bump psutil from 7.2.1 to 7.2.2 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/3844
* Refactor by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3847
* Refactor for Tags storage by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3848
* Tags update fix by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3849
* API - Include missing `tags` in fetching watch information. #3854 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3856
* API - Import - Ability to set any watch value as HTTP URL Query value for example `api/import?processor=restock_diff&time_between_check={'hours':24}`  Re #3845 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3857
* API - Import use background task to import large lists by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3858
* Refactoring upgrade path by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3861
* Price tracker - Use subprocess on linux for cleaner memory management. by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3864
* Update python-engineio requirement from ~=4.13.0 to ~=4.13.1 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/3868
* API - Remove `flask_expects_json` validation, this is covered entirely by OpenAPI, update OpenAPI spec. by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3871
* Update python-socketio requirement from ~=5.16.0 to ~=5.16.1 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/3869
* Avoid reprocessing if the page was the same by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3867
* UI - Ability to download a complete data package (.zip) of a watch by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3877
* Browser Steps - Clean off empty fields on save/update, small refactor Re #3874, #3879 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3880

## New Contributors
* @kyeotic made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/3806
* @opicron made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/3813

**Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.52.9...0.53.1