CI Report:
https://ci-tests.linuxserver.io/linuxserver/changedetection.io/0.70.1-ls324/index.html
LinuxServer Changes:
Full Changelog: 0.60.10-ls323...0.70.1-ls324
Remote Changes:
What's Changed
- Update ruff requirement from >=0.17.1 to >=0.17.2 by @dependabot[bot] in dgtlmoon/changedetection.io#4604
- Update jsonpath-ng requirement from ~=1.12.0 to ~=1.13.0 by @dependabot[bot] in dgtlmoon/changedetection.io#4603
- Update wtforms requirement from ~=3.2 to ~=3.3 by @dependabot[bot] in dgtlmoon/changedetection.io#4610
- i18n: Extract restock strings and add ja translations by @skkzsh in dgtlmoon/changedetection.io#4608
- Read the element locking scripts as UTF-8 by @b84330808 in dgtlmoon/changedetection.io#4614
- UI - Name the diff minimap so it reads as where, not when by @paoValle in dgtlmoon/changedetection.io#4613
- Backups - Ability to select multiple .ZIPs of the watch data to restore by @dgtlmoon in dgtlmoon/changedetection.io#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 dgtlmoon/changedetection.io#4617
- Update inscriptis requirement from <2.7.6,>=2.7.5 to >=2.7.6,<2.7.7 by @dependabot[bot] in dgtlmoon/changedetection.io#4609
- Bumping NOTICE and ensuring compatibility by @dgtlmoon in dgtlmoon/changedetection.io#4618
- Watch memory - share one read-only copy of identical time_schedule_limit values by @dgtlmoon in dgtlmoon/changedetection.io#4602
- API - Current restock price/stock state in watch GET and list (processor_state_{processor_name}) by @dgtlmoon in dgtlmoon/changedetection.io#4621
- Example plugins - API fetcher and check stats, watch list notes hook, update_finalize fix by @dgtlmoon in dgtlmoon/changedetection.io#4622
- A watch that was fine (200) and then starts getting 403 must not keep reporting the old 200 by @dgtlmoon in dgtlmoon/changedetection.io#4606
- Bug: Successful checks always reset the filter failure streak, "no text found" records last_check_status by @dgtlmoon in dgtlmoon/changedetection.io#4624
- API Examples by @dgtlmoon in dgtlmoon/changedetection.io#4625
- Bump docker/login-action from 4.6.0 to 4.7.0 in the all group by @dependabot[bot] in dgtlmoon/changedetection.io#4629
- Bump apprise from 2.0.1 to 2.1.0 by @dependabot[bot] in dgtlmoon/changedetection.io#4627
- Notifications - post:// get:// etc, a header with capitals (?+X-Key=...) was also sent as a query parameter by @dgtlmoon in dgtlmoon/changedetection.io#4633
- Update jsonpath-ng requirement from ~=1.13.0 to ~=1.14.0 by @dependabot[bot] in dgtlmoon/changedetection.io#4628
- Notifications - setup widget, pick a service and fill in a few fields instead of writing Apprise URLs by hand by @dgtlmoon in dgtlmoon/changedetection.io#4634
- Plugins - register_blueprints hook so plugins can mount their own Flask blueprints by @dgtlmoon in dgtlmoon/changedetection.io#4632
- API - systeminfo overdue_watches no longer lists paused watches (#4607) by @dgtlmoon in dgtlmoon/changedetection.io#4635
- Settings - AI / LLM settings get their own page at /settings/llm, linked from the left sidebar by @dgtlmoon in dgtlmoon/changedetection.io#4637
- Datastore - startup checks run for every datastore again (removepassword.lock, missing RSS/API tokens, app_guid, version_tag) by @dgtlmoon in dgtlmoon/changedetection.io#4639
- Restock - Prices in the visitor's language with the currency's own decimal places (ISO 4217) by @dgtlmoon in dgtlmoon/changedetection.io#4640
- LLM - "Switch thinking off" option for Ollama and OpenAI-compatible servers (llama.cpp, vLLM, LM Studio) (#4638) by @dgtlmoon in dgtlmoon/changedetection.io#4643
- AI settings - Load models / Test connection work for a keyless server (Ollama) at an address not saved yet by @dgtlmoon in dgtlmoon/changedetection.io#4645
- LLM restock - keep the whole page when site-chrome removal would take nearly all of it, log when nothing is left by @dgtlmoon in dgtlmoon/changedetection.io#4647
- LLM restock: never strip
<html>/<body>as site chrome by @snazzybean in dgtlmoon/changedetection.io#4644 - AI - Remove the unused llm_prefilter (AI CSS pre-filter) and its setup call by @dgtlmoon in dgtlmoon/changedetection.io#4646
- MCP server at /mcp, plus GET /api/v1/changes, so AI assistants can use changedetection.io by @dgtlmoon in dgtlmoon/changedetection.io#4636
- Use explicit container registry by @tyll in dgtlmoon/changedetection.io#4648
- MCP - history tools: list_snapshots, find_change and get_history (snapshots as diffs) by @dgtlmoon in dgtlmoon/changedetection.io#4649
- MCP - history tools round 2: line_timeline, every match in find_change, price history in restock_status by @dgtlmoon in dgtlmoon/changedetection.io#4650
- Plugins - select_fetch_backend and recheck_seconds_override hooks, with a fallback fetcher example plugin by @dgtlmoon in dgtlmoon/changedetection.io#4652
- Mcp history tools 2 by @dgtlmoon in dgtlmoon/changedetection.io#4653
- LLM - Claude 5.x thinks by default: give it reasoning headroom and skip temperature by @ChrisAL94 in dgtlmoon/changedetection.io#4656
- Restock - Use 'Filters & Triggers' to pick the price when auto-detection fails by @dgtlmoon in dgtlmoon/changedetection.io#4657
- Tests - AI/MCP sub-tab links end in #overview, regenerate THIRD-PARTY-LICENSES.md by @ChrisAL94 in dgtlmoon/changedetection.io#4659
- LLM - Thinking budget "Off" also switches thinking off for Claude Haiku/Sonnet 5.x by @ChrisAL94 in dgtlmoon/changedetection.io#4658
- i18n - Restock & Price Detection (and Screenshot Comparison) tab help text is now translatable by @dgtlmoon in dgtlmoon/changedetection.io#4660
- Notifications - Markdown to HTML conversion applied per notification URL (#4619) by @cestercian in dgtlmoon/changedetection.io#4641
- LLM - Empty or unparsable intent evaluation passes the change through instead of suppressing it by @ChrisAL94 in dgtlmoon/changedetection.io#4661
- MCP - OAuth 2.1 sign-in, so claude.ai and ChatGPT in the browser can connect by @dgtlmoon in dgtlmoon/changedetection.io#4662
- MCP OAuth - sign-in works for installs under a sub-path (authorization server metadata also at {issuer}/.well-known/openid-configuration) by @dgtlmoon in dgtlmoon/changedetection.io#4663
- MCP OAuth - the consent form posts back under the sub-path (Allow gave a 404 behind a proxy) by @dgtlmoon in dgtlmoon/changedetection.io#4664
- MCP oauth consent dialog cleanup by @dgtlmoon in dgtlmoon/changedetection.io#4665
- MCP helper texts by @dgtlmoon in dgtlmoon/changedetection.io#4666
- MCP - List watches history stats by @dgtlmoon in dgtlmoon/changedetection.io#4667
New Contributors
- @b84330808 made their first contribution in dgtlmoon/changedetection.io#4614
- @paoValle made their first contribution in dgtlmoon/changedetection.io#4613
- @snazzybean made their first contribution in dgtlmoon/changedetection.io#4644
- @tyll made their first contribution in dgtlmoon/changedetection.io#4648
- @ChrisAL94 made their first contribution in dgtlmoon/changedetection.io#4656
- @cestercian made their first contribution in dgtlmoon/changedetection.io#4641
Full Changelog: dgtlmoon/changedetection.io@0.60.10...0.70.1