# changedetection.io changelog > Self-hosted website change detection and notification. - Vendor: changedetection.io - Category: Productivity - Official site: https://changedetection.io - Tracked by: What's New (https://whatsnew.fyi/product/changedetection-io) - Harvested from: GitHub (dgtlmoon/changedetection.io) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 0.55.8 - Date: 2026-07-13 - Version: 0.55.8 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.8 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.8 - **added** — Add Russian (ru) translation - **changed** — Czech translation updated and refined - **changed** — Restock rename original price to last price - **changed** — LLM strip sampling params and retry when the model rejects them - **changed** — Restock LLM fallback make the 8000 char content limit configurable, change to 15,000 chars by default - **changed** — Raise or remove LLM timeout when local endpoint detected - **changed** — JavaScript UI strings not covered by translations - **fixed** — Extract from pages with large <head> sections - **fixed** — Tag RSS feed ignores security token when password protection is enabled - **fixed** — URL validation rejects valid URLs with '|' in the anchor/fragment - **fixed** — Don't error watches when Content-Type is JSON but body isn't parsable - **fixed** — Safe-empty restock default so restock notification tokens work for any watch ##### What's Changed * feat: Czech translation updated and refined by @svetlemodry in https://github.com/dgtlmoon/changedetection.io/pull/4203 * fix: extract <title> from pages with large <head> sections (#4217) by @crossi-dev in https://github.com/dgtlmoon/changedetection.io/pull/4220 * Restock rename original price to last price by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4227 * fix: Tag RSS feed ignores security token when password protection is enabled by @medzin in https://github.com/dgtlmoon/changedetection.io/pull/4235 * LLM: strip sampling params and retry when the model rejects them by @quinnypig in https://github.com/dgtlmoon/changedetection.io/pull/4241 * fix: URL validation rejects valid URLs with '|' in the anchor/fragment (#4209) by @AmirF194 in https://github.com/dgtlmoon/changedetection.io/pull/4243 * fix: .gitignore the real test-log path (changedetectionio/tests/logs) by @AmirF194 in https://github.com/dgtlmoon/changedetection.io/pull/4247 * Add Russian (ru) translation by @Marfa in https://github.com/dgtlmoon/changedetection.io/pull/4236 * Bump the all group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/4238 * fix: don't error watches when Content-Type is JSON but body isn't parsable (#3827) by @TowyTowy in https://github.com/dgtlmoon/changedetection.io/pull/4250 * fix: safe-empty restock default so restock notification tokens work for any watch by @ebarkhordar in https://github.com/dgtlmoon/changedetection.io/pull/4249 * LLM - Raise or remove LLM timeout when local endpoint detected #4225 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4254 * [i18n] JavaScript UI strings not covered by translations #4233 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4255 * [feature] Restock LLM fallback: make the 8000 char content limit configurable, change to 15,000 chars by default #4213 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4257 ##### New Contributors * @crossi-dev made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4220 * @medzin made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4235 * @quinnypig made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4241 * @AmirF194 made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4243 * @Marfa made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4236 * @TowyTowy made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4250 * @ebarkhordar made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4249 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.55.7...0.55.8 ### 0.55.7 - Date: 2026-05-25 - Version: 0.55.7 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.7 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.7 - **fixed** — Fix LLM settings UI issue with wtforms vs pydantic ##### What's Changed * UI - LLM - Fix for settings (wtforms vs pydantic) by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4184 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.55.6...0.55.7 ### 0.55.6 - Date: 2026-05-25 - Version: 0.55.6 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.6 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.6 - **security** — Fix SSRF vulnerability in ChangeDetection.io via urlparse/urllib3 Parser Differential - **fixed** — UI preview problem with extract_text/ignore_text - **added** — Flag `LLM_FEATURES_DISABLED` to disable all LLM from the UI/system - **fixed** — Notifications `raw_diff` token was missing - **changed** — LLM UI blueprint/code is also disabled when env flag `LLM_FEATURES_DISABLED` is enabled - **changed** — LLM settings pydantic refactor ##### Security updates Security - SSRF in ChangeDetection.io via urlparse/urllib3 Parser Differential ##### What's Changed * UI - Preview problem fix for extract_text/ignore_text #4138 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4169 * UI - LLM - Flag `LLM_FEATURES_DISABLED` to disable all LLM from the UI/system by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4171 * Notifications - `raw_diff` token was missing by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4177 * LLM UI - Blueprint/code also disabled when env flag `LLM_FEATURES_DISABLED` is enabled by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4180 * Llm settings pydantic refactor by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4181 * lint: Bump dennis — adopt `--strict` mode and drop false-positive workarounds by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4182 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.55.5...0.55.6 ### 0.55.5 - Date: 2026-05-19 - Version: 0.55.5 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.5 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.5 - **fixed** — Fix Spanish translations for 'Changed' and 'Last Changed' - **fixed** — Fix 'str' object is not callable error when diff(...) callable tokens are used with HTML/htmlcolor output in notifications - **added** — Add master on/off switch to enable/disable LLM ##### What's Changed * Fix Spanish translations for 'Changed' and 'Last Changed' by @maperal in https://github.com/dgtlmoon/changedetection.io/pull/4160 * Notifications - Fix `'str' object is not callable` when `{{ diff(...)}}` callable tokens are used with HTML/htmlcolor output by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4161 * LLM - Master on/off switch (enable/disable) by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4162 ##### New Contributors * @maperal made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4160 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.55.4...0.55.5 ### 0.55.4 - Date: 2026-05-19 - Version: 0.55.4 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.4 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.4 - **changed** — Improve LiteLLM dependencies - **changed** — AI/LLM Summary button now sets last viewed - **fixed** — API watch.link was accidentally a tuple, now enforcing string - **added** — API Add restock config to API /v1/watch/ json output - **fixed** — Notifications add extra check for system default - **fixed** — Escape only the diff variables before Jinja2 renders them into the template to stop breaking custom HTML for plaintext pages on HTML notifications - **security** — Fix GHSA-vwgh-2hvh-4xm5 substring match in the shared_diff_access - **added** — LLM self-hosted OpenAI-compatible endpoint support for vLLM, LM Studio, and llama.cpp - **changed** — LLM integration LiteLLM config UI tweaks - **changed** — Make LLM status sticky in UI - **fixed** — LLM fixing summary cache miss-hit - **changed** — Text filters process subtractive_selectors first - **changed** — API better support for watch API private and internal vars - **changed** — Text filters ignore text should run before extract text - **fixed** — Docker INSTALLED_MARKER is kept in /datastore but package installs are not persistent, now relying on pip instead - **changed** — LLM Ollama etc tweaks - **security** — LLM SSRF guard for the LLM api_base setting in UI - **security** — API Security Watch GET history snapshot should return text/plain mimetype so it cannot be accidentally executed in the browser ##### What's Changed * i18n: Ruff INT (flake8-gettext) by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4096 * UI - AI/LLM - "Summary" button should set last viewed by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4095 * Improve LiteLLM deps #4093 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4102 * i18n: Add dennis .pot/.po lint by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4097 * API - watch.link was accidently a tuple, enforcing string by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4104 * API - Add restock config to API /v1/watch/ json output #4099 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4103 * i18n: Enforce dennis lint warnings in CI by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4105 * i18n: Clear pre-existing dennis warnings in `messages.pot` by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4112 * i18n: Fix broken HTML tags and enforce dennis lint warnings in CI by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4116 * Notifications - extra check for system default by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4122 * Notifications - Escape only the diff variables before Jinja2 renders them into the template ( Stop breaking custom HTML for plaintext pages on HTML notifications) #4121 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4123 * Fixing GHSA-vwgh-2hvh-4xm5 — substring match in the shared_diff_access by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4130 * Bumping tests by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4131 * LLM - Self-hosted OpenAI-compatible endpoint support (vLLM, LM Studio, llama.cpp) — refs #3204 by @tekgnosis-net in https://github.com/dgtlmoon/changedetection.io/pull/4117 * LLM integration - LiteLLM config - UI tweaks by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4134 * UI - Make LLM status sticky by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4135 * LLM - Fixing summary cache miss-hit by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4136 * Text filters - Process subtractive_selectors first by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4142 * API - Better support for watch API private/internal vars by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4144 * Text filters - Ignore text should run before 'extract text' by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4143 * Fix/pr 4110 czech l12n catalog sync by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4145 * Docker - INSTALLED_MARKER is kept in /datastore but package installs are not persistent (Dont use custom marker file, rely on pip instead) by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4147 * Fix/llm ollama etc tweaks by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4148 * UI - LLM - SSRF guard for the LLM `api_base` setting by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4157 * API Security - Watch GET history snapshot - Should return `text/plain` mimetype so it cant be accidently executed in the browser by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4158 ##### New Contributors * @tekgnosis-net made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4117 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.55.3...0.55.4 ### 0.55.3 - Date: 2026-04-28 - Version: 0.55.3 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.3 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.3 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.55.2...0.55.3 ### 0.55.1 - Date: 2026-04-27 - Version: 0.55.1 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.55.1 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.55.1 - **added** — AI / LLM rulesets to set AI change detection rules and text summary rules using hundreds of existing providers via LiteLLM - **fixed** — Broken opacity feedback for restock/price fields on tag edit screen - **fixed** — Use pgettext for diff page From/To labels to prevent context collisions - **fixed** — DeprecationWarning: codecs.open() is deprecated by using open() instead - **changed** — Update python-engineio requirement from <5,>=4.9.0 to >=4.13.1,<5 #### Big stuff AI / LLM rulesets - Set your AI change detection rules and text summary rules, use hundreds of existing providers via LiteLLM. ##### What's Changed * Use pgettext for diff page From/To labels to prevent context collisions by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4073 * Fix broken opacity feedback for restock/price fields on tag edit screen by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4072 * i18n: Wrap untranslated UI strings in include_subtract.html and add ja translations by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4054 * Re #4080 msgfmt linting by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4081 * Update python-engineio requirement from <5,>=4.9.0 to >=4.13.1,<5 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/4079 * CI - Translation sync check by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4085 * DeprecationWarning: codecs.open() is deprecated. Use open() instead. by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4078 * LLM implementation - by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4057 * i18n: Consolidate fragmented gettext calls into entire-sentence msgids by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4076 * Translations - Playwright macro unused, add extra linting for translations, add TRANSLATORS.md by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4087 * [i18n] "Usage" tab label in AI settings is ambiguous across contexts #4086 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4088 * Update Korean language by @limeade23 in https://github.com/dgtlmoon/changedetection.io/pull/4084 ##### New Contributors * @limeade23 made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4084 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.54.10...0.55.1 ### 0.54.10 - Date: 2026-04-20 - Version: 0.54.10 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.54.10 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.54.10 - **changed** — Update Japanese translations and wrap untranslated UI strings for i18n - **changed** — Bump apprise from 1.9.8 to 1.9.9 - **fixed** — Fix diff_changed_to causing some missed notifications - **fixed** — Fix untranslated labels on mobile watchlist view - **fixed** — Fix unresponsive help and tips button on tag edit screen ##### What's Changed * i18n: Wrap untranslated UI strings and update ja translations by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4052 * Bump apprise from 1.9.8 to 1.9.9 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/4059 * Fix - diff_changed_to causing some missed notifications by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4066 * Fix untranslated labels on mobile watchlist view by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4064 * Fix unresponsive "help and tips" button on tag edit screen by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4055 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.54.9...0.54.10 ### 0.54.9 - Date: 2026-04-14 - Version: 0.54.9 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.54.9 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.54.9 - **added** — Add Japanese translation (ja) - **added** — Add Portuguese (Brasil) translation - **added** — Add Czech translation - **added** — Add Turkish translation - **added** — Add notification tokens {{diff_changed_from}} and {{diff_changed_to}} - **added** — Add ability to apply a group by specifying a wildcard, ie *mysite.com* - **added** — Add text filter "Extract lines containing text" - **added** — Handle inline favicons - **changed** — Update Selenium RemoteConnection to use ClientConfig for timeout - **changed** — Allow setting custom colour for tag/group/label background - **fixed** — Fix SCREENSHOT_MAX_HEIGHT not enforced by capping viewport step_size and clipping stitched output to max capture height - **fixed** — Fix word-level diff ignoring include_change_type_prefix - **fixed** — Fix step failure notification crash - **fixed** — Fix XLSX import error messages reporting wrong row number after failed rows - **fixed** — Fix strings not rendered in user's locale despite having .po entries - **fixed** — Make ignore text override trigger text so it ignores the trigger text if it appears ##### What's Changed * Add Japanese translation (ja) by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4019 * Update Selenium RemoteConnection to use ClientConfig for timeout by @mikaelz in https://github.com/dgtlmoon/changedetection.io/pull/4027 * Fix SCREENSHOT_MAX_HEIGHT not enforced: cap viewport step_size and clip stitched output to max capture height #3810 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4030 * Notification - Adding tokens `{{diff_changed_from}}` and `{{diff_changed_to}}` #3818 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4031 * Feature - Groups/tag - Apply a group by specifying a wildcard, ie `*mysite.com*` by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4032 * Add Portuguese (Brasil) translation by @mstrey in https://github.com/dgtlmoon/changedetection.io/pull/4033 * fix: word-level diff ignores include_change_type_prefix by @lawrence3699 in https://github.com/dgtlmoon/changedetection.io/pull/4037 * Groups - Set custom colour for tag/group/label background by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4040 * Fix/step failure notification crash by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4041 * Test - Word level diff - Re #4037 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4042 * fix: XLSX import error messages report wrong row number after failed rows by @lawrence3699 in https://github.com/dgtlmoon/changedetection.io/pull/4036 * Czech l12n by @svetlemodry in https://github.com/dgtlmoon/changedetection.io/pull/4043 * Add Turkish translation by @hekwert in https://github.com/dgtlmoon/changedetection.io/pull/4044 * Handle inline favicons - Re #3891 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4047 * Text filters - New simpler filter "Extract lines containing text" by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4046 * Test improvement - text extract tidyup by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4048 * Update Japanese translations for new strings and fix fragment handling by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4050 * Fix strings not rendered in user's locale despite having .po entries by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4051 * Ignore text should override trigger text (It should ignore the trigger text if it appears) by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/3450 ##### New Contributors * @skkzsh made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4019 * @mikaelz made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4027 * @lawrence3699 made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4037 * @hekwert made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4044 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.54.8...0.54.9 ### 0.54.8 - Date: 2026-04-04 - Version: 0.54.8 - Original notes: https://github.com/dgtlmoon/changedetection.io/releases/tag/0.54.8 - Permalink: https://whatsnew.fyi/product/changedetection-io/releases/0.54.8 - **security** — Fix authentication bypass vulnerability via decorator ordering (CVE-2026-35490) - **added** — Extendable theme pluggy implementation - **changed** — Update openapi-core requirement from ~=0.22 to ~=0.23 ##### What's Changed CVE-2026-35490 - Authentication Bypass via Decorator Ordering * Extendable theme pluggy implementation by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4011 * CI - Ensure all unit tests are run by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4022 * Update openapi-core requirement from ~=0.22 to ~=0.23 by @dependabot[bot] in https://github.com/dgtlmoon/changedetection.io/pull/4009 **Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.54.7...0.54.8