dgtlmoon
52b189fc7c
Security - Hardening XML parser against XXE
2026-04-27 17:00:42 +10:00
dgtlmoon
ba20f66cee
Security - Arbitrary Local File Read via crafted backup restore
2026-04-27 16:35:07 +10:00
dgtlmoon
e9e8c8d218
LLM / AI Change detection rules and Summaries
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 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
ChangeDetection.io App Test / lint-code (push) Has been cancelled
ChangeDetection.io App Test / lint-translations (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-04-24 15:21:09 +02:00
dgtlmoon
9df2e172f4
Test - word-level diff - Re #4037 - adding test ( #4042 )
2026-04-10 12:32:02 +02:00
dgtlmoon
dc037f85ab
Fix/step failure notification crash ( #4041 )
2026-04-10 12:15:47 +02:00
chaoliang yan
4294b461c7
fix: pass include_change_type_prefix to word-level diff ( #4037 )
2026-04-10 11:46:55 +02:00
dgtlmoon
238d6ba72d
Feature - Groups/tag - Apply a group by specifying a wildcard, ie *.mysite.com* ( #4032 )
2026-04-10 02:45:23 +02:00
dgtlmoon
ede06a92bd
diff_changed_from/diff_changed_from tokens - improve documentation
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 App Test / test-application-3-14 (push) Has been cancelled
2026-04-09 08:32:13 +02:00
dgtlmoon
9d4249c820
Notification - Adding tokens {{diff_changed_from}} and {{diff_changed_to}} #3818 ( #4031 )
2026-04-09 08:28:08 +02:00
dgtlmoon
31a760c214
CVE-2026-35490 - Authentication Bypass via Decorator Ordering
2026-04-04 05:58:53 +02:00
dgtlmoon
7c9eb02df4
Ensure all unit tests are run ( #4022 )
2026-04-03 07:16:52 +02:00
dgtlmoon
7c8d59c795
Fixing bad replacement of metadata causing possible content removal #3906 ( #3908 )
2026-02-20 00:55:37 +01:00
dgtlmoon
25a17bd49d
Fix: Some SPAs with long content - Stripping tags must also find matching close tag ( #3895 )
2026-02-17 16:57:29 +01:00
dgtlmoon
954582a581
Fix: Some SPA's also set body content to display: none which breaks text output
2026-02-17 15:38:54 +01:00
dgtlmoon
d8ef86a8b5
"Error 200 no content" - Some very large SPA pages make HTML to Text fail by dumping 10Mb+ into page header, strip extras. ( #3892 )
2026-02-17 14:44:03 +01:00
dgtlmoon
c6d6ef0e0c
Fix time schedule off-by-one bug at exact end times for all durations and add comprehensive edge case tests Re #846 ( #3890 )
2026-02-17 02:38:16 +01:00
dgtlmoon
892b645147
Refactor for Tags storage ( #3848 )
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-07 13:13:02 +01:00
dgtlmoon
84d26640cc
Adding more tests and Watch object improvements ( #3841 )
2026-02-05 17:01:08 +01:00
dgtlmoon
dc8b387f40
History length limit size option ( #3834 )
2026-02-05 12:29:20 +01:00
dgtlmoon
5e5674f48d
Non blocking improvements ( #3767 )
...
* Non blocking improvements
* Test fix
* Background thread re-queue
* Nonblockimg improvements, run tasks in background, add warning about CPU cores
* Misc fixes
2026-01-17 17:25:18 +01:00
dgtlmoon
e45c77d51d
Test - Adding missing test
2026-01-17 15:33:34 +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
a8d5ea067d
Watch history - Don't rescan whole history.txt when looking up a timestamp <->filepath ( #3602 )
2025-11-05 18:50:27 +01:00
dgtlmoon
f71550da4d
Discord + Telegram - Adding better styling (Discord now uses strike-through and bold for removal/additions instead of broken HTML) ( #3528 )
2025-10-23 20:57:59 +02: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
aa4e182549
Conditions & API - Fix set Conditions by API ( #3349 )
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
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
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2025-07-30 17:47:07 +02:00
dgtlmoon
3d5a544ea6
CVE-2025-52558 - Fixing XSS in error handling output of watch overview list
2025-06-21 09:45:22 +02:00
dgtlmoon
54b7c070f7
UI - Conditions - Offer some information about what the filter/condition/trigger saw ( #3062 )
2025-03-27 10:29:11 +01:00
dgtlmoon
7e7d5dc383
New major functionality CONDITIONS - Compare values, check numbers within range, etc
Build and push containers / metadata (push) Waiting to run
Build and push containers / build-push-containers (push) Waiting to run
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Build distribution 📦 (push) Waiting to run
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Test the built 📦 package works basically. (push) Blocked by required conditions
Publish Python 🐍distribution 📦 to PyPI and TestPyPI / Publish Python 🐍 distribution 📦 to PyPI (push) Blocked by required conditions
ChangeDetection.io App Test / lint-code (push) Waiting to run
ChangeDetection.io App Test / test-application-3-10 (push) Blocked by required conditions
ChangeDetection.io App Test / test-application-3-11 (push) Blocked by required conditions
ChangeDetection.io App Test / test-application-3-12 (push) Blocked by required conditions
ChangeDetection.io App Test / test-application-3-13 (push) Blocked by required conditions
ChangeDetection.io Container Build Test / test-container-build (push) Has been cancelled
2025-03-17 19:20:24 +01:00
dgtlmoon
e799a1cdcb
0.49.00
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 Container Build Test / test-container-build (push) Has been cancelled
ChangeDetection.io App Test / lint-code (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
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
2025-01-21 13:40:01 +01:00
MoshiMoshi0
05f54f0ce6
UI - Fix diff not starting from last viewed snapshot ( #2744 ) ( #2856 )
2024-12-27 13:03:10 +01:00
dgtlmoon
7421e0f95e
New functionality - Time (weekday + time) scheduler / duration ( #2802 )
2024-12-03 12:45:28 +01:00
dgtlmoon
5a768d7db3
UTF-8 handling fixes, Improvements to whitespace filtering ( #2691 )
2024-10-10 14:59:39 +02:00
Kenny Root
d23a301826
Use #!/usr/bin/env to support virtualenv ( #2518 )
2024-07-25 14:39:01 +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
bd6eda696c
Merge pull request from GHSA-4r7v-whpg-8rx3
...
* CVE-2024-32651 - Security fix - Server Side Template Injection in Jinja2 allows Remote Command Execution
* use ImmutableSandboxedEnvironment also in validation
2024-04-25 22:06:09 +02:00
dgtlmoon
0285d00f13
UI - Clicking the "[Diff]" link should take you to the difference starting at the relative time to when you last viewed the difference page ( #1989 )
2023-11-17 17:21:26 +01:00
Tiago Ilieve
3b875e5a6a
Add 'diff_patch' notification body token - This will allow the diff to be generated in the "unified patch format." ( #1765 )
2023-09-07 08:55:06 +02:00
dgtlmoon
55b6ae86e8
Ability to set which text to process triggers on (added, removed, changed) according to the difference ( #1483 )
2023-03-20 20:16:57 +01:00
dgtlmoon
3b80bb2f0e
Use brotli for reducing the size of the text snapshots ( #1482 )
2023-03-19 21:12:22 +01:00
reecespieces
0d05ee1586
Notification Improvements - New tokens {{diff_added}} and {{diff_removed}}, removed whitespace around added and into ( Issue #905 ) ( #1454 )
2023-03-12 16:21:47 +01:00
dgtlmoon
082634f851
Fix - {diff} and {diff_full} notifications tokens were not always including the full output
2022-03-29 19:18:26 +02:00
dgtlmoon
5a10acfd09
Send diff in notifications ( #296 )
2021-12-10 12:08:51 +01:00