5bfc63f86d
HandPersistenceGate (min_frames=3, radius=0.15) suppresses ghost hands that flash for fewer than min_frames consecutive frames. Gate is called once per frame in the renderer on persons_hands; result filters both the video overlay loop and the side panels. hand_plausible now rejects wrists outside [-0.1, 1.1] (out-of-frame ghost anchor check). panel_segments gains a conf_min param. Env knobs read at renderer init (single parse, no per-frame cost): HAND_CONF_MIN (default 0.45, raised from 0.3) HAND_PERSIST_FRAMES (default 3) ARKIT_BONE_MAX (default 0.5, passed to arkit_segments) New tests: 12 gate tests + 4 wrist-bounds tests.