_ _ _ _ _ _ __| |_ __ _ _ _ __ _ ___ __| |___| |_ ___ __| |_(_)___ _ _ (_)___ / _| ' \/ _` | ' \/ _` / -_) _` / -_) _/ -_) _| _| / _ \ ' \ _| / _ \ \__|_||_\__,_|_||_\__, \___\__,_\___|\__\___\__|\__|_\___/_||_(_)_\___/ |___/ HEAD / 2025-04-04 12:46:25 +0200: - UI - Field name update - Keyword triggers - Trigger/wait for text (#3088) - UI - "Recheck all" should also queue most overdue first (same like automatic scheduler) (#3087) - Groups - Including "Extract text", "Text to ignore", "Trigger text" and "Text that should not be present" filters 0.49.12 / 2025-04-04 09:30:24 +0200: - 0.49.12 0.49.11 / 2025-04-03 18:54:20 +0200: - 0.49.11 0.49.10 / 2025-04-03 11:17:14 +0200: - 0.49.10 - Update README.md - UI - "Conditions" section, making the Conditions setup table work better on mobile/responsive - Adding a GC memory cleanup (releases cached libxml memory and others) (#3079) - Python 3.11 container base (#3077) - Use lowercase static asset filenames - Restock detection - Add Indonesian phrases for out-of-stock detection (#3075) - Regession - Shared history/diff page with anonymous access turned on should allow screenshot access (#3076) - Update edit.html - linking to tutorial - Code - Tidy up lint errors (#3074) - UI - Update edit.html- xPath support text for 1 & 2 - Text/fetching - Small fix for when last fetched was zero bytes and special options (removals/additions/changes) was set (#3065) - Notifications backend - Refactor + tests for Apprise custom integration (#3057) - UI - Watch edit - "Clone" Should be "Clone & Edit" without watch history, redirect to the new edit page (#3063 #2782) - UI - Conditions - Offer some information about what the filter/condition/trigger saw (#3062) - UI - Tidy up support links - UI - Set a graph % of ETA time completed of checking the watch (#3060) 0.49.9 / 2025-03-26 16:30:08 +0100: - 0.49.9 - RSS Fixes and improvements - Ability to set "RSS Color HTML Format" in Settings, detect and filter content with bad content that could break RSS (#3055) 0.49.8 / 2025-03-25 22:59:56 +0100: - 0.49.8 - Server - Path blueprint fixes and moving code blueprint to fix RSS forward slash on url (#3054) - API - Adding "Search" API (#3052) - Fetching - Upgrading to pyppeteer-ng 2.0.0rc8 (more modern pyee requirements) 0.49.7 / 2025-03-23 16:50:21 +0100: - 0.49.7 - Adding Tags/Groups API (#3049) 0.49.6 / 2025-03-23 02:01:32 +0100: - 0.49.6 - API Access should still work even when UI Password is enabled (#3046) #3045 0.49.5 / 2025-03-22 22:51:33 +0100: - 0.49.5 - Template tidyup & UI Fixes (#3044) - Watch history - Ensure atomic/safe history data disk writes (#3042 #3041) - Testing - Replace Linux only 'resource' library with cross-platform 'psutil' library (#3037) - Refactor code layout, add extra tests - New major functionality CONDITIONS - Compare values, check numbers within range, etc 0.49.4 / 2025-03-13 12:06:50 +0100: - 0.49.4 - Datastore - Always use utf-8 encoding for error text output storage - Restock detection - Adding french keywords for out of stock items - Browser Steps - Should use the Watch URL/link after any Jinja2 type templates are applied - BrowserSteps - Speed up scraping, refactor screenshot handling for very long pages (#2999) - Browser Steps - Added new "Make all child elements visible" action - Browser Steps - Added new "Remove elements" action - UI - Browser Steps - "Click X,Y" should focus on the input field also - UI - Browser Steps - Improving Browser Steps usability on mobile 0.49.3 / 2025-02-22 10:24:44 +0100: - 0.49.3 - UI - Reverting JS change to tabs (the better fix was the W3C HTML validation) 0.49.2 / 2025-02-19 16:01:01 +0100: - 0.49.2 - UI - Make the setup and error messages for Visual Selector and Browser Steps a lot more meaningful (#2977) - Update docker-compose.yml - UI - More W3C HTML validation fixes - UI - More W3C validation fixes (#2973) - UI - Tweaks for HTML validation - Filter - "Unique lines" could possibly crash if history was empty or cleared on the disk - UI - Sometimes the DOM wasnt ready when tab selection triggered via CSS, which displayed empty tabs on some browsers - Removing deprecated docker-compose.yml version attribute (#2967) - Update settings.html - Browser Steps - Increasing timeout for actions and unifying timeout values - Browser Steps - Fixing 'Uncheck checkbox' #2958 - UI - "Browser Steps" tab should be always available with helpful info (evenwhen playwright is not configured) (#2955) - Adding `browser_steps` JSON Schema rule for API updates (#2957) - UI - Fix mute/unmute alt/title label alt/title text in watch overview (#2951) 0.49.1 / 2025-02-08 10:14:19 +0100: - 0.49.1 - Update stock-not-in-stock.js - Italian (#2948) - Re #2945 - Handle/Strip UTF-8 ByteOrderMark in JSON strings correctly (fixes `"Exception: No parsable JSON found in this document" ` error) (#2947) - Add major and minor tags for Docker release workflow (#2938) - Adding jinja2/browsersteps test (#2915) - Header handling - Fix header parsing to split on the first colon only (headers where the value contained :// type may have been broken) (#2929) 0.49.0 / 2025-01-21 13:40:01 +0100: - 0.49.00 - Update README.md - Build/Libraries - Pin `referencing` library which breaks due to out-dated flask_expects_json, remove pip upgrade in test(#2912) - Notifications - Custom POST:// GET:// etc endpoints - returning 204 and other 20x responses are OK (don't show an error was detected)(#2897) 0.48.06 / 2025-01-09 23:02:29 +0100: - 0.48.06 - Restock - Add test for new lower/higher price notification Re #2715 (#2892) - Update integration test for "linuxserver" test build (#2891) - Notifications - Update Apprise to 1.9.2 - Fixes custom posts:// gets:// etc URL's being double-encoded, fixes chantify:// notifications (#2868) (#2875) (#2870) - Custom posts:// get:// notifications etc - Be sure our custom extensions are imported (#2890) - "Send test notification" button - Easier to understand test send results, Improved error handling, code refactor (#2888) - Improve `last_checked` vs `last_changed` time information precision (#2883) - Update Apprise to 1.9.1 (#2876) - Builder/Docker - Remove PUID and PGID ( they were not used ) (#2852) - UI - Fix diff not starting from last viewed snapshot (#2744) (#2856) 0.48.05 / 2024-12-27 11:24:56 +0100: - 0.48.05 - Fixing test for CVE-2024-56509 (#2864) - CVE-2024-56509 - Stricter file protocol checking pre-check ( Improper Input Validation Leading to LFR/Path Traversal when fetching file:.. ) 0.48.04 / 2024-12-16 21:50:53 +0100: - 0.48.04 - Windows was sometimes missing timezone data (#2845 #2826) 0.48.03 / 2024-12-16 16:14:03 +0100: - 0.48.03 - 0.48.02 - 0.48.02 - Notifications - "Send test" was not always following "System default notification format" (#2844) - Notifications - "Send test" was not always following "System default notification format" 0.48.02 / 2024-12-16 16:07:11 +0100: - 0.48.02 - Notifications - "Send test" was not always following "System default notification format" - Notifications - Default notification format (for new installs) now "HTML color" (#2843) - Notification - `HTML Color` format notification colors should be same as UI, `{{diff_full}}` token should also get HTML colors ( #2842 #2554 ) - Notifcations - Adding "HTML Color" notification format option (#2837) - UI - Make 'tag' sticky - redirect to current tag on edit or add watch (#2824 #2785) - Notifications - Support for commented out notification URLs (#2825 #2769) - Docs - Adding information to README.md about the new scheduler 0.48.01 / 2024-12-03 18:44:20 +0100: - 0.48.01 - UI - Fixing scheduler options 0.48.00 / 2024-12-03 14:26:01 +0100: - 0.48.00 - Fix HIDE_REFERER env option for hiding changedetection.io from referer headers (#2787) - New functionality - Time (weekday + time) scheduler / duration (#2802) - Add Turkish phrases for out-of-stock detection (#2809) - UI - Always use UTC timezone for storing data, show local timezone (#2799) - Update stock-not-in-stock.js - Python 3.13 compatibility (#2791) - Code - Update .gitignore and .dockerignore (#2797) - VisualSelector - Use 'deflate' for storing elements.json, 90% file size reduction (#2794) - UI - Show local timezone info in settings (for future functionality) #2793 - Notification - Locking paho-mqtt:// version fix - Update COMMERCIAL_LICENCE.md - Ability to disable version check (set `DISABLE_VERSION_CHECK=true`) Re #2773 (#2775) - Minor improvement for queue management - Update bug_report.md 0.47.06 / 2024-11-07 20:10:02 +0100: - Security - Fix test - Security check - improve test - 0.47.06 - CVE-2024-51998 - file:/ path traversal access should not be allowed to access a file without ALLOW_FILE_URI set - Update docker-compose.yml (#2767) - Price tracker - fix for sites that supply an empty additional price (#2758) - Testing - Pinning werkzeug (#2757) 0.47.05 / 2024-10-31 22:51:03 +0100: - 0.47.05 - CVE-2024-51483 - Fix for limiting access to file:// via source:file:///tmp/file.txt when using webdriver/playwright - Backups - Hide incomplete/running backups from being downloaded - Backups - Backups now operate in the background, provide a nice UI to access/download previous backups (#2755) - Filters - Process all CSS and XPath 'subtract' selectors in a single pass to prevent index shifting and reference loss during DOM manipulation. (#2754) 0.47.04 / 2024-10-29 08:25:05 +0100: - 0.47.04 - Do not recheck 'paused' watches on edit/save (Re #2747 #2750) - Notification post:// get:// etc - Fixing URL encoding of headers so that '+' in URL is correctly parsed as ' ' (and other url-encodings) (#2745) - #2502 - Add jinja2 template handling to request body and headers (#2740) - Restock detection - Add additional out-of-stock detection for PT language (#2738) - "Send test notification" in "Restock" mode was not working correclty when restock tokens "{{restock.price}}" were in the notification body (#2737) - #2727 Notifications - Fix "send test notification" on empty list, includes test (#2731) - UI - Fix mobile styling inconsistencies and resolve diff page overflow issue (#2716) - Filters - "Block change detection when text exists" should not trigger a change when the original text returns - UI - More work on tab buttons hiding behind menu/header :-) 0.47.03 / 2024-10-11 17:33:00 +0200: - 0.47.03 - Remove same checksum skip check - saved a little CPU but added a lot of complexity (#2700) - UI - Fix scroll offset / tab buttons hiding behind menu/header - 0.47.02 - UI - Fix scroll offset / tab buttons hiding behind menu/header 0.47.02 / 2024-10-11 15:35:36 +0200: - 0.47.02 - UI - Fix scroll offset / tab buttons hiding behind menu/header 0.47.01 / 2024-10-11 15:02:17 +0200: - 0.47.01 - Adding missing `apprise_plugin` for pypi/pip based installs 0.47.00 / 2024-10-11 13:04:56 +0200: - 0.47.00 - Restock multiprice improvements (#2698) - Test - Simple test for live preview - Adding test for proxy checker/scanner (#2697) - Fixing proxy checker (#2696) - UTF-8 handling fixes, Improvements to whitespace filtering (#2691) - Testing - Tidyup (#2693) - Filters & Text - Preview refactor/improvements (#2689) - Build - Add image source label to Dockerfile (Better Renovate and others support) (#2690) - Custom JSON/POST Notifications - Log when it could not apply the application/json content-type header - UI - Filters live preview - improvements to layout - Restock - Use the scraped 'Not in stock' product status over the metadata version (many website lie in the metadata) (#2684) - UI - Better 40x error message (#2685) - Visual Selector - Including