All notable changes to this project will be documented in this file.
- update CHANGELOG for v7.0.9 (9d27e2e)
- Update README.md broken install link (826fea3)
- log objdetect image write path (f2c5633)
- update CHANGELOG for v7.0.8 (5250d7d)
- inline pyzm.helpers.utils functions removed in pyzm v2 (4665014)
- stop using PY_SUDO for system package installs and broaden ensure_venv scope (bc928c8)
- only show pyzm extras message when pyzm was freshly installed (c2d9979)
- update CHANGELOG for v7.0.7 (12303a5)
- expand face recognition install with BLAS and reinstall steps (067f267)
- remove the test count and fix gramar (c89d7ab)
- update CHANGELOG for v7.0.6 (d647693)
- fix inline code quoting for mlapi and pyzm.serve in breaking.rst (55eaf84)
- fix sidebar/note formatting in principles.rst section 3.2.1 (e249c05)
- update CHANGELOG for v7.0.5 (6f375d9)
- added documentation notes and pyzm reliance (49dd557)
- comprehensive RTD documentation audit and fixes (ea81fe1)
- broken --venv-path argument parsing (a44915b)
- update CHANGELOG for v7.0.4 (5a4b6db)
- fix objectconfig gateway mode default, comment out auth keys (c8cea48)
- update CHANGELOG for v7.0.4 (bb0a012)
- add BirdNET audio section to objectconfig and hooks guide (c9c655e)
- add BirdNET audio detection to hooks documentation (55d4bf0)
- add zmES7+ logo to README and RTD docs (a416f7d)
- point zmNg sidebar and doc links to RTD (2fea09d)
- add --install-birdnet flag for BirdNET audio detection (abca135)
- default zm_detect.py config to /etc/zm/objectconfig.yml (00e4fca)
- use shared venv instead of --break-system-packages (dce5934)
- bump version to v7.0.4 (e07bb9c)
- bump version to 7.0.4 (8524214)
- bump pyzm dependency to >=2.1.0 (6c0a459)
- use pyzm v2 OOP methods in zm_detect (f9ce160)
- sync hook version with VERSION file (9880c5e)
- bump version to v7.0.3 (a749a4a)
- fix sed regex not matching indented FALLBACK_VERSION line (551a94f)
- update CHANGELOG for v7.0.2 (6abf272)
- update all references from YOLOv26 default to YOLOv11 ONNX default (b5a459d)
- add --pyzm-debug to EventStartCommand examples (693acc0)
- bump version to v7.0.2 (9310d87)
- consolidate YOLO ONNX into single entry with yolo11 default (1abdc62)
- migrate all scripts from ZMLog to setup_zm_logging (68d37c7)
- add GitHub Release step to make_release.sh, pin --repo to pliablepixels fork (adeca59)
- update CHANGELOG for v7.0.1 (e6f50f5)
- add version bump option when tag already exists (d6ecb51)
- add ignore_pattern zone support and first_new frame strategy (a2fcc11)
- migrate zm_detect and helpers to pyzm.log.setup_zm_logging (e38c801)
- bump version to v7.0.1 (0d54762)
- guard against undef values in active_connections iterations (5ca77e2)
- deep-merge monitor overrides into global config instead of replacing (3bcd64d)
- install.sh Path 1 flow — skip ES config prompt and show correct final message (1077c53)
- use requirements file for RTD python dependencies (8884ef4)
- fix Sphinx conf.py for RTD build compatibility (8cfd6b1)
- update test stubs for pyzm v2 imports (d93a840)
- use public API methods instead of private/raw calls in zm_detect (6e5cfec)
- use hash ref access for secrets in getZmUserId (9685f38)
- handle zm_detect JSON format in _tag_detected_objects (1b5b90a)
- strip surrounding quotes in ES/secrets INI-to-YAML migration (44d751f)
- substitute /etc/zm paths in config files when TARGET_CONFIG differs (f856d38)
- auto-substitute all hardcoded paths in hook scripts (7c0fd70)
- auto-substitute config path in zm_event_start.sh (809b35c)
- strip whitespace from stream/eventid to handle non-breaking spaces (52aac3d)
- fix INI-to-YAML migration losing keys, chained vars, and types (f2e3707)
- add bind mount fallback for Perl module installs too (e5364b9)
- fall back to in-place copy when install fails on bind mounts (819e3c6)
- split OpenCV checks for yolov26 vs yolov4 in doctor (4fd55ca)
- parse ml_sequence under correct YAML path in doctor checks (e692e9e)
- update minimum OpenCV version to 4.13+ for ONNX YOLOv26 models (549eeac)
- support legacy {{base_data_path}} syntax in path substitution (590a8e7)
- expand {{variable}} references during INI to YAML migration (ddf75eb)
- update secrets.ini to secrets.yml reference in objectconfig.yml (823a379)
- add defensive checks for undefined values across codebase (e26d5cc)
- resolve uninitialized value warnings in Rules.pm and Version.pm (b03347a)
- make VERSION file the single source of truth (d940e10)
- move version to Perl module to fix install path issue (bc56a86)
- resolve uninitialized variable warnings and add comprehensive tests (e284021)
- add id-token permission for Claude OIDC auth (013270a)
- use correct OAuth token secret for Claude action (57b9ba4)
- auto-install pyyaml for config migration (8bb25c9)
- always update stale secrets.ini path in config (7a1eb48)
- import ceil from POSIX module (736a5b4)
- remove Perl taint mode causing socket startup crash (0c0f4d9)
- fix event_end cause update bug, remove dead code and legacy templates (e4af17a)
- guard missing secrets, remove dead import, improve error handling (4d916a4)
- update zm_detect.py for YAML secrets, disable yolov3 defaults (5035eba)
- move imports before ES version check (ad24d3a)
- always prompt before ultralytics install in interactive mode (f76ad28)
- use --no-deps for ultralytics/torch to preserve source-built OpenCV (548becf)
- guard against undef last_event_processed in log message (036396f)
- set CreateDate when creating new tags (7d5e539)
- use // '' instead of defined() for End state guards (a698086)
- guard $alarm->{End}->{State} checks against undef (98e8984)
- apply upstream Python hook fixes (a8459e4)
- apply critical DB/fork crash fixes from upstream (aec9cdb)
- update CHANGELOG for v7.0.0 (0c590d6)
- added self notes for release process (a83feda)
- add feature comparison table to installation page (f6a1ca2)
- restructure principles for both paths; professionalize tone; update install.sh (29210df)
- remove pip seg fault claim from OpenCV install section (eb7c31b)
- link to Ubuntu 24 OpenCV build gist in install guide (337ee88)
- expand sidebar navigation to show subsection indicators (465663d)
- note pyzm[serve] extra for remote ML server capability (5fdd0c5)
- consolidate troubleshooting into hooks_faq.rst (2f9b769)
- cross-link hooks troubleshooting and FAQ triage sections (874da9e)
- update Python requirement to 3.10+ in README (8dbfe62)
- warn about pycoral Python 3.10+ compatibility issues (cef23d7)
- fix OpenCV minimum version to 4.13+ for ONNX YOLOv26 (f9a7af0)
- update Path 1 minimum ZM version to 1.38.1+ (9926056)
- add prominent pycoral install notice to installer and FAQ (b8a59a5)
- add "Triaging No Detection Problems" section to hooks FAQ (21b4bf5)
- add ES version check to Path 2 test step (626f182)
- rename test step to "Test manually", fix Path 2 version check (0331a12)
- add version check step to install test sections (ceb7339)
- replace duplicated install/test instructions with RTD links (141ca99)
- restructure installation into clean Path 1 / Path 2 sidebar (73d8e99)
- rename pyzm to pyzmv2+ in sidebar (7ad2811)
- add pyzm and zmNg to sidebar (ff79942)
- auto-update copyright year in Sphinx config (97dbd66)
- add pyzm and zmNg links to documentation section (78e2d50)
- add overview of Event Server and ML Ecosystem to index page (8263929)
- update title to Event Notification Server v7+ (523af0e)
- add inline context for Path 1/Path 2 references in install.rst (562855e)
- fix EventStartCommand location to Monitor Config -> Recording tab (3e25d55)
- restructure around two setup paths (577db84)
- fix Perl dependency list — add RSA, SSL, LWP, JSON (1fc0a5c)
- remove outdated performance comparison section (306b573)
- rewrite ES docs for pyzm v2 accuracy (09f6c98)
- point README to zmeventnotificationv7.readthedocs.io (b283338)
- update for pyzm v2 and URL-mode remote detection (9d4a6cd)
- clarified scope (104483d)
- cleanup (97e04d7)
- quick summary of improvements (e8187ae)
- install clarifications (b468592)
- update all documentation for YAML config migration (0cd32ca)
- add CLAUDE.md with project instructions and commit conventions (bd30158)
- use pyzm.serve for remote ML detection, remove legacy remote_detect() (1cac40b)
- rewrite zm_detect.py for pyzm v2 pipeline (ad2b82e)
- expand doctor checks to cover full install environment (ffcb8f1)
- add post-install doctor checks for common config issues (d63e39b)
- switch from YOLOv11 to YOLOv26 ONNX models (dd475f5)
- migrate objectconfig.ini to YAML format (90fbf3e)
- add INSTALL_YOLOV11 flag for ONNX model downloads (7711333)
- add ONNX YOLOv11 config entries to objectconfig.ini (cac48d2)
- Add Ultralytics YOLO model support to install.sh and objectconfig.ini (decdfca)
- tag detected objects in ZM database (b35274e)
- add dependency checks, Perl module install, and modernize helpers (0545691)
- clean up changelog config — add commit/issue links, filter old history (04aae9b)
- replace github_changelog_generator with git-cliff and consolidate release scripts (a20f6e5)
- add docs/_build/ to .gitignore (75c18f9)
- add .readthedocs.yaml for RTD builds (0653e46)
- remove exta quote (f8fcb6e)
- add libtest-warn-perl to install dependencies (a9536ac)
- add Claude GitHub Actions workflow (5174fe1)
- bump pyzm dependency to >=0.4.0 (38480df)
- don't push to ZM (04a4c81)
- add zm_detect_fake.sh test utility to contrib (051acec)
- more explicit instructions (c175cee)
- apply upstream misc fixes and additions (4e51f63)
- add fcm_service_account_file option and reset use_hooks default (89c3d7a)
- use ZMClient.event_path() instead of local path lookup (65366d9)
- move doctor checks from inline heredoc to tools/install_doctor.py (b25fffe)
- comprehensive code simplification across all modules (d34847b)
- read version from VERSION file in make_changelog.sh (4228bc8)
- centralize version into single VERSION file (8bb3eea)
- migrate ES config, secrets, and rules from INI/JSON to YAML (2932658)
- simplify objectconfig - inline ml_sequence, remove {{}} templating (f48bdf9)
- remove direct ultralytics support, use ONNX via OpenCV DNN (393cb24)
- replace printDebug/printInfo/printError with ZM native logging (03c5a6a)
- replace ~60 individual config vars with 10 grouped hashes (7562d24)
- extract constants, DB, and rules into ZmEventNotification/ package (6dd9e77)