Adds module-level 5s debounce (_is_debounced) with thread-safe dict + GC. Inserts debounce guard in nfc_tap immediately after uid validation. Adds TestTapEndpointErrors (6 tests): unknown_card, clock_disabled, no_location_configured, kiosk_disabled, invalid_uid, debounce. Adds setUp() to both tap test classes to clear _recent_taps between tests, preventing cross-test debounce bleed. 29/29 pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.6 KiB
8.6 KiB