7ff46af192b2276d11deeab0ad57488c4271f0c3
Important I1: tablet_session_manager.beginSession() now calls _removeListeners() (and clears any pending _tickHandle) defensively at start. Prevents DOM listener leak on dev hot-reload or any path that re-bootstraps without a clean endSession() first. Important I2: tablet_lock._checkIdle() early-returns in session_swap mode. The tablet_session_manager owns idle tracking there (5s poll, calls /fp/tablet/lock_session directly). Was previously dormant by accident because session_swap never populates the legacy techStore; explicit guard makes the decoupling intentional. Minor M5: session_swap unlock success now resets selectedTileUserId before window.location.reload(), matching the legacy path''s cleanup pattern. Cosmetic before reload kicks in. Minor M9: New test_tiles_bootstrap_fields with 3 HttpCase tests asserting /fp/tablet/tiles returns tablet_session_mode, kiosk_uid, and current_uid. The OWL lock screen branches on all three — a contract regression would silently break session_swap. Minor M10: Added inline comment near _sessionModeCache declaration in fp_rpc.js explaining the page-reload-invalidates-cache lifecycle. Deferred (for future polish, NOT in this commit): - I3 (_getSessionMode ACL gap for tech users — functionally correct, just suboptimal; cache fallback to ''legacy'' kicks in) - M6 (wrapper component Hand-Off buttons no-op in session_swap) - M7 (hardcoded idle/ceiling thresholds — server-configurable later) - M8 (timer divergence vs activity_tracker — unify later) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Odoo 19 custom modules
Languages
Python
56.6%
HTML
25.3%
JavaScript
14.8%
SCSS
2%
CSS
0.8%
Other
0.4%