v0.9.5-7: CRITICAL fix for inactivity lockout ignoring time extensions
CRITICAL FIX: Inactivity lockout now respects time extensions - Lockout timer was completely ignoring pause button extensions - Lockout timer was ignoring manual site timeout extensions - Added inactivityExtensionUntil check to checkLockoutTimer() function - Time extensions now properly prevent BOTH site timeout AND lockout - When extension expires, lockout timer resets (doesn't trigger immediately) FIXED: Manual sites (duration: 0) now fully support time extensions - Pause button extensions now work on manual sites - Manual site timeout extensions now prevent lockout - Extensions apply to both rotation blocking AND lockout prevention ROOT CAUSE: The checkLockoutTimer() function (line 4061) only checked: - lockoutActivityTime vs lockoutTimeout - Did NOT check inactivityExtensionUntil This meant when a user clicked "15 minutes" on pause button: ✓ Site rotation/timeout was blocked (lines 4317, 4375 checked extension) ✗ Inactivity lockout still triggered after configured time EXAMPLE SCENARIO THAT WAS BROKEN: - Manual site with 2 min inactivity timeout to return home - Lockout after 5 minutes of inactivity - User idle for 1m 50s, clicks "15 minutes" extension - Expected: Can stay for 15 more minutes - Actual v0.9.5-6: * Home return prompt blocked ✓ * Lockout happens at 5 min idle ✗ - Fixed v0.9.5-7: * Home return prompt blocked ✓ * Lockout also blocked for 15 min ✓ FIX (lines 4083-4100): Now checkLockoutTimer() checks inactivityExtensionUntil FIRST: 1. If within extension period: return early (skip lockout check) 2. If extension just expired: reset lockoutActivityTime (prevent immediate trigger) 3. Then check normal lockout timeout This matches the pattern used in rotation (line 4317) and home return (line 4375). Includes all fixes from v0.9.5-6 (boot password sequence, limited power menu)
This commit is contained in: