Skip to content

CHANGELOG

v9.1.0 (2026-06-16)

Bug Fixes

  • uv: Update aioresponses source to specific revision (#234, 4a5e11d)

Features

  • event: Add private attributes for sub-models (#234, 4a5e11d)

Refactoring

  • Relax User model fields and simplify validation (#222, 1628580)

  • Remove slots and update dependencies (#224, 76490c5)

  • Standardize modules names to improve public API surface (#224, 76490c5)

  • api: Change all to use list (#224, 76490c5)

  • client: Add caching option to _build_url (#224, 76490c5)

  • client: Add connect timeout to ClientSession (#234, 4a5e11d)

  • client: Add missing docstrings and refactor parsing (#224, 76490c5)

  • client: Handle invalid ports in nextUrl (#222, 1628580)

  • client: Improve client state management with Enum (#224, 76490c5)

  • client: Improve error messages for nextUrl validation (#224, 76490c5)

  • client: Improve nextUrl handling and polling logic (#224, 76490c5)

  • client: Improve session management and error handling (#224, 76490c5)

  • client: Remove redundant type imports (#224, 76490c5)

  • client: Rename poll to _poll and make private (#217, a1d092e)

  • client: Simplify error handling and response parsing (#224, 76490c5)

  • client: Simplify nextUrl validation logging (#222, 1628580)

  • client: Simplify nextUrl validation logic (#224, 76490c5)

  • client: Simplify type imports using compatibility shims (#224, 76490c5)

  • client: Split response parsing and request handling responsibilities (#224, 76490c5)

  • client: Update docstring for error handling (#222, 1628580)

  • config: Change timeout type from float to int (#224, 76490c5)

  • config: Simplify error message for invalid delays (#224, 76490c5)

  • config: Update retry attempts and max delay (#224, 76490c5)

  • deps: Adjust typing-extensions for Python version (#222, 1628580)

  • deps: Simplify linting (#234, 4a5e11d)

  • docs: Remove obsolete API documentation files (#224, 76490c5)

  • docs: Update mdformat dependencies and exclude api docs (#224, 76490c5)

  • exceptions: Move truncate_text utility to _utils.py (#224, 76490c5)

  • exceptions: Remove slots from error classes (#224, 76490c5)

  • exceptions: Rename constants and functions (#219, 97be6ef)

  • imports: Update import handling for Self and override (#222, 1628580)

  • init: Change all from list to tuple (#224, 76490c5)

  • lint: Combine lint and test groups for pyrefly check (#224, 76490c5)

  • lint: Update pyrefly check command to include test group (#224, 76490c5)

  • makefile: Correct status handling in test-cov-lowest-direct (#234, 4a5e11d)

  • makefile: Update requirements export command options (#222, 1628580)

  • models: Add literal types for user fields (#217, a1d092e)

  • models: Change media type to str (#224, 76490c5)

  • models: Clean up imports and fix media type docstring (#224, 76490c5)

  • models: Remove caching logic from Event model (#222, 1628580)

  • models: Replace Literal types with str for User fields (#222, 1628580)

  • pre-commit: Simplify hooks and remove pip-audit (#229, 7ad0dc7)

  • pyproject: Add aiohttp 3.14 restriction for compatibility with aioresponses (#224, 76490c5)

  • release: Update validation for CB_EVENTS_URL (#224, 76490c5)

  • router: Add async callable check logic (#234, 4a5e11d)

  • router: Change typed_handlers to use list (#224, 76490c5)

  • router: Improve async callable check logic (#234, 4a5e11d)

  • router: Optimize handler registration logic (#224, 76490c5)

  • router: Simplify callable check (#234, 4a5e11d)

  • router: Simplify handler name retrieval logic (#224, 76490c5)

  • tests: Remove aiohttp constraint from test dependencies (#224, 76490c5)

  • tests: Remove unused callable wrapper classes (#224, 76490c5)

  • typing: Replace Self import with typing_extensions (#234, 4a5e11d)

  • uv: Include aiohttp in exclude-newer-package (#224, 76490c5)

  • uv: Remove aiohttp from exclude-newer-package (#224, 76490c5)

  • uv: Replace required-version with exclude-newer-package (#219, 97be6ef)

  • xenon: Update max-absolute argument (#224, 76490c5)

v9.0.2 (2026-05-30)

Bug Fixes

  • models: Handle None in allowed_types check (#212, d19069b)

Refactoring

  • client: Consolidate retry status codes and session management (#189, e6d19fa)

  • client: Extract nextUrl validation logging (#207, c9c20c9)

  • client: Implement terminal state checks (#212, d19069b)

  • client: Improve validation and error handling (#194, 421af0f)

  • client: Improve variable assignment in EventClient (#212, d19069b)

  • client: Include username in error logging (#212, d19069b)

  • client: Remove unused attributes from EventClient (#212, d19069b)

  • client: Rename exception for retryable status errors (#185, fb8a648)

  • client: Simplify async iterator implementation (#212, d19069b)

  • client: Simplify type hints and improve error handling (#207, c9c20c9)

  • client: Update URL parsing and error handling (#181, b3cf7c2)

  • docker: Add Docker example and update event handling (#193, 7c4908a)

  • docker: Move Docker example and configuration (#193, 7c4908a)

  • docker: Update Dockerfile build process (#187, 51bb2b4)

  • docs: Restructure error handling examples (#203, dca6931)

  • exceptions: Simplify error handling for Cloudflare codes (#189, e6d19fa)

  • exceptions: Use HTTPStatus for error codes (#207, c9c20c9)

  • model_config: Update type hints for class settings (#207, c9c20c9)

  • router: Convert handlers to tuples for consistency (#207, c9c20c9)

  • router: Improve event handler dispatch logic (#207, c9c20c9)

  • router: Update on_any decorator usage (#212, d19069b)

  • tests: Improve error handling in URL validation (#194, 421af0f)

  • tests: Move TESTBED_POLL_URL to test file (#212, d19069b)

  • tests: Remove redundant stamina state setup (#212, d19069b)

v9.0.1 (2026-05-19)

Bug Fixes

  • makefile: Simplify requirements-check command (#175, 9a97ef0)

v9.0.0 (2026-05-18)

Features

  • Switch to URL-based Events API configuration (#167, 93c7e80)

  • pre-commit: Add docstrfmt for formatting RST files (#167, 93c7e80)

Refactoring

  • ci: Streamline CI/CD workflow and commands (#165, 8504aad)

  • client: Improve validation for events URL port (#167, 93c7e80)

  • examples: Require CB_EVENTS_URL (#167, 93c7e80)

  • readme: Add Star History section with chart (#165, 8504aad)

  • readme: Simplify note admonitions in substitutions (#165, 8504aad)

  • readme: Update pattern to remove Star History section (#165, 8504aad)

  • tests: Improve event client factory logic and add testbed URL check (#167, 93c7e80)

  • tests: Update e2e test marker description (#167, 93c7e80)

  • tests: Update test-live command to include e2e (#167, 93c7e80)

  • tests: Update URL validation for events API (#167, 93c7e80)

v8.1.3 (2026-05-14)

Bug Fixes

v8.1.2 (2026-05-13)

Bug Fixes

  • ci: Change permissions for release job and persist bot credentials (#163, f04bb2b)

v8.1.1 (2026-05-12)

Bug Fixes

  • deps: Add requirements.txt for pip-audit scanning (#161, bd07145)

  • deps: Widen supported dependency versions (#161, bd07145)

  • pre-commit: Update requirements-sync entry to use bash (#161, bd07145)

  • renovate: Update runtime scope and disable automerge for vulnerability alerts (#161, bd07145)

v8.1.0 (2026-05-10)

Features

  • pyproject: Remove refactor pattern from commit exclusions (#160, bad9d6d)

v8.0.10 (2026-05-10)

Bug Fixes

  • Update permissions and author for release process (#159, 8556b42)

  • ci: Update permissions and author for release process (#159, 8556b42)

v8.0.9 (2026-05-08)

Bug Fixes

  • client: Enforce HTTPS scheme for nextUrl validation (#154, a2463b9)

v8.0.8 (2026-05-05)

Bug Fixes

Refactoring

  • Improve error handling in EventClient (#149, f92aa6f)

  • client: Add method to resolve absolute URLs (#143, 40ea972)

  • client: Handle missing scheme in URL parsing (#143, 40ea972)

  • client: Improve error handling in EventClient (#149, f92aa6f)

  • docker: Rearrange environment variables and entrypoint (#150, 8925aef)

  • docker: Update runtime environment settings (#150, 8925aef)

  • makefile: Streamline lint checks (#144, daadeea)

  • tests: Unify event payload structure in helpers (#149, f92aa6f)

v8.0.7 (2026-04-27)

Bug Fixes

  • deps: Add GitPython constraint (#141, 28ee76c)

  • runtime: Update dependency pydantic to >=2.13.3 (#141, 28ee76c)

v8.0.6 (2026-04-25)

Bug Fixes

  • runtime: Update dependency pydantic to >=2.13.2 (#139, 10d5fdb)

v8.0.5 (2026-04-24)

Bug Fixes

  • runtime: Update dependency pydantic to >=2.13.1 (#129, 174d46b)

v8.0.4 (2026-04-21)

Bug Fixes

  • runtime: Update dependency stamina to v26 (1734acc)

v8.0.3 (2026-04-21)

Bug Fixes

  • runtime: Update dependency pydantic to >=2.13.0 (9a48ce8)

Refactoring

  • Makefile: Add pip-audit scan to security group (fbedc2c)

  • Makefile: Add zizmor to security checks (f6416e2)

  • Makefile: Reorganize targets and improve structure (e1295a9)

  • pyproject: Update dev dependency groups for typecheck (e359211)

v8.0.2 (2026-04-20)

Bug Fixes

  • semantic_release: Update commit patterns for changelog (5b0c8e1)

Refactoring

  • api_response: Rename example API response (5d7f4d9)

  • models: Disable pylint warning for broadcaster access (833f745)

  • models: Update broadcaster property to return None if missing (d6c55a9)

  • tip_activated_lights: Improve environment variable handling (97f61e6)

  • tip_activated_lights: Improve light state management (7f44dc2)

v8.0.1 (2026-04-18)

Bug Fixes

  • models: Improve handling of empty string subgender (#115, f1f0ece)

Refactoring

  • event_handling: Improve log level configuration (#115, f1f0ece)

  • models: Simplify user model field descriptions (#115, f1f0ece)

v8.0.0 (2026-04-18)

Refactoring

  • Improve text truncation and caching logic (#112, c059904)

  • Removed option to extend additional URLs (#114, a9534fb)

  • Reorganize renovate rules, update linting, and improve docs (#109, e80b159)

  • Replace pyrefly and pyright with basedpyright (#111, 265de69)

  • Simplify cache handling and imports (#112, c059904)

  • exceptions: Ignore private usage warning for _TRUNCATE_LENGTH (#111, 265de69)

  • exceptions: Raise ValueError for negative limit in truncate_text (#112, c059904)

  • exceptions: Remove deprecated _TRUNCATE_LENGTH (#112, c059904)

  • exceptions: Rename TRUNCATE_LENGTH to _TRUNCATE_LENGTH (#111, 265de69)

  • renovate: Simplify group names and scopes (#109, e80b159)

  • tests: Improve test coverage and docs (#109, e80b159)

v7.1.2 (2026-04-13)

Bug Fixes

  • security: Update dependency pytest to v9.0.3 [security] (#104, 0fc4480)

Refactoring

  • Dockerfile: Replace pip install with COPY for uv (#103, 26fc564)

  • uv: Add pytest to exclude-newer-package (#105, 37c6d14)

v7.1.1 (2026-04-13)

Bug Fixes

Refactoring

  • Improve signal handling and shutdown process (#101, 60cc836)

  • event_handling: Improve signal handling and shutdown process (#101, 60cc836)

v7.1.0 (2026-04-11)

Features

  • Convert next_url_allowed_hosts to tuple and reorganize constants (#100, 57ea719)

Refactoring

  • client: Update type hints (#100, 57ea719)

  • exceptions: Simplify error handling (#100, 57ea719)

  • exceptions: Update status code definitions (#100, 57ea719)

  • makefile: Rename test-all to check-all (#100, 57ea719)

  • router: Simplify handler logging and type checks (#100, 57ea719)

  • tests: Remove TOKEN_VISIBLE_CHARS assertions (#100, 57ea719)

v7.0.1 (2026-04-09)

Bug Fixes

  • Handle status_code check for None (#93, b02019e)

  • exceptions: Handle status_code check for None (#93, b02019e)

Refactoring

  • init: Change all from list to tuple (#93, b02019e)

  • client: Replace timeout attribute with config.timeout (#93, b02019e)

  • models: Replace cached_property with property (#93, b02019e)

v7.0.0 (2026-04-08)

Refactoring

  • Update workflow and dependency groups (#81, 1efa39d)

  • config: Change strict_validation default to false (#92, eb3ab1c)

  • docs: Clean up comments and improve docstrings (#90, 5a728ab)

  • examples: Standardize color timeout validation logic (#82, e7ebe59)

  • Makefile: Restore format command (#81, 1efa39d)

v6.3.1 (2026-04-01)

Bug Fixes

  • deps: Update aiohttp to v3.13.5 and adjust settings (#78, 425d141)

v6.3.0 (2026-03-30)

Features

  • Expand support to cover Python 3.10+ (#71, ddaace2)

  • Update supported Python versions (#71, ddaace2)

Refactoring

  • client: Improve error message for request failures (#70, ea2aa56)

  • client: Simplify error messages and notes (#70, ea2aa56)

  • exceptions: Add AuthError handling in build_http_error (#71, ddaace2)

  • exceptions: Remove unused Cloudflare error codes (#71, ddaace2)

  • models: Rename TypeVar (#71, ddaace2)

  • pre-commit: Update ruff-check args for exit code (#71, ddaace2)

  • router: Remove redundant comment in dispatch example (#70, ea2aa56)

v6.2.0 (2026-03-26)

Bug Fixes

  • docs: Update error handling example for async usage (#68, adb2241)

Features

  • docs: Add additional doc pages for config and installation (#68, adb2241)

v6.1.4 (2026-03-22)

Bug Fixes

  • ci: Add GPG signing to publish steps in CI/CD (#64, 056ec1c)

v6.1.3 (2026-03-21)

Bug Fixes

  • ci: Update GitHub Actions to use GH_PAT for token (#63, 599dece)

  • client: Improve error handling and logging in EventClient (#62, 79f9248)

Refactoring

  • config: Remove redundant attribute documentation (#62, 79f9248)

  • docs: Simplify docs dependency list (#62, 79f9248)

  • docs: Update Sphinx configuration settings (#62, 79f9248)

  • exceptions: Remove redundant attribute documentation (#62, 79f9248)

  • models: Improve BaseEventModel documentation (#62, 79f9248)

  • models: Remove redundant attribute documentation (#62, 79f9248)

v6.1.2 (2026-03-20)

Bug Fixes

  • semantic-release: Update commit author for GitHub Actions (6a93c8a)

v6.1.1 (2026-03-20)

Bug Fixes

  • semantic-release: Add commit author for GitHub Actions (717c94c)

v6.1.0 (2026-03-20)

Features

  • pre-commit: Add gitleaks secret scan hook (#61, 10d5651)

  • pre-commit: Add redact argument to gitleaks hook (#61, 10d5651)

Refactoring

  • Update type annotations and immutabilty (#59, 1c4f2f3)

  • client: Change AUTH_ERRORS and RETRY_STATUS_CODES to frozenset (#59, 1c4f2f3)

  • client: Fully mask api token in logs (#61, 10d5651)

  • client: Update docstrings for error handling and token masking (#59, 1c4f2f3)

  • client, exceptions, tests: Mask tokens fully in logs and repr (#61, 10d5651)

  • config: Change model_config to use ConfigDict (#59, 1c4f2f3)

  • models: Simplify imports and type annotations (#59, 1c4f2f3)

  • pytest: Rename pytest section to ini_options (#59, 1c4f2f3)

  • renovate: Reorganize package rules (#58, e51d770)

  • renovate: Reorganize package rules and restore breaking update handling (#58, e51d770)

  • router: Change Handler to type alias (#59, 1c4f2f3)

  • tests: Add type hints to test parameters (#57, 4754915)

  • tests: Consolidate and improve test structure (#57, 4754915)

  • tests: Consolidate tests and helpers (#57, 4754915)

v6.0.0 (2026-03-15)

Chores

  • dependencies: Replace tenacity with stamina for retry logic (#56, 7f260c1)

Features

  • dependencies: Replace tenacity with stamina for retry logic (#56, 7f260c1)

Refactoring

  • client: Add HTTP metadata to _TransientError (#56, 7f260c1)

  • client: Handle None for status_code and response_text (#56, 7f260c1)

v5.9.1 (2026-02-19)

Bug Fixes

  • deps: Update dependency tenacity to v9.1.4 (#52, 1296a3b)

v5.9.0 (2026-01-14)

Bug Fixes

  • models: Change extra field behavior to ignore unknown fields (7216b19)

Features

  • client: Recreate retry logic with tenacity (34437e3)

Refactoring

  • client: Move _TransientError class outside EventClient (6734f53)

  • client: Remove unused functions (52322d1)

  • config: Adjust message type assignment (07f6f8c)

  • exceptions: Simplify attribute assignment in EventsError (94e8334)

  • models: Remove unnecessary type casting in Event class (0438d18)

  • router: Simplify docstrings and variable assignments (5ff4c13)

  • tests: Remove unused _compose_message test (150ed63)

  • version: Move version logic to separate file (42a6f12)

v5.8.2 (2026-01-07)

Bug Fixes

  • python-runtime: Update dependency aiohttp to v3.13.3 (#49, 17ce240)

v5.8.1 (2025-12-26)

Bug Fixes

  • docs: Update html_theme_options type to include bool (9c9a3a8)

Refactoring

  • factory: Change config_overrides type to object (9910083)

  • models: Cast return types for cached properties (a102e7c)

  • models: Cast user extraction to User type (89efb87)

  • models: Simplify user extraction logic (3991ffe)

  • router: Update handler type (66e9c60)

  • tests: Update _FuncAttrWrapper to accept non-awaitable callable (6bfa8b9)

v5.8.0 (2025-12-13)

Features

  • client: Add response snippet and host entry sanitization (a18825b)

Refactoring

  • client: Improve formatting (94cadd7)

  • client: Modify retry logic (c24fbbb)

  • example: Simplify event handlers (93d1894)

v5.7.0 (2025-12-09)

Features

  • client: Enhance nextUrl validation and add jitter to retry delay (122e289)

v5.6.5 (2025-12-03)

Bug Fixes

  • router: Handle asyncio.CancelledError separately (8fb30bd)

Refactoring

  • client: Improve type casting in validation error logging (320f603)

  • client: Simplify validation error logging (4b01b7e)

  • examples: Improve type hints and docstrings (fa734cd)

  • router: Remove handling of asyncio.CancelledError in dispatch (debfffb)

  • tests: Simplify event handling in tests (7bd97e7)

v5.6.4 (2025-11-30)

Bug Fixes

  • runtime: Update dependency pydantic to v2.12.5 (#35, fec4603)

v5.6.3 (2025-11-29)

Bug Fixes

  • client: Prevent redirects in session requests (80f7305)

Refactoring

  • client: Clean up comments and organization (398dadf)

  • client: Remove unused sentinel for API keys (b9126f6)

  • example: Remove redundant return type annotations (87202bf)

  • example: Use environment variable for testbed config (832894b)

v5.6.2 (2025-11-22)

Bug Fixes

  • deps: Add examples group for python-dotenv and rich (07a4bfe)

  • Dockerfile: Update Python base image to 3.14 (f36f456)

  • Dockerfile: Update uv dependency to version 0.9.11 (14cfa07)

Refactoring

  • client: Improve type annotations (18ab44f)

  • client: Improve URL handling in EventClient (ca84207)

  • example: Replace print statements with logging (e1a2055)

v5.6.1 (2025-11-16)

Bug Fixes

  • tests: Update coverage options to include src and omit tests (d370837)

Refactoring

  • init: Add pragma comment for PackageNotFoundError (a7a7672)

  • tests: Remove unused pytestmark import (e25409c)

v5.6.0 (2025-11-15)

Features

  • config: Add next_url_allowed_hosts to ClientConfig (acf3f4c)

Refactoring

  • config: Fix indentation in docstring for retry_attempts (2ec081b)

v5.5.1 (2025-11-15)

Bug Fixes

  • test: Disable coverage for end-to-end tests (d760ef6)

v5.5.0 (2025-11-13)

Features

  • models: Improve media purchase event handling (dc5b44b)

Refactoring

  • client: Improve type handling and logging messages (6088c22)

  • config: Specify model_config type annotation (ee59f20)

  • exceptions: Enhance type annotations and override usage (ef4d606)

  • router: Simplify async callable checks (af35cdc)

v5.4.0 (2025-11-12)

Features

  • tests: Add live testbed polling test with env credentials (e66a7ba)

v5.3.0 (2025-11-10)

Features

  • ci: Add grouping for GitHub Actions workflows (37646d6)

Refactoring

  • pre-commit: Remove doc8 rst check hook (4f2780b)

  • renovate: Adjust package rules with labels and scopes (51f690d)

  • renovate: Remove python-semantic-release from dev group (5ad39ef)

v5.2.2 (2025-11-10)

Bug Fixes

  • renovate: Update package name matching patterns (a4735c5)

Refactoring

  • client: Improve logging for event processing and authentication (835e121)

  • config: Improve error message for retry settings (c64dbfc)

  • router: Enhance logging for event dispatching (dcb13e2)

v5.2.1 (2025-11-09)

Bug Fixes

  • deps: Update dependency pydantic to v2.12.4 (64c7750)

v5.2.0 (2025-11-08)

Bug Fixes

  • config: Enforce minimum value for retry_attempts (4711e7f)

Features

  • client: Add validation for nextUrl in API responses (1b7e9cb)

Refactoring

  • docs: Improve Sphinx configuration and imports (890a318)

v5.1.1 (2025-11-06)

Bug Fixes

  • client: Handle event ID extraction for non-mapping items (96f3945)

Refactoring

  • client: Improve JSON response handling and validation (b8cc680)

  • client: Remove redundant error handling comments (6e404a1)

  • router: Improve async handler error message (d11e77f)

  • router: Improve handler name retrieval logic (d7b13e3)

v5.1.0 (2025-11-05)

Bug Fixes

  • auth: Improve error messages for username and token validation (a6ea8e7)

Features

  • router: Enhance async handler registration and error handling (35dbe52)

v5.0.0 (2025-11-05)

Refactoring

  • client: Enhance type annotations (8c8d189)

  • config: Add type annotation for message variable in validation method (1d1da0f)

  • config, router: Rename EventClientConfig to ClientConfig and EventRouter to Router (5de0bc2)

  • dependencies: Add pyrefly package to dev dependencies and update uv.lock (a208108)

  • docs: Update README and example to use ClientConfig and Router (f9b59d3)

  • exceptions: Clarify response_text documentation (ced8d33)

  • models: Enhance type annotations for logger and value variables (525a19f)

  • models: Update field aliases (36ae5d9)

  • router: Enhance type annotations for logger and handlers (f058bc6)

  • tests: Remove unused pyright type checking comments (7553b72)

  • tests: Replace EventClientConfig with ClientConfig (41aee7c)

  • vscode: Update extension recommendations (6b02686)

v4.10.1 (2025-11-04)

Bug Fixes

  • router: Improve handler registration and error logging in event dispatching (e42fa37)

  • router: Log exceptions with handler names during event dispatching (9e37659)

Refactoring

  • client: Improve token masking (0cc0d9b)

  • client: Remove unused client default configurations (91aaeb5)

  • client: Reorganize constants and improve function documentation (488a21e)

  • config: Improve attribute descriptions (26a2188)

  • config: Move default configuration values into the config file (33d4123)

  • constants: Remove obsolete constants file (d136d42)

  • constants: Remove unused variables (b3434a6)

  • example: Format print statements for better readability (e7ace63)

  • exceptions: Remove unused repr method (25aab94)

  • init: Add EventCallback to all (978e262)

  • models: Improve docstrings and update field types (068cca8)

  • models: Improve key handling in Event class (78ee61a)

  • router: Simplify type annotations and improve docstrings (e8c0d19)

  • style: Reduce line length to 80 (e1de966)

  • utils: Remove unused utility functions (73719c4)

v4.10.0 (2025-11-03)

Bug Fixes

  • README: Update event streaming method in examples and improve retry attempts description (028d287)

Features

  • Add utility functions for masking secrets and formatting validation errors (4e7d88e)

  • Implement event batch processing utilities with validation (de985e1)

Refactoring

  • Enhance event handling with improved validation and retry logic (56d20fe)

  • Improve documentation and streamline comments across modules (88fd231)

  • Remove unused event parsing module (50ab429)

  • Simplify event model parsing with shared extraction method (bb0cac7)

  • Streamline event parsing and response handling in EventClient (e768170)

  • router: Enhance event handler registration with normalization for sync and async support (eb4245b)

v4.9.2 (2025-11-02)

Bug Fixes

  • docs: Add new template for Python type documentation (1d34bd5)

Refactoring

  • docs: Remove redundant error handling section and update dependencies note (9ea989f)

v4.9.1 (2025-11-02)

Bug Fixes

  • deps: Update dependency aiohttp to v3.13.2 (b88e635)

v4.9.0 (2025-11-02)

Bug Fixes

  • init: Handle PackageNotFoundError when retrieving package version (b247e14)

Features

  • tests: Reorganize suites with typed fixtures (1ab68fd)

Refactoring

  • client: Enhance error logging for validation failures (7bb07ae)

  • example: Add exit message to main script (a11cd66)

  • models: Improve error logging for validation failures and optimize caching (092dce2)

v4.8.0 (2025-11-01)

Bug Fixes

  • client: Improve error handling for API requests (9799bc6)

Features

  • models: Implement caching for event data retrieval (1e9ccaa)

Refactoring

  • tests: Enhance type hints and improve test function signatures (395c29b)

v4.7.1 (2025-10-31)

Bug Fixes

  • docs: Clarify behavior of event properties and update version import (35df062)

  • models: Enhance error handling for data validation (d24bd84)

Refactoring

  • client: Remove unused ResponseStatus enum and simplify response handling (05cfec5)

  • constants: Simplify Cloudflare error handling (f650ce8)

v4.7.0 (2025-10-31)

Features

  • validation: Introduce strict validation for event data and update error handling (ef2fe99)

Refactoring

  • Improve field handling and logging (455099e)

  • pyproject: Remove unused pyright configuration (de12bb2)

v4.6.1 (2025-10-30)

Bug Fixes

  • constants: Correct initialization of CLOUDFLARE_ERROR_CODES set (3120e80)

  • event: Handle ValidationError when retrieving user, tip, message, and room subject data (27a1c9d)

  • router: Correct type hint for _handlers in EventRouter initialization (0e6dcc5)

Refactoring

  • exceptions: Improve response_text representation in EventsError (5309193)

v4.6.0 (2025-10-30)

Bug Fixes

  • docs: Exclude autoapi templates from doc8 rst check (f1b423e)

Features

  • docs: Add autoapi template for class documentation and update Sphinx configuration (21422fb)

v4.5.2 (2025-10-28)

Bug Fixes

  • client: Ensure polling lock is initialized and handle uninitialized state (7216340)

  • coverage: Remove omitted files from coverage report (646e481)

Refactoring

  • docs: Update module docstrings (d8189d1)

v4.5.1 (2025-10-28)

Bug Fixes

  • pyproject: Update documentation URL to point to Read the Docs (8d2a5bc)

v4.5.0 (2025-10-28)

Features

  • pyproject: Add fancy-pypi-readme metadata hooks for README processing (50da09d)

v4.4.3 (2025-10-28)

Bug Fixes

  • Dockerfile: Update uv package version to 0.9.5 (b9bb24d)

Refactoring

  • pyproject: Remove unused dependencies and clean up metadata hooks (28bb948)

  • router: Remove RouterError and update error handling in tests and documentation (cfa3510)

v4.4.2 (2025-10-27)

Bug Fixes

  • client: Add thread safety with asyncio lock for polling method (212b8d1)

  • config: Update validation method for retry delays in EventClientConfig (e9bbe8d)

Refactoring

  • tests: Enhance test descriptions and structure (fb88608)

v4.4.1 (2025-10-26)

Bug Fixes

  • docs: Update links and titles for consistency (623fb25)

v4.4.0 (2025-10-26)

Bug Fixes

  • docs: Update description in README and pyproject.toml for consistency (03fc31d)

Features

  • docs: Add html_extra_path to include LICENSE and pyproject.toml in build output (8da1ac6)

v4.3.0 (2025-10-26)

Bug Fixes

  • client: Raise EventsError on session initialization failure (449e1e8)

Features

  • exceptions: Add detailed repr methods for EventsError and RouterError (3852ccd)

v4.2.1 (2025-10-26)

Bug Fixes

  • router: Log exceptions in event handlers to improve error tracking (8c1aa7a)

v4.2.0 (2025-10-26)

Features

  • client: Remove global rate limiter and use instance-based limiter (b20b42c)

Refactoring

  • router: Replace EventHandler type alias with Protocol for better type safety (73faf5c)

v4.1.1 (2025-10-22)

Bug Fixes

v4.1.0 (2025-10-21)

Bug Fixes

  • client: Mask authentication token in logs and adjust session timeout (108b033)

  • exceptions: Remove redundant message attribute documentation from exception classes (3a99235)

Features

  • constants: Add SESSION_TIMEOUT_BUFFER (e124271)

v4.0.4 (2025-10-21)

Bug Fixes

  • Enhance error messages for empty and whitespace credentials in EventClient (2a3544b)

  • Update all declaration to use type hinting (3814db5)

Refactoring

  • Adjust rate limiter and improve authentication checks in EventClient (60ccbf8)

  • Refactor error message handling in EventsError and RouterError classes (78b757e)

  • models: Replace cached_property with property for event model attributes (ed0abe0)

v4.0.3 (2025-10-20)

Bug Fixes

  • Change ValueError to AuthError for empty username and token in EventClient (d159944)

  • docs: Improve error handling for authentication in README and index (527846c)

Refactoring

  • example: Remove unused AuthError handling in main (2c70673)

  • example: Reorganize example file layout (5e379ee)

v4.0.2 (2025-10-20)

Bug Fixes

  • docs: Update linked files in README and index (41e111c)

Refactoring

  • client: Simplify username and token validation and improve nextUrl extraction (55d8c77)

  • config: Replace model_validator with field_validator for retry_max_delay validation (9f1a488)

  • constants: Remove outdated constant (6c50842)

  • models: Improve private message check (d89ca9f)

  • router: Improve error handling in event handler dispatch (c7b5372)

  • tests: Simplify test fixtures and remove unused parameters (c2fe968)

v4.0.1 (2025-10-18)

Bug Fixes

  • deps: Update dependency pydantic to v2.12.2 (a9c1ad3)

v4.0.0 (2025-10-18)

Refactoring

  • python-version: Update minimum python version to 3.12 (45a344e)

v3.1.2 (2025-10-17)

Bug Fixes

  • client: Improve error handling in _parse_response_data method to raise JSONDecodeError on invalid JSON (1679a78)

  • router: Enhance dispatch method error handling with context for RouterError (e74e5c5)

Refactoring

  • exceptions: Remove repr methods from EventsError and RouterError classes (1e83de3)

  • models: Replace @property with @cached_property for improved performance in Event class (af3b311)

  • tests: Remove repr tests for EventsError, AuthError, and RouterError classes (4ebeaf1)

v3.1.1 (2025-10-17)

Bug Fixes

  • models: Ensure user, tip, and message data checks are explicit for None (81830c9)

  • router: Simplify exception handling in dispatch method documentation (47a302f)

Refactoring

  • client: Consolidate rate limiter management (edd891d)

  • client: Move rate limiter initialization to instance level and remove class-level reset fixture (352c04a)

  • Makefile: Remove redundant docs-clean target (7786698)

  • tests: Rename and simplify rate limiter fixture (7c3a38a)

v3.1.0 (2025-10-14)

Features

  • Add Codecov test results action to CI workflow (915386d)

Refactoring

  • renovate: Rename pre-commit group to pre-commit-hooks (3e2f51a)

v3.0.5 (2025-10-14)

Bug Fixes

  • deps: Update dependency pydantic to v2.12.0 (#24, f8e50e7)

v3.0.4 (2025-10-13)

Bug Fixes

  • deps: Update dependency aiohttp to v3.13.0 (e035676)

v3.0.3 (2025-10-12)

Bug Fixes

  • deps: Update dependency pydantic to v2.11.10 (e436274)

v3.0.2 (2025-10-11)

Bug Fixes

  • client: Improve JSON parsing error handling in EventClient (2f4572e)

Refactoring

  • client: Simplify return logic in data handling (37726d2)

  • config: Use Self type hint in validate_retry_delays method (b9bf527)

  • exceptions: Enhance error messages and add string representations (62278a2)

  • router: Enhance error handling in dispatch method and improve docstrings (5502196)

  • router: Remove handling of SystemExit and KeyboardInterrupt in dispatch method (fc8a98a)

v3.0.1 (2025-10-10)

Bug Fixes

  • docs: Corrected event handling examples and descriptions (82c148f)

v3.0.0 (2025-10-09)

Bug Fixes

  • config: Add validation for retry max delay against retry backoff (58bd2b2)

Refactoring

  • client: Implement shared rate limiters for event handling and clear them before tests (f8ae923)

  • client: Remove redundant comments and streamline initialization in EventClient (724271a)

  • client: Streamline error handling by consolidating response status checks and utilizing CLOUDFLARE_ERROR_CODES (966bbe4)

  • config: Migrate EventClientConfig to use Pydantic for improved validation and configuration management (2e6ba15)

  • constants: Remove unnecessary comments and streamline constant definitions (0931794)

  • example: Simplify event dispatching by removing error handling logic (247287d)

  • exceptions: Simplify RouterError class by removing unnecessary attributes and improving documentation (1f97a21)

  • models: Remove redundant comments in EventType and Message classes (d189568)

  • models: Simplify boolean checks and optimize membership testing in Message and Event classes (809af39)

  • router: Remove unnecessary comments (bad3bad)

  • router: Simplify event dispatching and improve error handling with RouterError (c7b5318)

  • router: Unify handler registry and improve event dispatching logic (64386cf)

  • tests: Enhance validation error handling in EventClientConfig tests (0665c8e)

  • tests: Update global handler assertion to use None key in EventRouter tests (20cfbce)

  • tests: Update RouterError tests to use EventType constants and remove redundant cases (4a0f7fb)

v2.5.0 (2025-10-08)

Features

  • Add error handling modes and RouterError for event dispatching (e1999cc)

Refactoring

  • Enhance event router documentation and improve error handling logic (d98aabd)

v2.4.3 (2025-10-07)

Bug Fixes

  • docs: Suppress duplicate object warnings in AutoAPI configuration (65c5978)

v2.4.2 (2025-10-07)

Bug Fixes

  • docs: Update build command to allow AutoAPI duplicate warnings (caf9c15)

Refactoring

  • docs: Enhance documentation across modules with detailed descriptions and examples (b63effe)

  • docs: Suppress duplicate object warnings and additional autoapi warnings (2688f95)

v2.4.1 (2025-10-07)

Bug Fixes

  • client: Improve resource cleanup in close method with locking mechanism (ff71761)

  • pylint: Increase max attributes limit from 10 to 12 (f26817e)

Refactoring

  • imports: Consolidate exception imports (04fa725)

v2.4.0 (2025-10-05)

Features

  • ci-cd: Add attestations permissions and step for build provenance (e3a58c0)

Refactoring

  • ci-cd: Improve job descriptions and steps (5698980)

  • ci-cd: Modify workflow structure and update job definitions (bb1d04a)

  • ci-cd: Streamline workflow jobs and improve naming conventions (4702b90)

v2.3.7 (2025-10-04)

Bug Fixes

  • docs: Update license links to use absolute URLs (d1da265)

Refactoring

  • config: Simplify EventClientConfig docstring (ccc7fb5)

v2.3.6 (2025-10-03)

Bug Fixes

  • Update project URLs to reflect the correct repository name (d45d2e9)

v2.3.5 (2025-10-03)

Bug Fixes

  • ci/cd: Update SARIF upload action to a newer version (5fd1e0a)

v2.3.4 (2025-10-03)

Bug Fixes

  • ci/cd: Remove unnecessary setup and conditions (c5df60b)

  • ci/cd: Update SARIF upload action and improve artifact handling (7706b3b)

v2.3.3 (2025-10-03)

Bug Fixes

  • ci/cd: Remove environment variables for package and wheel names in deployment steps (f95180d)

v2.3.2 (2025-10-03)

Bug Fixes

  • ci/cd: Use environment variables for package and wheel names in install and deploy steps (ab2a7b4)

v2.3.1 (2025-10-03)

Bug Fixes

  • ci/cd: Add read permission for actions in security scan job (07b5cd0)

v2.3.0 (2025-10-03)

Bug Fixes

  • ci/cd: Consolidate permissions for security events and contents in CI/CD workflow (96e5f4e)

  • ci/cd: Update permissions and enhance security scanning steps in CI/CD workflow (000ad71)

  • ci/cd: Update permissions to allow write access for contents and security events (3f88370)

Features

  • security: Add Trivy vulnerability scanning to CI/CD pipeline and Makefile (d36299d)

  • security: Integrate Bandit for security scanning and upload SARIF results (0d9a319)

Refactoring

  • lint: Remove specific ruff ignores from example script and update per-file ignores (5cffc8e)

v2.2.0 (2025-10-02)

Features

  • security: Add bandit for security scanning (67ac009)

v2.1.0 (2025-10-02)

Features

  • deps: Add pylint-pydantic for enhanced linting support (93daedb)

Refactoring

  • models: Remove pylint disable comments for user data access (60cee53)

  • pylint: Remove unused message control settings and adjust max attributes (1045f54)

v2.0.0 (2025-10-02)

Refactoring

  • client: Improve error handling in EventClient response processing (ee104ab)

  • client: Improve logging configuration (2e270c6)

  • client: Improve logging configuration (eacbf8c)

  • client: Simplify error handling and JSON parsing in EventClient (de72f0d)

  • config: Make EventClientConfig dataclass immutable (cd63846)

  • constants: Update HTTP status codes for error handling (dfd3f4a)

  • example: Enhance event handling and improve documentation in example.py (f3bc6d0)

  • init: Add EventHandler to module exports (56c7388)

  • logging: Standardize logger usage in EventClient and EventRouter (496a8b0)

  • models: Remove pylint disable comments for member access (9447fa2)

  • pre-commit: Replace pip-audit repo with local configuration (9693f8f)

  • router: Add stricter event type handling (1998d65)

  • tests: Add e2e marker to TestIntegration class (ed0a919)

  • tests: Remove obsolete test_config.py, enhance test_e2e.py, add test_exceptions.py, and streamline model tests (abf4538)

  • tests: Remove redundant server error handling test from TestEventClient (7428912)

  • tests: Remove redundant tests from TestEventClientConfig (d451a9a)

  • tests: Update per-file ignores and adjust coverage fail threshold (bbdf5aa)

  • tests: Update rate limit handling test (4e1cee3)

v1.13.0 (2025-09-29)

Features

  • router: Add logging for event dispatching (47754e9)

Refactoring

  • constants: Reorganize retry attributes (cd7eabb)

v1.12.0 (2025-09-29)

Features

  • models: Add is_private property to determine message type (ae04d36)

v1.11.1 (2025-09-28)

Bug Fixes

  • Update references from 'chaturbate-events' to 'cb-events' (bdcb541)

  • semantic-release: Add patterns for docs and initial commit to exclude commit patterns (859dd31)

Refactoring

  • all: Change project name from 'chaturbate-events' to 'cb-events' (877355a)

v1.11.0 (2025-09-27)

Bug Fixes

  • Dockerfile: Add '-u' flag to python entrypoint for unbuffered output (8984894)

Features

  • config: Add example environment file for Chaturbate API credentials (c607eda)

Refactoring

  • client: Remove redundant asterisk in EventClient constructor parameters (2376cdd)

v1.10.0 (2025-09-26)

Features

  • Add Cloudflare error handling and retry tests in EventClient (4025f06)

  • Introduce EventClientConfig for improved configuration management (d72090f)

  • Refactor EventClient initialization to use EventClientConfig for improved configuration management (6047035)

v1.9.0 (2025-09-24)

Bug Fixes

  • Update uv dependency to version 0.8.22 in Dockerfile (b7356c0)

Features

  • Add Dockerfile and .dockerignore for containerization (60b691b)

  • Add python-version configuration for pyrefly tool (6abab23)

Refactoring

  • Enhance test coverage for Event models and EventRouter functionality (24878f1)

  • Improve graceful shutdown handling in example script (df5d02f)

  • Move create_url_pattern function to test_client.py and remove unused import from conftest.py (32c7ab3)

  • Remove is_private property from Message model (0bf2fb0)

  • Update default retry attempts to 8 and adjust documentation accordingly (a878d1c)

v1.8.0 (2025-09-22)

Features

  • Enhance EventClient with configurable retry logic for network errors (bcd4b38)

Refactoring

  • Formatted to conform with updated line length settings (2240311)

  • Improve event handling messages and clarify credential validation (05af4c6)

  • Remove obsolete Python version and funding link from pyproject.toml (b84da0a)

v1.7.0 (2025-09-20)

Bug Fixes

  • Update CI/CD workflow and Makefile to use 'make test-e2e' for end-to-end tests (f5e3379)

Features

  • Refactor EventClient and introduce constants for improved configuration and error handling (0c6576d)

Refactoring

  • Remove test_config.py (0918753)

  • tests: Move e2e tests into main test module (d390688)

v1.6.1 (2025-09-20)

Bug Fixes

  • deps: Update dependency pydantic to v2.11.9 (#13, 87459bd)

Refactoring

  • ci-cd: Update end-to-end test command to filter by e2e marker (4f13743)

  • client: Include event types in debug output (01b9dbd)

  • client: Replace aiohttp references with specific imports and add rate limiter to polling (49fda32)

  • example: Remove unused init.py file from examples directory (9c58f84)

  • example: Simplify tip event handler and remove message handlers (314085e)

  • exceptions: Remove extra_info parameter from EventsError initialization (cacb857)

  • pyproject: Update Python classifiers and ruff linting rules, enhance pytest options (566d270)

  • tests: Add missing e2e marker to test functions in test_e2e.py (2e0e41e)

  • tests: Remove obsolete integration test for EventClient and EventRouter (74187df)

v1.6.0 (2025-09-16)

Bug Fixes

  • Reorganize imports for consistency across test files (f0fd75c)

  • docs: Update deployment environment name to match GitHub Pages convention (c3709c6)

Features

  • docs: Added sphinx auto-doc pipeline (da2ddf4)

Refactoring

  • client: Simplify error handling in nextUrl extraction (06887e4)

  • exceptions: Simplify exception class documentation and imports (76653d7)

  • tests: Improve test function names and remove unused tests (81ca969)

v1.5.0 (2025-09-13)

Features

  • pyproject: Update project metadata with additional keywords and URLs (daa2dbb)

v1.4.1 (2025-09-13)

Bug Fixes

  • pyproject: Add additional classifiers for improved package metadata (2cebae1)

v1.4.0 (2025-09-13)

Features

  • pyproject: Add classifiers and project URLs for better package metadata (fed8e20)

Refactoring

  • ci-cd: Update runner version from ubuntu-latest to ubuntu-24.04 (ae30cf3)

  • tests: Split and reorganize test cases (7776d0d)

v1.3.2 (2025-09-11)

Bug Fixes

  • renovate: Update minimum release age from 14 days to 7 days (7923a7d)

Refactoring

  • .gitignore: Refine IDE settings and ensure ruff cache is ignored (89faec8)

  • extensions: Add newline at end of file (ff6c9e6)

  • Makefile: Enhance organization and improve help output (4b32f94)

  • renovate: Add 'pyright' to dev tools package grouping (e71957a)

  • renovate: Update schedule and descriptions in package rules (eb40292)

  • verify_upstream: Ensure newline at end of file (b84df2b)

v1.3.1 (2025-09-09)

Bug Fixes

  • client: Correct syntax for aiohttp.ClientSession and logging error message (62b92d7)

  • example: Add type hints to event handler functions (0429c45)

Refactoring

  • dependencies: Add aioresponses to development dependencies (de28201)

  • lint: Expand per-file ignores for test files (16cca90)

  • pyproject: Clean up lint ignore rules and remove unnecessary mypy override (ba15efb)

  • tests: Add tests for additional scenarios (b11ff73)

  • tests: Correct URL pattern usage in client error handling test (c1ba9f2)

  • tests: Improve readability by formatting function parameters and return values (5e44f83)

  • tests: Remove noqa comments from assertions in test_router_registration (4e1f4b3)

v1.3.0 (2025-09-09)

Features

  • vscode: Add extensions.json for recommended VS Code extensions (80ae65c)

Refactoring

  • example: Simplify example file (124472b)

  • lint: Streamline per-file ignores for examples and tests, add Pyright overrides (3f45237)

  • tests: Enhance type hints and docstrings in test fixtures and functions (e8fe2f2)

v1.2.0 (2025-09-07)

Bug Fixes

  • example: Add credential validation in main function (a387849)

Features

  • client: Enhance error logging and handling for authentication and JSON response (4725aab)

Refactoring

  • client: Improve session initialization for EventClient (3859630)

  • exceptions: Enhance EventsError class with detailed attributes and representation (59001ac)

  • renovate: Update description to include digest updates for automerge (ec19380)

  • router: Simplify event handler type definitions (ec5f4ba)

v1.1.4 (2025-09-04)

Bug Fixes

  • lint: Add new ignore patterns for examples and tests (0efaa4f)

Refactoring

  • ci: Improve job naming conventions (124fd8d)

  • ci: Update uv cache references in workflow (14e1935)

  • docs: Update docstrings across modules (339299b)

  • example: Remove imports and use standard library tools instead (7e28d36)

v1.1.3 (2025-09-04)

Bug Fixes

  • ci: Ensure 'build' job is a dependency for 'deploy to PyPI' (0aa98c5)

v1.1.2 (2025-09-04)

Bug Fixes

  • ci: Enhance CI/CD workflow structure and naming conventions (177c65b)

v1.1.1 (2025-09-04)

Bug Fixes

  • ci: Update artifact download path for PyPI publishing (330c1ba)

v1.1.0 (2025-09-04)

Features

  • client: Enhance logging and token masking in EventClient (ba225ed)

Refactoring

  • ci: Update naming throughout CI/CD workflow (d56f5af)

v1.0.3 (2025-08-27)

Bug Fixes

  • renovate: Format schedule and managerFilePatterns for consistency (33568cd)

Refactoring

  • renovate: Update merge schedule (3126de1)

v1.0.2 (2025-08-27)

Bug Fixes

  • example: Add mypy override to ignore errors in example module (c74cc44)

v1.0.1 (2025-08-27)

Bug Fixes

  • example: Replace logging with print statements and add PEP 723 inline deps (ab90396)

Refactoring

  • pyproject: Remove unused examples dependency and update lint ignores (e8e8ae4)

  • router: Improve type annotations and enhance handler registration logic (37a61bf)

v1.0.0 (2025-08-26)

  • Initial Release