dgtlmoon
00a00b664f
Merge branch 'master' into browser-ui
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Canceled after 0s
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Canceled after 0s
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Canceled after 0s
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Canceled after 0s
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Canceled after 0s
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Canceled after 0s
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Canceled after 0s
ChangeDetection.io App Test / lint-code (push) Canceled after 0s
ChangeDetection.io App Test / lint-translations (push) Canceled after 0s
ChangeDetection.io App Test / lint-template-i18n (push) Canceled after 0s
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Canceled after 0s
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Canceled after 0s
ChangeDetection.io App Test / test-application-3-11 (push) Canceled after 0s
ChangeDetection.io App Test / test-application-3-12 (push) Canceled after 0s
ChangeDetection.io App Test / test-application-3-13 (push) Canceled after 0s
ChangeDetection.io App Test / test-application-3-14 (push) Canceled after 0s
2026-09-17 17:26:16 +02:00
dgtlmoon
acc4533f51
Security - GHSA-mh42-m7cg-49fr - Authenticated path traversal to arbitrary file write via the watch processor field (enum bypassed through /imports/import)
2026-08-20 10:56:13 +02:00
dgtlmoon
ea6201bcc9
Ability to have a preview of the 'processor' output in add-watch-ui/
2026-07-22 16:05:55 +02:00
dgtlmoon
995560ad4f
/add-watch-ui should only show processors that do visual stuff
2026-07-22 15:25:51 +02:00
dgtlmoon
71d332d5a0
UI full refactor / upgrade ( #4183 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / lint-translations (push) Has been cancelled
ChangeDetection.io App Test / lint-template-i18n (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-14 (push) Has been cancelled
2026-07-16 15:08:29 +02:00
dgtlmoon
90f157abde
Groups - Set custom colour for tag/group/label background ( #4040 )
2026-04-10 11:48:58 +02:00
dgtlmoon
b6d3d63372
Avoid reprocessing if the page was the same ( #3867 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
2026-02-14 21:24:28 +01:00
dgtlmoon
83d7ce0fcf
Processor plugin improvements - Now supports creating your own processor (for example, monitor DNS changes) ( #3739 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (alpine) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/amd64 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v7 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm/v8 (main) (push) Has been cancelled
ChangeDetection.io Container Build Test / Build linux/arm64 (main) (push) Has been cancelled
2026-02-04 14:23:08 +01:00
dgtlmoon
3d14df6a11
Development branch merge into release/master
...
Multi-language / Translations Support (#3696 )
- Complete internationalization system implemented
- Support for 7 languages: Czech (cs), German (de), French (fr), Italian (it), Korean (ko), Chinese Simplified (zh), Chinese Traditional (zh_TW)
- Language selector with localized flags and theming
- Flash message translations
- Multiple translation fixes and improvements across all languages
- Language setting preserved across redirects
Pluggable Content Fetchers (#3653 )
- New architecture for extensible content fetcher system
- Allows custom fetcher implementations
Image / Screenshot Comparison Processor (#3680 )
- New processor for visual change detection (disabled for this release)
- Supporting CSS/JS infrastructure added
UI Improvements
Design & Layout
- Auto-generated tag color schemes
- Simplified login form styling
- Removed hard-coded CSS, moved to SCSS variables
- Tag UI cleanup and improvements
- Automatic tab wrapper functionality
- Menu refactoring for better organization
- Cleanup of offset settings
- Hide sticky tabs on narrow viewports
- Improved responsive layout (#3702 )
User Experience
- Modal alerts/confirmations on delete/clear operations (#3693 , #3598 , #3382 )
- Auto-add https:// to URLs in quickwatch form if not present
- Better redirect handling on login (#3699 )
- 'Recheck all' now returns to correct group/tag (#3673 )
- Language set redirect keeps hash fragment
- More friendly human-readable text throughout UI
Performance & Reliability
Scheduler & Processing
- Soft delays instead of blocking time.sleep() calls (#3710 )
- More resilient handling of same UUID being processed (#3700 )
- Better Puppeteer timeout handling
- Improved Puppeteer shutdown/cleanup (#3692 )
- Requests cleanup now properly async
History & Rendering
- Faster server-side "difference" rendering on History page (#3442 )
- Show ignored/triggered rows in history
- API: Retry watch data if watch dict changed (more reliable)
API Improvements
- Watch get endpoint: retry mechanism for changed watch data
- WatchHistoryDiff API endpoint includes extra format args (#3703 )
Testing Improvements
- Replace time.sleep with wait_for_notification_endpoint_output (#3716 )
- Test for mode switching (#3701 )
- Test for #3720 added (#3725 )
- Extract-text difference test fixes
- Improved dev workflow
Bug Fixes
- Notification error text output (#3672 , #3669 , #3280 )
- HTML validation fixes (#3704 )
- Template discovery path fixes
- Notification debug log now uses system locale for dates/times
- Puppeteer spelling mistake in log output
- Recalculation on anchor change
- Queue bubble update disabled temporarily
Dependency Updates
- beautifulsoup4 updated (#3724 )
- psutil 7.1.0 → 7.2.1 (#3723 )
- python-engineio ~=4.12.3 → ~=4.13.0 (#3707 )
- python-socketio ~=5.14.3 → ~=5.16.0 (#3706 )
- flask-socketio ~=5.5.1 → ~=5.6.0 (#3691 )
- brotli ~=1.1 → ~=1.2 (#3687 )
- lxml updated (#3590 )
- pytest ~=7.2 → ~=9.0 (#3676 )
- jsonschema ~=4.0 → ~=4.25 (#3618 )
- pluggy ~=1.5 → ~=1.6 (#3616 )
- cryptography 44.0.1 → 46.0.3 (security) (#3589 )
Documentation
- README updated with viewport size setup information
Development Infrastructure
- Dev container only built on dev branch
- Improved dev workflow tooling
2026-01-12 17:50:53 +01:00
dgtlmoon
ae532c82e8
Run all pytests in parallel ( #3569 )
2025-10-28 21:32:25 +01:00
dgtlmoon
64350a2e78
Replace jinja2-time with arrow and improve timedate timezone integration, fixes timezones in templates such as {% now 'Europe/London', '%Y-%m-%d' %} etc ( #3496 )
2025-10-13 11:52:02 +02:00
dgtlmoon
685bd01156
Favicons in list - Prefer best/highest quality ( #3351 )
Build and push containers / metadata (push) Has been cancelled
Build and push containers / build-push-containers (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Has been cancelled
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Has been cancelled
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-10 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-11 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-12 (push) Has been cancelled
ChangeDetection.io App Test / test-application-3-13 (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2025-08-20 13:08:36 +02:00
dgtlmoon
73f3beda00
Realtime UI - Socketio tweaks and refactor ( #3220 )
2025-06-03 10:17:19 +02:00
Jost Alemann
9b7372fff0
Code - Remove unused f-strings ( #3209 )
2025-05-22 12:11:39 +02:00
dgtlmoon
61be7f68db
Requests fetcher - Remove old screenshot when watch was in a different fetcher type ( #3097 )
2025-04-09 10:01:20 +02:00
dgtlmoon
f7e9846c9b
CVE-2024-56509 - Stricter file protocol checking pre-check ( Improper Input Validation Leading to LFR/Path Traversal when fetching file:.. )
2024-12-27 09:26:28 +01:00
dgtlmoon
49bc982c69
CVE-2024-51998 - file:/ path traversal access should not be allowed to access a file without ALLOW_FILE_URI set
2024-11-07 18:45:19 +01:00
dgtlmoon
26d3a23e05
CVE-2024-51483 - Fix for limiting access to file:// via source:file:///tmp/file.txt when using webdriver/playwright
2024-10-31 22:49:31 +01:00
Christopher Charbonneau Wells
e8b82c47ca
#2502 - Add jinja2 template handling to request body and headers ( #2740 )
2024-10-28 15:46:05 +01:00
dgtlmoon
5bb47e47db
Remove same checksum skip check - saved a little CPU but added a lot of complexity ( #2700 )
2024-10-11 17:28:42 +02:00
dgtlmoon
c1c8de3104
Fixing proxy checker ( #2696 )
2024-10-11 00:19:19 +02:00
dgtlmoon
00458b95c4
UI - Improvements to live preview of Filters text
...
"Ignore text" is now "Remove text", it works the same but it removes the text instead of ignoring it, which is the same thing, but makes the code simpler
2024-10-05 16:32:28 +02:00
dgtlmoon
1b625dc18a
UI - "Filters & Triggers" - Live preview of text filters (Preview the output of the filters section in realtime) ( #2612 )
2024-09-28 10:40:47 +02:00
dgtlmoon
8a35d62e02
Handle zero-byte/empty content responses with "[ ] Empty pages are a change" option, the same as when the HTML doesnt render any useful text ( #2530 )
2024-07-29 13:27:59 +02:00
dgtlmoon
cffb6d748c
Restock & Price monitor - Huge refactor, set upper and lower price alert limits, set % change, follow the prices and restock amounts directly in the watch-overview list
2024-07-12 17:09:42 +02:00
dgtlmoon
343e359b39
Now saving last two HTML snapshots for future reference, refactor, dont write screenshots and xpath to disk when no change detected (saves disk IO) ( #2431 )
2024-06-23 09:19:32 +02:00
dgtlmoon
c6ee6687b5
Fetching/Requests - Fixing user agent header overrides per-watch of global settings ( #2409 )
2024-06-13 10:50:46 +02:00
dgtlmoon
f49eb4567f
Ability to set default User-Agent for either fetching types directly in the UI ( #2375 )
2024-05-20 15:11:15 +02:00
dgtlmoon
9449c59fbb
Code - Getting ready for newer python versions - packing our own strtobool ( #2291 )
2024-04-03 16:17:15 +02:00
dgtlmoon
904ef84f82
Build fix - Pinning package versions and Custom browser endpoints should not have a proxy set ( #2204 )
2024-02-20 22:11:17 +01:00
dgtlmoon
ccb42bcb12
Fetching pages - Custom browser endpoints should not have default proxy info added
2024-02-12 19:05:10 +01:00
dgtlmoon
823a0c99f4
Code - Split content fetcher code up (playwright, puppeteer and requests), fix puppeteer direct chrome support ( #2169 )
2024-02-11 00:09:12 +01:00
dgtlmoon
399cdf0fbf
Logging loguru output tweaks ( #2112 )
2024-01-16 11:27:47 +01:00
Constantin Hong
4be0fafa93
Support Loguru as a logger ( #2036 )
2024-01-16 09:48:16 +01:00
dgtlmoon
273bd45ad7
Fetching - Custom browser on experimental/puppeteer fetcher - Don't switch to custom puppeteer mode if external browser URL is active ( #2068 )
2024-01-01 16:40:24 +01:00
dgtlmoon
599291645d
PDF Fetcher for change detection - Always use plain requests for PDF because otherwise we cant access the embed PDF in the browser ( #2020 )
2023-11-30 20:01:14 +01:00
dgtlmoon
5229094e44
New functionanlity - Selectable browser / ability to add extra browser connections (good for using "scraping browsers"/ etc) ( #1943 )
2023-11-13 16:39:11 +01:00
dgtlmoon
c8dcc072c8
Code refactor for fetchers ( #1941 )
2023-11-13 10:42:56 +01:00
dgtlmoon
1987e109e8
New feature - Helper button to trigger a scan/access test of all proxies for a particular watch ( #1685 )
2023-07-10 16:08:45 +02:00
dgtlmoon
6e71088cde
New feature - Restock / stock / out of stock monitor option/mode
2023-03-18 20:36:26 +01:00