Repository navigation
Read the element locking scripts as UTF-8 - #4614
Merged
dgtlmoon merged 1 commit intoOct 27, 2026
Merged
Conversation
lock-elements-sizing.js and unlock-elements-sizing.js contain non-ASCII characters, but the Playwright and Puppeteer screenshot code opened them with the locale encoding. On Windows with a legacy code page such as cp932 this raised UnicodeDecodeError, so full page screenshots with element locking enabled always failed there. The other scripts in content_fetchers/res are already read as UTF-8. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Owner
|
Aaah this is an old mistake, thanks! |
scareyo
pushed a commit
to scareyo/homelab
that referenced
this pull request
Nov 8, 2026
…0.2 (#54) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ghcr.io/dgtlmoon/changedetection.io](https://changedetection.io) ([source](https://github.com/dgtlmoon/changedetection.io)) | image | minor | `0.60.9` → `0.70.2` | --- ### Release Notes <details> <summary>dgtlmoon/changedetection.io (ghcr.io/dgtlmoon/changedetection.io)</summary> ### [`v0.70.2`](https://github.com/dgtlmoon/changedetection.io/releases/tag/0.70.2) [Compare Source](dgtlmoon/changedetection.io@0.70.1...0.70.2) #### What's Changed - MCP - "MCP Note" sub-tab, set what assistants are told when they connect by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4670](dgtlmoon/changedetection.io#4670) - MCP - More monitor settings, test notifications, word diffs, and permission rows for notifications and browser steps by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4669](dgtlmoon/changedetection.io#4669) - MCP OAuth - Claude Code can sign in: loopback redirect URIs match on any port (RFC 8252 7.3) by [@​kris-anderson](https://github.com/kris-anderson) in [#​4673](dgtlmoon/changedetection.io#4673) - Clear history - don't fail when a save renames its .tmp file away mid-clear by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4674](dgtlmoon/changedetection.io#4674) - MCP - "Public MCP address" setting, separate from the notification Base URL by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4676](dgtlmoon/changedetection.io#4676) - gitignore: local AI configs to avoid credential leaks by [@​skkzsh](https://github.com/skkzsh) in [#​4677](dgtlmoon/changedetection.io#4677) - Fix two races behind flaky tests: favicon cache, and a new monitor queued twice by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4681](dgtlmoon/changedetection.io#4681) - CI - Third-party licence list: regenerate weekly and on release, drift is only a warning on PRs by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4684](dgtlmoon/changedetection.io#4684) - MCP - Clearer tool descriptions (list\_tags, list\_notifications, notification\_services, restock\_status, limit/offset) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4678](dgtlmoon/changedetection.io#4678) - MCP plugins - their own permission rows, a tool 'area', and open\_world by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4679](dgtlmoon/changedetection.io#4679) - MCP - "Allow read-only access without sign-in" setting, for public demos by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4680](dgtlmoon/changedetection.io#4680) - AI settings - saving no longer switches off checkboxes the page didn't show by [@​kris-anderson](https://github.com/kris-anderson) in [#​4683](dgtlmoon/changedetection.io#4683) - AI settings - API key field could not be typed in by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4687](dgtlmoon/changedetection.io#4687) - API - Watch list and search show each watch's paused and notification\_muted by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4686](dgtlmoon/changedetection.io#4686) #### New Contributors - [@​kris-anderson](https://github.com/kris-anderson) made their first contribution in [#​4673](dgtlmoon/changedetection.io#4673) **Full Changelog**: <dgtlmoon/changedetection.io@0.70.1...0.70.2> ### [`v0.70.1`](https://github.com/dgtlmoon/changedetection.io/releases/tag/0.70.1) [Compare Source](dgtlmoon/changedetection.io@0.60.10...0.70.1) #### What's Changed - Update ruff requirement from >=0.17.1 to >=0.17.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4604](dgtlmoon/changedetection.io#4604) - Update jsonpath-ng requirement from \~=1.12.0 to \~=1.13.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4603](dgtlmoon/changedetection.io#4603) - Update wtforms requirement from \~=3.2 to \~=3.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4610](dgtlmoon/changedetection.io#4610) - i18n: Extract restock strings and add ja translations by [@​skkzsh](https://github.com/skkzsh) in [#​4608](dgtlmoon/changedetection.io#4608) - Read the element locking scripts as UTF-8 by [@​b84330808](https://github.com/b84330808) in [#​4614](dgtlmoon/changedetection.io#4614) - UI - Name the diff minimap so it reads as where, not when by [@​paoValle](https://github.com/paoValle) in [#​4613](dgtlmoon/changedetection.io#4613) - Backups - Ability to select multiple .ZIPs of the watch data to restore by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4616](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](https://github.com/dgtlmoon) in [#​4617](dgtlmoon/changedetection.io#4617) - Update inscriptis requirement from <2.7.6,>=2.7.5 to >=2.7.6,<2.7.7 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4609](dgtlmoon/changedetection.io#4609) - Bumping NOTICE and ensuring compatibility by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4618](dgtlmoon/changedetection.io#4618) - Watch memory - share one read-only copy of identical time\_schedule\_limit values by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4602](dgtlmoon/changedetection.io#4602) - API - Current restock price/stock state in watch GET and list (processor\_state\_{processor\_name}) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4621](dgtlmoon/changedetection.io#4621) - Example plugins - API fetcher and check stats, watch list notes hook, update\_finalize fix by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4622](dgtlmoon/changedetection.io#4622) - A watch that was fine (200) and then starts getting 403 must not keep reporting the old 200 by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4606](dgtlmoon/changedetection.io#4606) - Bug: Successful checks always reset the filter failure streak, "no text found" records last\_check\_status by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4624](dgtlmoon/changedetection.io#4624) - API Examples by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4625](dgtlmoon/changedetection.io#4625) - Bump docker/login-action from 4.6.0 to 4.7.0 in the all group by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4629](dgtlmoon/changedetection.io#4629) - Bump apprise from 2.0.1 to 2.1.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4627](dgtlmoon/changedetection.io#4627) - Notifications - post:// get:// etc, a header with capitals (?+X-Key=...) was also sent as a query parameter by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4633](dgtlmoon/changedetection.io#4633) - Update jsonpath-ng requirement from \~=1.13.0 to \~=1.14.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4628](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](https://github.com/dgtlmoon) in [#​4634](dgtlmoon/changedetection.io#4634) - Plugins - register\_blueprints hook so plugins can mount their own Flask blueprints by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4632](dgtlmoon/changedetection.io#4632) - API - systeminfo overdue\_watches no longer lists paused watches ([#​4607](dgtlmoon/changedetection.io#4607)) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4635](dgtlmoon/changedetection.io#4635) - Settings - AI / LLM settings get their own page at /settings/llm, linked from the left sidebar by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4637](dgtlmoon/changedetection.io#4637) - Datastore - startup checks run for every datastore again (removepassword.lock, missing RSS/API tokens, app\_guid, version\_tag) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4639](dgtlmoon/changedetection.io#4639) - Restock - Prices in the visitor's language with the currency's own decimal places (ISO 4217) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4640](dgtlmoon/changedetection.io#4640) - LLM - "Switch thinking off" option for Ollama and OpenAI-compatible servers (llama.cpp, vLLM, LM Studio) ([#​4638](dgtlmoon/changedetection.io#4638)) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4643](dgtlmoon/changedetection.io#4643) - AI settings - Load models / Test connection work for a keyless server (Ollama) at an address not saved yet by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4645](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](https://github.com/dgtlmoon) in [#​4647](dgtlmoon/changedetection.io#4647) - LLM restock: never strip `<html>`/`<body>` as site chrome by [@​snazzybean](https://github.com/snazzybean) in [#​4644](dgtlmoon/changedetection.io#4644) - AI - Remove the unused llm\_prefilter (AI CSS pre-filter) and its setup call by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4646](dgtlmoon/changedetection.io#4646) - MCP server at /mcp, plus GET /api/v1/changes, so AI assistants can use changedetection.io by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4636](dgtlmoon/changedetection.io#4636) - Use explicit container registry by [@​tyll](https://github.com/tyll) in [#​4648](dgtlmoon/changedetection.io#4648) - MCP - history tools: list\_snapshots, find\_change and get\_history (snapshots as diffs) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4649](dgtlmoon/changedetection.io#4649) - MCP - history tools round 2: line\_timeline, every match in find\_change, price history in restock\_status by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4650](dgtlmoon/changedetection.io#4650) - Plugins - select\_fetch\_backend and recheck\_seconds\_override hooks, with a fallback fetcher example plugin by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4652](dgtlmoon/changedetection.io#4652) - Mcp history tools 2 by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4653](dgtlmoon/changedetection.io#4653) - LLM - Claude 5.x thinks by default: give it reasoning headroom and skip temperature by [@​ChrisAL94](https://github.com/ChrisAL94) in [#​4656](dgtlmoon/changedetection.io#4656) - Restock - Use 'Filters & Triggers' to pick the price when auto-detection fails by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4657](dgtlmoon/changedetection.io#4657) - Tests - AI/MCP sub-tab links end in #overview, regenerate THIRD-PARTY-LICENSES.md by [@​ChrisAL94](https://github.com/ChrisAL94) in [#​4659](dgtlmoon/changedetection.io#4659) - LLM - Thinking budget "Off" also switches thinking off for Claude Haiku/Sonnet 5.x by [@​ChrisAL94](https://github.com/ChrisAL94) in [#​4658](dgtlmoon/changedetection.io#4658) - i18n - Restock & Price Detection (and Screenshot Comparison) tab help text is now translatable by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4660](dgtlmoon/changedetection.io#4660) - Notifications - Markdown to HTML conversion applied per notification URL ([#​4619](dgtlmoon/changedetection.io#4619)) by [@​cestercian](https://github.com/cestercian) in [#​4641](dgtlmoon/changedetection.io#4641) - LLM - Empty or unparsable intent evaluation passes the change through instead of suppressing it by [@​ChrisAL94](https://github.com/ChrisAL94) in [#​4661](dgtlmoon/changedetection.io#4661) - MCP - OAuth 2.1 sign-in, so claude.ai and ChatGPT in the browser can connect by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4662](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](https://github.com/dgtlmoon) in [#​4663](dgtlmoon/changedetection.io#4663) - MCP OAuth - the consent form posts back under the sub-path (Allow gave a 404 behind a proxy) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4664](dgtlmoon/changedetection.io#4664) - MCP oauth consent dialog cleanup by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4665](dgtlmoon/changedetection.io#4665) - MCP helper texts by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4666](dgtlmoon/changedetection.io#4666) - MCP - List watches history stats by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4667](dgtlmoon/changedetection.io#4667) #### New Contributors - [@​b84330808](https://github.com/b84330808) made their first contribution in [#​4614](dgtlmoon/changedetection.io#4614) - [@​paoValle](https://github.com/paoValle) made their first contribution in [#​4613](dgtlmoon/changedetection.io#4613) - [@​snazzybean](https://github.com/snazzybean) made their first contribution in [#​4644](dgtlmoon/changedetection.io#4644) - [@​tyll](https://github.com/tyll) made their first contribution in [#​4648](dgtlmoon/changedetection.io#4648) - [@​ChrisAL94](https://github.com/ChrisAL94) made their first contribution in [#​4656](dgtlmoon/changedetection.io#4656) - [@​cestercian](https://github.com/cestercian) made their first contribution in [#​4641](dgtlmoon/changedetection.io#4641) **Full Changelog**: <dgtlmoon/changedetection.io@0.60.10...0.70.1> ### [`v0.60.10`](https://github.com/dgtlmoon/changedetection.io/releases/tag/0.60.10) [Compare Source](dgtlmoon/changedetection.io@0.60.9...0.60.10) #### What's Changed - Update orjson requirement from \~=3.12 to \~=3.13 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4542](dgtlmoon/changedetection.io#4542) - LLM restock: fix locale-formatted string prices (1.299,95 read as 1.29995) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4544](dgtlmoon/changedetection.io#4544) - Puppeteer fetcher - PDF improvements, Handle PDF fetching by Puppeteer directly, cleanup supports by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4547](dgtlmoon/changedetection.io#4547) - Test - Puppeteer/Playwright PDF - Checksum the original document not the browser's PDF viewer HTML, browser PDF test by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4548](dgtlmoon/changedetection.io#4548) - PDF - Keep the original PDF of the newest two versions by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4549](dgtlmoon/changedetection.io#4549) - update spanish translations by [@​abrugues](https://github.com/abrugues) in [#​4546](dgtlmoon/changedetection.io#4546) - Update pydantic requirement from <3.0,>=2.13.5 to >=2.14.0,<3.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4543](dgtlmoon/changedetection.io#4543) - Proxy auth fixes and extra tests for Puppeteer content fetcher by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4552](dgtlmoon/changedetection.io#4552) - Update validators requirement from \~=0.35 to \~=0.36 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4558](dgtlmoon/changedetection.io#4558) - Update pre-commit requirement from >=4.6.2 to >=4.7.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4557](dgtlmoon/changedetection.io#4557) - UI - Fixing notification settings still trying to access main settings form that caused a crash on save by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4561](dgtlmoon/changedetection.io#4561) - Update flask-socketio requirement from <6,>=5.6.1 to >=5.7.0,<6 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4540](dgtlmoon/changedetection.io#4540) - UI - Follow the device's light/dark setting by default by [@​cookieguru](https://github.com/cookieguru) in [#​4507](dgtlmoon/changedetection.io#4507) - Watch history index - Replace per-snapshot realpath()/exists() with a single directory listing, speeds up loading times by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4562](dgtlmoon/changedetection.io#4562) - docker-compose - SCREENSHOT\_MAX\_HEIGHT default is 20000, not 16000 by [@​pcbeingused333](https://github.com/pcbeingused333) in [#​4568](dgtlmoon/changedetection.io#4568) - Restock: let a plugin do LLM price/stock extraction without litellm (HTML + text hook, reusable helpers) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4545](dgtlmoon/changedetection.io#4545) - Update chardet requirement from >=7.6.0 to >=7.7.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4582](dgtlmoon/changedetection.io#4582) - Bump pypa/gh-action-pypi-publish from 1.14.2 to 1.14.3 in the all group by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4583](dgtlmoon/changedetection.io#4583) - Update pluggy requirement from \~=1.6 to \~=1.7 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4581](dgtlmoon/changedetection.io#4581) - Update selenium requirement from \~=4.50.0 to \~=4.51.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4580](dgtlmoon/changedetection.io#4580) - Notifications - Fix |regex\_replace doing nothing when rendered outside the main thread by [@​Enesuygurs](https://github.com/Enesuygurs) in [#​4577](dgtlmoon/changedetection.io#4577) - feat(api): expand SystemInfo endpoint with queue metrics, config flags, and tag\_count by [@​Subere](https://github.com/Subere) in [#​4574](dgtlmoon/changedetection.io#4574) - Log puremagic "Could not identify file" at debug instead of warning by [@​jtannahill](https://github.com/jtannahill) in [#​4533](dgtlmoon/changedetection.io#4533) - Fix IndexError on empty/whitespace-only JSON content by [@​Yi-111-a](https://github.com/Yi-111-a) in [#​4534](dgtlmoon/changedetection.io#4534) - Decode percent-encoded proxy credentials for the browser fetchers, and keep them out of the log by [@​alkaz-nodemaven](https://github.com/alkaz-nodemaven) in [#​4502](dgtlmoon/changedetection.io#4502) - Judge favicon expiry on the icon the watch actually has, not whatever glob lists first by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4434](dgtlmoon/changedetection.io#4434) - Bump cryptography from 44.0.0 to 50.0.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4284](dgtlmoon/changedetection.io#4284) - Notifications - |regex\_replace ReDoS timeout now works in any thread (use 'regex' package timeout=) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4585](dgtlmoon/changedetection.io#4585) - Fix Jinja2 false-positive when URL contains `{%` by [@​skkzsh](https://github.com/skkzsh) in [#​4208](dgtlmoon/changedetection.io#4208) - Favicon - Clear the saved favicon when the watch URL changes by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4586](dgtlmoon/changedetection.io#4586) - Tests - Fix test\_itemprop\_percent\_threshold for WTForms 3.3 (FloatField is now type="number") by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4588](dgtlmoon/changedetection.io#4588) - API - Reject broken Jinja2 templates in url, link\_to\_open, body and headers (shared with the edit form) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4587](dgtlmoon/changedetection.io#4587) - Improvements to plugin architecture by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4589](dgtlmoon/changedetection.io#4589) - Update litellm requirement from >=1.40.0 to >=1.106.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4595](dgtlmoon/changedetection.io#4595) - LLM Config - Dont import LiteLLM until a real config is used (saves memory) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4596](dgtlmoon/changedetection.io#4596) - Update ruff requirement from >=0.16.10 to >=0.17.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4594](dgtlmoon/changedetection.io#4594) - Update inscriptis requirement from <2.7.6,>=2.7 to >=2.7.5,<2.7.6 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4593](dgtlmoon/changedetection.io#4593) - Update regex requirement from >=2022.1.18 to >=2026.9.29 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4592](dgtlmoon/changedetection.io#4592) - Update pytest-mock requirement from \~=3.16 to \~=3.17 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4599](dgtlmoon/changedetection.io#4599) - Update jsonpath-ng requirement from \~=1.9.1 to \~=1.12.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4598](dgtlmoon/changedetection.io#4598) - Update pydantic requirement from <3.0,>=2.14.0 to >=2.14.1,<3.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​4591](dgtlmoon/changedetection.io#4591) - Build - Switch to uv for build by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4600](dgtlmoon/changedetection.io#4600) - Restock: don't blame stock data when restock detection is off by [@​drakeo338](https://github.com/drakeo338) in [#​4495](dgtlmoon/changedetection.io#4495) - fix(strip\_ignore\_text): keep the surviving lines in document order by [@​Yi-111-a](https://github.com/Yi-111-a) in [#​4536](dgtlmoon/changedetection.io#4536) - fix(filters): separate each match on its own line for source: watches by [@​Yi-111-a](https://github.com/Yi-111-a) in [#​4492](dgtlmoon/changedetection.io#4492) - UI - Watchlist - "Mark unviewed" bulk operation by [@​pongoe](https://github.com/pongoe) in [#​4484](dgtlmoon/changedetection.io#4484) - API - Recheck only watches with errors, never recheck paused watches ([#​4506](dgtlmoon/changedetection.io#4506)) by [@​dgtlmoon](https://github.com/dgtlmoon) in [#​4601](dgtlmoon/changedetection.io#4601) #### New Contributors - [@​abrugues](https://github.com/abrugues) made their first contribution in [#​4546](dgtlmoon/changedetection.io#4546) - [@​cookieguru](https://github.com/cookieguru) made their first contribution in [#​4507](dgtlmoon/changedetection.io#4507) - [@​pcbeingused333](https://github.com/pcbeingused333) made their first contribution in [#​4568](dgtlmoon/changedetection.io#4568) - [@​Enesuygurs](https://github.com/Enesuygurs) made their first contribution in [#​4577](dgtlmoon/changedetection.io#4577) - [@​Subere](https://github.com/Subere) made their first contribution in [#​4574](dgtlmoon/changedetection.io#4574) - [@​jtannahill](https://github.com/jtannahill) made their first contribution in [#​4533](dgtlmoon/changedetection.io#4533) - [@​Yi-111-a](https://github.com/Yi-111-a) made their first contribution in [#​4534](dgtlmoon/changedetection.io#4534) - [@​alkaz-nodemaven](https://github.com/alkaz-nodemaven) made their first contribution in [#​4502](dgtlmoon/changedetection.io#4502) - [@​drakeo338](https://github.com/drakeo338) made their first contribution in [#​4495](dgtlmoon/changedetection.io#4495) **Full Changelog**: <dgtlmoon/changedetection.io@0.60.9...0.60.10> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDQuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Reviewed-on: https://scarey.dev/scarey/homelab/pulls/54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
capture_full_page_async()(Playwright) andcapture_full_page()(Puppeteer) readres/lock-elements-sizing.jsandres/unlock-elements-sizing.jswithopen(path, 'r'), which uses the locale encoding. Both files contain non-ASCII characters (→in a comment,⚠in a log message). On Windows with a legacy code page such as cp932 (Japanese), the read fails:This happens on every screenshot where element locking is on (the image diff processor) and the page is taller than the viewport. On cp1252 the read doesn't fail, but the
⚠in the console message turns into mojibake.The other scripts in
content_fetchers/res(xpath_element_scraper.js,stock-not-in-stock.js,favicon-fetcher.js) are already read withencoding='utf-8'. This PR does the same for these two files. It's the same kind of fix as #4345.Test:
tests/unit/test_element_locking_js_encoding.pyruns both capture functions against a fake page and checks that the scripts reachpage.evaluate()unchanged. On Linux and in Docker the locale is UTF-8, so the test passes either way. On Windows with cp932, both tests fail without the fix and pass with it.I used Claude Code to write this change.