Change Detection - Package Updates
-
[1.30.1]
- Update changedetection.io to 0.55.3
- Full Changelog
-
[1.30.2]
- Update changedetection.io to 0.55.4
- Full Changelog
- UI - AI/LLM - "Summary" button should set last viewed by @skkzsh in #4095
- API - watch.link was accidently a tuple, enforcing string by @dgtlmoon in #4104
- API - Add restock config to API /v1/watch/ json output #4099 by @dgtlmoon in #4103
- 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 #4123
- Fixing GHSA-vwgh-2hvh-4xm5 substring match in the shared_diff_access by @dgtlmoon in #4130
- LLM - Self-hosted OpenAI-compatible endpoint support (vLLM, LM Studio, llama.cpp) refs #3204 by @tekgnosis-net in #4117
- Text filters - Process subtractive_selectors first by @dgtlmoon in #4142
- Text filters - Ignore text should run before 'extract text' by @dgtlmoon in #4143
- UI - LLM - SSRF guard for the LLM
api_basesetting by @dgtlmoon in #4157 - API Security - Watch GET history snapshot - Should return
text/plainmimetype so it cant be accidently executed in the browser by @dgtlmoon in #4158
-
[1.30.3]
- Update changedetection.io to 0.55.5
- Full Changelog
- Fix Spanish translations for 'Changed' and 'Last Changed' by @maperal in #4160
- Notifications - Fix
'str' object is not callablewhen{{ diff(...)}}callable tokens are used with HTML/htmlcolor output by @dgtlmoon in #4161 - LLM - Master on/off switch (enable/disable) by @dgtlmoon in #4162
-
[1.30.4]
- Update changedetection.io to 0.55.7
- Full Changelog
- Security - SSRF in ChangeDetection.io via urlparse/urllib3 Parser Differential
- UI - LLM - Fix for settings (wtforms vs pydantic) by @dgtlmoon in #4184
- UI - Preview problem fix for extract_text/ignore_text #4138 by @dgtlmoon in #4169
- UI - LLM - Flag
LLM_FEATURES_DISABLEDto disable all LLM from the UI/system by @dgtlmoon in #4171 - Notifications -
raw_difftoken was missing by @dgtlmoon in #4177 - LLM UI - Blueprint/code also disabled when env flag
LLM_FEATURES_DISABLEDis enabled by @dgtlmoon in #4180 - Llm settings pydantic refactor by @dgtlmoon in #4181
-
[1.30.5]
- Update changedetection.io to 0.55.8
- Full Changelog
- feat: Czech translation updated and refined by @svetlemodry in #4203
- fix: extract <title> from pages with large <head> sections (#4217) by @crossi-dev in #4220
- Restock rename original price to last price by @dgtlmoon in #4227
- fix: Tag RSS feed ignores security token when password protection is enabled by @medzin in #4235
- LLM: strip sampling params and retry when the model rejects them by @quinnypig in #4241
- fix: URL validation rejects valid URLs with '|' in the anchor/fragment (#4209) by @AmirF194 in #4243
- Add Russian (ru) translation by @Marfa in #4236
- fix: don't error watches when Content-Type is JSON but body isn't parsable (#3827) by @TowyTowy in #4250
- fix: safe-empty restock default so restock notification tokens work for any watch by @ebarkhordar in #4249
- [feature] Restock LLM fallback: make the 8000 char content limit configurable, change to 15,000 chars by default #4213 by @dgtlmoon in #4257
-
[1.31.0]
- Update sockpuppetbrowser to 02f3376
-
[1.32.0]
- Update changedetection.io to 0.60.2
- Full Changelog
- fix: report the actual 1-based failed browser-step number (#4200) by @ebarkhordar in #4258
- Watch history - fix for restock.previous_price returns the first-ever price once a watch has 3+ snapshots by @dgtlmoon in #4268
- Security: hide the running version from anonymous visitors when a password is set (#2190) by @pongoe in #4306
- feature: allow a watch or group to append to the inherited AI Change Summary prompt by @snowyukitty in #4294
- GHSA-56fq-63vj-9992 Improved URL filtering by @dgtlmoon in #4315
- GHSA-4j9m-cxq4-9c36 - Improved validation Stored CSS Injection via
tag_colourField by @dgtlmoon in #4317 - Python 3.10 EOL October/2026 - Dropping support - conflicts with jsonschema and litellm by @dgtlmoon in #4347
- feat: make Playwright CSP bypass configurable by @kquinsland in #4298
- Scheduler+API Bug - if an invalid timezone was set (through edit of watch or API) it could have crashed the scheduler, Added
timezoneto the official API docs by @dgtlmoon in #4350 - fix(conditions): support zero values in condition filtering and json logic conversion by @apeabody in #4362
-
[1.32.1]
- Update changedetection.io to 0.60.3
- Full Changelog
- Translations - support for translation overlays/local translations of existing strings by @dgtlmoon in #4365
- UI - Fixing lots of actions that should be a
POSTstyle action which led to a 404 by @dgtlmoon in #4370 - 0.60.1 release UI cleanups by @dgtlmoon in #4374
- GHSA-56fq-63vj-9992 Add-watch-UI should be POST/CSRF protected @AmerMrkaljevic by @dgtlmoon in #4375
- Full Changelog: https://github.com/dgtlmoon/changedetection.io/compare/0.60.2...0.60.3
-
[1.33.0]
- Update sockpuppetbrowser to a4a9ee3
-
[1.33.1]
- Update changedetection.io to 0.60.4
- Full Changelog
- Add Indonesian (Bahasa Indonesia) translation by @Yoruxyv in #4402
- UI - Left menu folds out ONTOP of content, Improving VisualSelector & BrowserSteps width, Darkmode transitions off. #4380 by @dgtlmoon in #4401
- Fix TestHistoryPathTraversal on macOS, and cover the containment check by @GG5533 in #4390
- API - DELETE for Watch history #4397 by @dgtlmoon in #4403
- Apprise notifications - Updating to 1.13.1 by @dgtlmoon in #4404
- feature: Implemented optional override link by @jhedlund in #4290
- Perf/open link single eval by @dgtlmoon in #4405
- UI - Edit watch - Moving notification error alert to 'error' tab, hiding less used Page Title and Link options under foldout by @dgtlmoon in #4406
- UI - Groups - Fixing button alignment and using better form handling by @dgtlmoon in #4409
- UI - Watchlist - bring back Restock & Price column to watchlist overview by @dgtlmoon in #4410
-
[1.34.0]
- Update sockpuppetbrowser to fb42427
-
[1.35.0]
- Update sockpuppetbrowser to d6c1681
-
[1.35.1]
- Update changedetection.io to 0.60.6
- Full Changelog
- Puppeteer fetcher - Re-navigation cap must not mean "extract right now" by @dgtlmoon in #4439
- xPath filters - Stop LC_COLLATE deciding what contains() means (#4437), breaks xpath filters by @dgtlmoon in #4438
- Browser fetchers - Report the real status code when Chrome aborts a bodiless error response by @dgtlmoon in #4420
- feat(ui): show count badges in minimal sidebar by @SammySN-car in #4419
- Browser fetchers - Follow re-navigation, and one content-ready deadline (re-targets #4421 + #4422 at master) by @dgtlmoon in #4426
- UI - Search modal - keep the search scoped to the tag you were viewing by @dgtlmoon in #4425
- UI - Search modal - fix Enter dismissing the form instead of searching by @dgtlmoon in #4428
- Favicon on/off - Was not actually applying at fetch time by @dgtlmoon in #4432
- Terminate runaway page script before extracting, so a spinning renderer cannot eat the whole fetch by @dgtlmoon in #4433
-
[1.35.2]
- Update changedetection.io to 0.60.7
- Full Changelog
- Fetch favicon candidates in parallel under one deadline, and fix two ways it could hang by @dgtlmoon in #4435
- Keep history diff title and controls visible while scrolling by @jhedlund in #4412
- Add watch UI tweaks by @dgtlmoon in #4446
- fix(http): send a single Date header on werkzeug built-in server by @Huang-404-Q in #4372
- UI - Make the 'share watch' optional, reduces visual noise, not really used by non-power users by @dgtlmoon in #4448
- Set Cache-Control: no-store on dynamic responses by default by @DennisGaida in #4319
-
[1.35.3]
- Update changedetection.io to 0.60.8
- Full Changelog
- Adding HTTP browser caching of UI elements by @dgtlmoon in #4450
- UI - Set language on reverse proxy/subdirectory hosting was acting wrong, just redirect it to watchlist so theres no failures. by @dgtlmoon in #4453
- System - Ensure import+API update values are verified types by @dgtlmoon in #4458
- UI: make editing a configured LLM model discoverable by @quinnypig in #4400
- Groups - UI fix for #4451 and tweaks by @dgtlmoon in #4466
- Make LLM summary from UI non blocking by @dgtlmoon in #4467
- LLM UI - When LLM is disabled, hide it from the groups settings also by @dgtlmoon in #4471
- Dont allow accidental change of LLM Key by @dgtlmoon in #4473
- First PWA by @dgtlmoon in #4472
- Title extract - Limit search window and improve regex - reduce memory usage by @dgtlmoon in #4487
-
[1.35.4]
- Update changedetection.io to 0.60.9
- Full Changelog
- i18n: Add ja translations for new UI (part 2) by @skkzsh in #4491
- Restock & Price detection - Fix decimal-comma prices ("39,99") being read as 3999 by @jaime-king in #4494
- feat(jinja2): add unixtime filter to format Unix timestamps in notifications (#3641) by @contentforge-press in #4503
- UI - Language selector should be available on the login page (#4490) by @a-ahmed in #4501
-
[1.36.0]
- Update node-base | final to 24-20261021
- security: fix eMudhra cert compromise
-
[1.36.1]
- Update changedetection.io to 0.60.10
- Full Changelog
- LLM restock: fix locale-formatted string prices (1.299,95 read as 1.29995) by @dgtlmoon in #4544
- Puppeteer fetcher - PDF improvements, Handle PDF fetching by Puppeteer directly, cleanup supports by @dgtlmoon in #4547
- PDF - Keep the original PDF of the newest two versions by @dgtlmoon in #4549
- UI - Fixing notification settings still trying to access main settings form that caused a crash on save by @dgtlmoon in #4561
- UI - Follow the device's light/dark setting by default by @cookieguru in #4507
- Notifications - Fix |regex_replace doing nothing when rendered outside the main thread by @Enesuygurs in #4577
- feat(api): expand SystemInfo endpoint with queue metrics, config flags, and tag_count by @Subere in #4574
- Fix IndexError on empty/whitespace-only JSON content by @Yi-111-a in #4534
- Fix Jinja2 false-positive when URL contains
{%by @skkzsh in #4208 - API - Recheck only watches with errors, never recheck paused watches (#4506) by @dgtlmoon in #4601
-
[1.37.0]
- Update changedetection.io to 0.70.1
- Full Changelog
- Backups - Ability to select multiple .ZIPs of the watch data to restore by @dgtlmoon in #4616
- Scheduler - It may have been possible to import/restore/API update watches without 'use default schedule' set and a null recheck schedule causing excessive page fetching. by @dgtlmoon in #4617
- API - Current restock price/stock state in watch GET and list (processor_state_{processor_name}) by @dgtlmoon in #4621
- A watch that was fine (200) and then starts getting 403 must not keep reporting the old 200 by @dgtlmoon in #4606
- Bug: Successful checks always reset the filter failure streak, "no text found" records last_check_status by @dgtlmoon in #4624
- Notifications - setup widget, pick a service and fill in a few fields instead of writing Apprise URLs by hand by @dgtlmoon in #4634
- API - systeminfo overdue_watches no longer lists paused watches (#4607) by @dgtlmoon in #4635
- Settings - AI / LLM settings get their own page at /settings/llm, linked from the left sidebar by @dgtlmoon in #4637
- MCP server at /mcp, plus GET /api/v1/changes, so AI assistants can use changedetection.io by @dgtlmoon in #4636
- MCP - OAuth 2.1 sign-in, so claude.ai and ChatGPT in the browser can connect by @dgtlmoon in #4662
-
[1.37.1]
- Update changedetection.io to 0.70.2
- Full Changelog
- MCP - "MCP Note" sub-tab, set what assistants are told when they connect by @dgtlmoon in #4670
- MCP - More monitor settings, test notifications, word diffs, and permission rows for notifications and browser steps by @dgtlmoon in #4669
- MCP OAuth - Claude Code can sign in: loopback redirect URIs match on any port (RFC 8252 7.3) by @kris-anderson in #4673
- Clear history - don't fail when a save renames its .tmp file away mid-clear by @dgtlmoon in #4674
- MCP - "Public MCP address" setting, separate from the notification Base URL by @dgtlmoon in #4676
- Fix two races behind flaky tests: favicon cache, and a new monitor queued twice by @dgtlmoon in #4681
- MCP - Clearer tool descriptions (list_tags, list_notifications, notification_services, restock_status, limit/offset) by @dgtlmoon in #4678
- MCP - "Allow read-only access without sign-in" setting, for public demos by @dgtlmoon in #4680
- AI settings - saving no longer switches off checkboxes the page didn't show by @kris-anderson in #4683
- API - Watch list and search show each watch's paused and notification_muted by @dgtlmoon in #4686
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login