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
4b1d871078
Improving UTF-8 handling for xPath selectors (Stop the xpath filter from chewing up non-regulat-latin-text style content) ( #3659 )
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
2025-11-28 13:13:41 +01:00
dgtlmoon
8dc39d4a3d
RSS feeds for a single watches!
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
2025-11-12 17:38:18 +01:00
dgtlmoon
fd2080567d
Page <title> should only be captured on HTML documents ( #3608 )
2025-11-07 11:51:10 +01:00
dgtlmoon
ae532c82e8
Run all pytests in parallel ( #3569 )
2025-10-28 21:32:25 +01:00
dgtlmoon
55b8588f1f
Testing - Adding test for requests timeout setting #975
2025-10-12 21:54:25 +02:00
dgtlmoon
4dbab8d77a
Test speedup - remove common calls for function calls ( #3477 )
2025-10-10 01:16:03 +02:00
dgtlmoon
3b9d19df43
Refactoring text/html difference processor ( #3475 )
2025-10-09 18:30:53 +02:00
dgtlmoon
3e59521f48
Always follow plaintext header over the actual content type if its available ( #3473 ) #3472
2025-10-09 12:56:32 +02:00
dgtlmoon
f7dfc9bbb8
Refactor content type detection, fixing more xpath issues for RSS types ( #3465 ) #3462 #3391
2025-10-09 00:14:28 +02:00
dgtlmoon
0c9c475f32
Fixing bad detection of text text/plain in previous release, adding automated test ( #3460 )
2025-10-06 15:39:07 +02:00
dgtlmoon
01c1ac4c0c
Process text/* non-HTML in their original format keeping line breaks, auto-detect attachments/downloads for text or HTML, WARNING - Will trigger false changes for some existing text file watches #3434 ( #3435 )
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
2025-09-19 10:42:34 +02:00
dgtlmoon
a95aa67aef
UI - Re #3393 #3419 Implementation of unread counter tab along with realtime updates ( #3433 )
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
2025-09-18 11:14:26 +02:00
dgtlmoon
9db7fb83eb
Always extract page <title>, {{watch_title}} added to notification body tokens ( #3415 )
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-09-10 14:52:41 +02:00
dgtlmoon
73f3beda00
Realtime UI - Socketio tweaks and refactor ( #3220 )
2025-06-03 10:17:19 +02:00
dgtlmoon
0f65178190
Realtime UI updates via WebSocket ( #3183 )
2025-05-26 20:12:32 +02:00
dgtlmoon
a0b7efb436
UI - Fix to edit and groups template
2025-04-16 18:40:30 +02:00
dgtlmoon
cfb4decf67
UI Edit/Stats - Add levenshtein distance info, explains how "different" the last two snapshot are ( #3109 )
2025-04-11 17:36:29 +02:00
dgtlmoon
302ef80d95
Server - Path blueprint fixes and moving code blueprint to fix RSS forward slash on url ( #3054 )
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
2025-03-25 22:57:15 +01:00
dgtlmoon
73189672c3
Refactor code layout, add extra tests
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-03-18 10:40:22 +01:00
dgtlmoon
b1e700b3ff
Adding jinja2/browsersteps test ( #2915 )
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-01-28 18:14:49 +01:00
dgtlmoon
66fb05527b
Improve last_checked vs last_changed time information precision ( #2883 )
2025-01-06 20:38:50 +01:00
dgtlmoon
371f85d544
Watch 'Download last snapshot' link/button should give last, not first snapshot ( #2576 )
2024-08-19 17:20:30 +02:00
Kenny Root
d23a301826
Use #!/usr/bin/env to support virtualenv ( #2518 )
2024-07-25 14:39:01 +02:00
dgtlmoon
8acdcdd861
UI - Adding "Download latest HTML snapshot" from Edit Watch > Stats page for easier debugging ( #2513 )
2024-07-21 18:17:34 +02:00
dgtlmoon
8f3a6a42bc
Testing - Adding simple memory usage test ( #2483 )
2024-07-11 15:03:42 +02:00
dgtlmoon
a1d04bb37f
Snapshot count from history was not updated in watch after using [clear history] ( #2459 )
2024-07-05 11:09:31 +02:00
dependabot[bot]
5e65fb606b
Bump dnspython from 2.3.0 to 2.6.1 ( #2306 )
2024-06-17 10:23:50 +02:00
dgtlmoon
6aded50aca
UI - 'Mark all viewed' button should not show when all viewed ( #2399 )
2024-06-05 11:46:04 +02: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
da421fe110
UI - Ability to select between any difference date ( from / to ) and minor UI cleanup for differences page ( #1855 )
2023-10-11 16:25:36 +02:00
dgtlmoon
6f1eec0d5a
Fixing bad linebreak definition </br> in notifications and UI ( #1465 )
2023-03-12 17:05:34 +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
0ed897c50f
New setting to allow passwordless access to your 'diff' page - perfect for sharing your diff page securely, refactored login code ( #1357 )
2023-01-29 22:36:55 +01:00
jtagcat
58c7cbeac7
UI: Updating queued success message ( #1285 )
2023-01-05 21:12:02 +01:00
dgtlmoon
77b59809ca
Removing unused code ( #1070 )
2022-10-28 18:36:07 +02:00
dgtlmoon
8fef3ff4ab
[preview current] cleanup code and add test
2022-07-30 20:11:56 +02:00
dgtlmoon
7929aeddfc
'Mark all viewed' button was missing in this version, added test also. ( #652 )
2022-06-02 10:01:03 +02:00
dgtlmoon
07e279b38d
API Interface ( #617 )
2022-05-20 16:27:51 +02:00
dgtlmoon
9e708810d1
Seconds/minutes/hours/days between checks form field upgrade from 'minutes' only ( #512 )
2022-04-24 16:56:32 +02:00
dgtlmoon
8f062bfec9
Refactor form handling ( #548 )
2022-04-19 21:43:07 +02:00
dgtlmoon
380c512cc2
Adding support for change detection of HTML source-code via "source: https://website.com " prefix ( #540 )
2022-04-12 17:36:29 +02:00
dgtlmoon
8f40f19328
RSS feed CDATA should contain difference output
2022-03-30 10:51:10 +02:00
dgtlmoon
5483f5d694
Security update - Use CSRF token protection for forms, make "remove password" use HTTP Post ( #484 )
2022-03-21 22:54:27 +01:00
dgtlmoon
96664ffb10
Better text/plain detection and refactor tests ( #443 )
2022-03-01 17:50:15 +01:00
dgtlmoon
eb3dca3805
Language fix "watches are rechecking." it actually puts them into an internal queue "watches are QUEUED for rechecking"
2022-02-08 13:00:18 +01:00
dgtlmoon
9815fc2526
RSS allow access via token ( #310 )
...
Allow access via a token
* New RSS URL
* Redirect the old RSS feed URL
* fix tests
2021-12-16 00:05:01 +01:00
dgtlmoon
a11b6daa2e
Installation via pip ( #186 )
...
Builder for https://pypi.org/project/changedetection.io/
2021-08-16 15:24:37 +02:00