aicctv
edge/engine.py keyed the ghost cooldown as (GHOST, round(x), round(y)) — purely spatial, ignoring track identity. Two distinct workers collapsing at ~the same pixel within the cooldown window would suppress each other's ghost event, potentially masking a second CRITICAL incident. edge/detectors/ghost.py GhostIncidentDetector.update now includes the candidate's track_id in each emitted dict. edge/engine.py keys the cooldown as (EventType.GHOST, track_id) and sets the emitted Event's track_id accordingly, matching how FALL/NO_MOTION/IMMOBILITY/zone events are already keyed per-track. Tests: tests/test_ghost.py asserts ghosts[0]["track_id"] == 1 on the existing reappear-timeout test. |
||
|---|---|---|
| docs | ||
| edge | ||
| tests | ||
| .gitignore | ||
| pyproject.toml | ||