aicctv
Find a file
유창욱 f46ed40088 fix(edge): populate Event.duration_s from detector metrics (FIX 3)
edge/engine.py _mk hardcoded duration_s=0.0 for every event. The §7.3
wire contract / P1-B dashboard expects the real incident duration for
no_motion, immobility, and ghost events.

_mk now derives duration_s from the metrics dict: immobility_s (fall
no_motion, immobility watchdog) or waited_s (ghost), falling back to 0.0
for instantaneous confirms (fall, zone).

Tests: tests/test_engine.py adds test_no_motion_event_carries_duration,
driving a track to NO_MOTION and asserting the emitted event's duration_s
is > 0 and equals metrics["immobility_s"].
2026-07-11 22:16:44 +09:00
docs feat(edge): hardware adapter stubs + Pi bring-up/benchmark doc 2026-07-11 21:54:24 +09:00
edge fix(edge): populate Event.duration_s from detector metrics (FIX 3) 2026-07-11 22:16:44 +09:00
tests fix(edge): populate Event.duration_s from detector metrics (FIX 3) 2026-07-11 22:16:44 +09:00
.gitignore docs: workplace safety AI CCTV design spec v2.0 + P1-A edge core plan 2026-07-11 20:08:01 +09:00
pyproject.toml feat(edge): data models (Keypoint, BBox, Person) + COCO indices 2026-07-11 20:13:00 +09:00