Commit Graph
66 Commits
Author SHA1 Message Date
Claude 90c22fa1b1 Add UBK v0.9.4 with optional features and password protection
Based on v0.9.2-6 (includes enhanced Electron update tool)

Version 0.9.4 introduces configurable optional features and security:

New Features:
- Optional pause button: Can be disabled during install/rerun
  * Disables functionality entirely, not just hides the UI
  * Configured in Core Settings menu (option 7)

- Optional keyboard button: Can be disabled during install/rerun
  * Disables on-screen keyboard functionality completely
  * Configured in Core Settings menu (option 7)

- Password protection with session lockout:
  * Customizable lockout timeout (in minutes of inactivity)
  * Blank screen during lockout with no interaction allowed
  * Password required to unlock after timeout
  * Password required after display schedule wake-up
  * SHA-256 password hashing for security
  * Option to only require password after display wake (0 minute timeout)

Configuration:
- New configure_optional_features() function for pause/keyboard buttons
- New configure_password_protection() function for security setup
- Added to Core Settings menu (options 7 & 8)
- All settings saved to config.json and loaded on startup

Implementation:
- Main.js: Password lockout window with blank screen
- Main.js: Lockout timer check in master timer loop
- Main.js: Display wake flag detection (.display-wake file)
- Main.js: Conditional pause button visibility based on config
- Preload.js: Conditional keyboard button based on config
- Display-on script: Creates flag file to trigger password requirement

All features are configurable on first install or by rerunning the script.
2025-11-20 17:28:13 +00:00
outis1one 8da75aad9e Merge pull request #25 from outis1one/claude/fix-electron-update-script-01QPE5RtAF7bnHevbFM8vZaW
Add comprehensive Electron update script with safety checks
2025-11-20 10:45:58 -05:00
Claude ecbfd19bb5 Add comprehensive Electron update script with safety checks
This script addresses issues with the manual Electron update process by:

- Detecting kiosk installation across multiple methods (user home, systemd service)
- Checking if Electron is actually running (not just installed)
- Getting current Electron version from both package.json and node_modules
- Fetching latest stable Electron version from npm registry with fallbacks
- Displaying clear version comparison (current vs latest)
- Warning users to check for breaking changes with links to documentation
- Creating automatic backups of package.json, package-lock.json, and version info
- Providing clear restore instructions if something goes wrong
- Requiring user confirmation at multiple steps before making changes
- Automatically attempting rollback if the update fails
- Fixing chrome-sandbox permissions after installation
- Managing kiosk service stop/start around the update

The script handles edge cases like:
- Missing or moved installations
- Network failures when fetching versions
- Failed npm installations with automatic recovery
- Permission issues with proper sudo user handling

Users can now safely update Electron with confidence that they can restore
if needed, and with clear visibility into what versions are being used.
2025-11-20 15:10:29 +00:00
outis1one f3274b2263 Merge pull request #23 from outis1one/claude/fix-home-popup-all-sites-01UucXN54dG7YwCgWjaUN6pM
Claude/fix home popup all sites 01 uuc xn54d g7 yw cg wja un6p m
2025-11-19 17:37:37 -05:00
Claude cd0bedf9d4 Fix pause button: resend visibility on page load
The pause button wasn't appearing because preload.js variables were being
reset when pages reloaded/navigated, but the visibility message was only
sent once in attachView().

Now sends pause-button-visibility on EVERY page load (did-finish-load event)
to ensure the button state persists across page reloads and navigation.
2025-11-19 22:30:35 +00:00
Claude efeae325cd Fix VERSION constant to 0.9.2 in main.js 2025-11-19 20:54:20 +00:00
Claude 0af83fd8bb Add diagnostic script for pause button troubleshooting 2025-11-19 20:49:12 +00:00
outis1one b4e5658a2b Merge pull request #22 from outis1one/claude/fix-home-popup-all-sites-01UucXN54dG7YwCgWjaUN6pM
Add pause button for timed rotation sites (v0.9.2)
2025-11-19 15:36:19 -05:00
Claude 1378d5d92b Add pause button for timed rotation sites (v0.9.2)
Major UX improvement: Replaced problematic home return popup on timed sites
with an on-demand pause button that appears on user interaction.

Changes:
- NEW: Pause button appears in bottom-left corner on user interaction
- Shows only on timed rotation sites (duration > 0)
- Auto-hides after 5 seconds of inactivity
- Reuses existing inactivity prompt logic for pause dialog
- Pause durations: 15 min, 30 min, 1 hour, 2 hours
- Home return popup now ONLY appears on manual sites (duration = 0)
- Timed sites use pause button instead (cleaner UX)

Implementation details:
- Added pause button state/functions to preload.js (outside DOMContentLoaded)
- Added pause-dialog.html with time selection UI
- Added showPauseDialog() function and IPC handler in main.js
- Modified attachView() to send pause-button-visibility based on site duration
- Modified HOME RETURN CHECK to skip timed sites (line 3622-3625)
- Button creation reuses keyboard icon pattern for consistency

This fixes the issue where the home return popup would appear but sites
could rotate under it on timed rotation sites. Now users get a clean,
on-demand pause control that doesn't interfere with normal browsing.
2025-11-19 20:33:14 +00:00
outis1one 8d904405ae Merge pull request #21 from outis1one/claude/fix-home-popup-all-sites-01UucXN54dG7YwCgWjaUN6pM
Fix home return popup for timed rotation sites (v0.9.1-1)
2025-11-19 10:29:00 -05:00
Claude abda91d477 Fix home return popup for timed rotation sites (v0.9.1-1)
The home return inactivity popup was only working on manual sites (duration=0)
and hidden sites, but not on timed rotation sites (duration>0). This was because
the site rotation logic had an early return statement that prevented the home
return check from ever executing.

Changes:
- Removed early return after rotateToNextSite() call (line 3605)
- Now both auto-rotation AND home return checking work together
- Home popup will appear on ALL site types after inactivity period
- Updated version to 0.9.1-1 with changelog

Technical details:
The master timer had two sections - section 6 for site rotation and section 7
for home return checking. When a timed site rotated, section 6 would return
early, preventing section 7 from executing. Removing the return allows both
features to work in harmony.
2025-11-19 15:25:45 +00:00
outis1one 0e7be83bc1 Merge pull request #20 from outis1one/claude/fix-pause-button-rotation-01EAoiabjaWEeEbZ1WxWfp7j
Claude/fix pause button rotation 01 e aoiabja w ee eb z1 wx wfp7j
2025-11-18 22:01:34 -05:00
Claude 169264f02e CRITICAL FIX: Move pause button variables outside DOMContentLoaded
Root cause: Pause button state variables and IPC listener were declared inside
DOMContentLoaded, causing them to reset every time a page loaded.

Symptoms:
- Main process sends shouldShow=true when switching to rotation site
- Preload receives it and sets pauseButtonShouldShow=true
- Page loads → DOMContentLoaded fires → variables reset to false
- User taps screen → sees shouldShow=false → no button appears

Fix:
- Moved pause button variables outside DOMContentLoaded (persist across page loads)
- Moved pause button functions outside DOMContentLoaded (called by IPC listener)
- Moved IPC listener outside DOMContentLoaded (registers once, not per page)
- Kept only user interaction handlers inside DOMContentLoaded

This ensures pause button state persists across page navigations within a tab.
2025-11-19 02:45:22 +00:00
Claude b13d5c2f6f Add diagnostic script and manual fix guide for pause button issues
- diagnose_pause_button.sh: Checks actual kiosk installation for correct fixes
- MANUAL_FIX_pause_button.txt: Step-by-step manual patching guide

Helps troubleshoot when pause button doesn't appear on rotation sites
2025-11-18 21:59:52 +00:00
Claude 792b6a89c2 Add standalone update script for 0.9.2 critical fixes
Creates update_0.9.2_fixes.sh to apply fixes to existing installations:
- Return-to-home logic (manual sites only)
- Pause button auto-hide (5 second timeout)
- Display schedule overnight/same-day logic

Features:
- Auto-detects kiosk installation location
- Creates timestamped backups before applying fixes
- Uses sed to surgically patch existing files
- Prompts to restart kiosk service after update
- Smaller and faster than full reinstall
2025-11-18 20:13:35 +00:00
Claude 561f7e0574 Fix return-to-home logic, pause button auto-hide, Electron update detection, and display schedule
**Return-to-Home Popup Logic (CORRECTED):**
- FIXED: Return-to-home inactivity prompt now appears ONLY on manual sites (duration=0)
- Rotation sites (duration>0) skip return-to-home logic and use auto-rotation instead
- Previous commit had this backwards - now corrected

**Pause Button Auto-Hide:**
- Pause button now auto-hides after 5 seconds of inactivity (like keyboard icon)
- Each user interaction resets the 5-second timer
- Debug logging shows when button auto-hides
- Prevents button from staying on screen permanently

**Manual Electron Update Detection:**
- Added main.js file check to Method 1 (default kiosk user)
- Added Method 6: Check /opt/kiosk-app and /usr/local/kiosk-app
- Added Method 7: Query systemd kiosk.service for working directory
- Improved parent directory detection with cleaner variable usage
- Enhanced error message with numbered search locations and kiosk user home path
- Better debug output to help diagnose installation issues

**Display Schedule Logic (CRITICAL FIX):**
- FIXED: Reversed display off/on time comparison logic
- Overnight case (22:00 off, 06:00 on): Now correctly checks off_mins > on_mins
- Same-day case (08:00 off, 17:00 on): Now correctly checks off_mins < on_mins
- Display will now properly stay OFF during scheduled times
- Fixes issue where "keep display on" watchdog was too aggressive

All changes improve UX and fix critical scheduling bugs
2025-11-18 20:07:11 +00:00
Claude ae6aede112 Add pause button debug logging and fix inactivity prompt on manual sites
- Add comprehensive console logging for pause button lifecycle:
  * Main process logs when sending visibility updates with duration info
  * Renderer logs visibility changes and user interaction events
  * Helps diagnose why pause button may not appear on rotation sites

- Fix return-to-home inactivity prompt appearing on manual sites:
  * Skip inactivity timeout logic when on manual sites (duration=0)
  * Manual sites should not trigger return-to-home prompts
  * Only rotation sites should show inactivity prompts

These changes help diagnose pause button issues and improve UX for manual sites
2025-11-18 19:54:30 +00:00
outis1one 6c99cfa5d5 Merge pull request #19 from outis1one/claude/fix-pause-button-rotation-01EAoiabjaWEeEbZ1WxWfp7j
Fix pause button behavior and Electron update path detection
2025-11-18 14:33:52 -05:00
Claude 644bfbed7a Fix pause button behavior and Electron update path detection
- Change pause button icon from emoji to proper pause symbol (two vertical bars)
- Update pause button title to 'Pause rotation' for clarity
- Improve pause button logic comments for better code documentation
- Add additional search paths for manual Electron update (HOME, parent dir)
- Enhance manual Electron update error message with more search locations

Fixes pause button display issues and improves kiosk-app detection
2025-11-18 19:31:43 +00:00
outis1one 213f5fdb5f Merge pull request #18 from outis1one/claude/rename-kiosk-installer-01WBJikKwa8hWk7CGrYu9EVS
Add install_kiosk_0.9.2.sh installer script
2025-11-18 13:25:03 -05:00
Claude 746742ae44 Add install_kiosk_0.9.2.sh installer script
Created new version 0.9.2 installer based on 0.9.1 with updated version references throughout the script.
2025-11-18 18:15:52 +00:00
outis1one 030633d480 Merge pull request #17 from outis1one/claude/rename-kiosk-installer-01Be4mqFc9qyLQrmQZhAbLjc
Claude/rename kiosk installer 01 be4mq fc9qy l qrm q zh ab ljc
2025-11-18 12:30:38 -05:00
Claude 1521b7e54f Version 0.9.1-2: Critical fixes for pause button and Electron update
Major Fixes:
1. FIXED: Pause button visibility logic completely rewritten
   - Pause button now properly hidden on duration=0 sites
   - Shows ONLY on user interaction (mousedown/touchstart/keydown)
   - Main process sends pause-button-visibility on tab switch
   - Preload receives visibility state and enforces it
   - Button hidden immediately when switching to manual sites

2. FIXED: Pause dialog window conflict resolved
   - Created separate pauseWindow variable (was reusing promptWindow)
   - Pause dialog no longer disappears immediately
   - Prevents conflicts with inactivity prompt window
   - Each dialog has its own window lifecycle

3. FIXED: Mixed header characters now uniform
   - All =--- and =-- patterns replaced with ---
   - Consistent use of dashes throughout script
   - Better terminal display compatibility

4. FIXED: Manual Electron update detection improved
   - Three-method detection strategy:
     * Method 1: Check /home/kiosk/kiosk-app
     * Method 2: Search all /home/*/kiosk-app with main.js verification
     * Method 3: Check current directory for kiosk-app
   - Added debug output showing search paths and current context
   - More robust detection across different installation scenarios

Implementation Details:
- pauseButtonShouldShow tracks if button is allowed on current site
- pauseButtonShown tracks if button is currently displayed
- User interaction only shows button if pauseButtonShouldShow is true
- attachView() sends visibility message on every tab switch
- Throttled user interaction handling (100ms) prevents spam
2025-11-18 17:22:28 +00:00
Claude f65e99c8fb Version 0.9.1-2: Fix npm installation and pause button behavior
Critical Fixes:
- FIXED: npm installation verification added
  * Now explicitly checks if npm is installed after nodejs
  * Falls back to installing npm separately if missing
  * Displays npm version after installation
  * Prevents "npm: command not found" error during Electron install

- FIXED: Pause button now appears only on user interaction
  * Hidden by default (display:none)
  * Shows on mousedown/touchstart/keydown events
  * Similar behavior to keyboard icon
  * Throttled to check every 5 seconds
  * Better UX - less visual clutter

- FIXED: Pause button hidden on manual sites (duration=0)
  * Main process checks site duration when visibility requested
  * Sends pause-button-visibility message to views
  * attachView() function controls visibility on tab switch
  * Prevents confusion on sites where return-to-home popup appears

Implementation:
- Added 'request-pause-button-visibility' IPC message
- Main process responds with 'pause-button-visibility' based on duration
- Pause button automatically hidden/shown when switching tabs
- User interaction triggers visibility check
2025-11-18 16:29:35 +00:00
outis1one 98ea864ec5 Merge pull request #16 from outis1one/claude/rename-kiosk-installer-01Be4mqFc9qyLQrmQZhAbLjc
Version 0.9.1-2: Critical fixes and improvements
2025-11-18 11:06:45 -05:00
Claude 7e1809faa6 Version 0.9.1-2: Critical fixes and improvements
Key Changes:
- FIXED: All box drawing characters replaced with consistent standard chars
  * Changed === to --- for better terminal compatibility
  * Removed all special Unicode box drawing symbols

- FIXED: Pause button time options now match return-to-home dialog
  * Changed from 5/15/30/60 to 15/30/60/120 minutes
  * Consistent user experience across both dialogs
  * Icons match the inactivity prompt style

- FIXED: Site rotation now respects user interaction
  * Rotation pauses for 1 minute after last user activity
  * Prevents sites from rotating while user is actively using them
  * Similar to keyboard auto-close behavior (30 sec inactivity)
  * Provides better UX - no interruptions during use

- FIXED: Manual Electron update directory detection
  * Now dynamically searches for kiosk installation
  * Checks /home/kiosk/kiosk-app first
  * Falls back to searching all /home/*/kiosk-app directories
  * Displays detected user and directory path
  * Fixes "directory not found" error

Implementation Details:
- Pause button works on all pages including home URL
- Rotation logic: respects both pause extension AND user activity
- Electron update creates backup before updating
- Verifies update completion and offers rollback if needed
2025-11-18 16:00:06 +00:00
outis1one 206916a31b Delete install_kiosk_v09.9.1_4.sh 2025-11-18 10:11:23 -05:00
outis1one 4eb796f8d5 Merge pull request #15 from outis1one/claude/rename-kiosk-installer-01Be4mqFc9qyLQrmQZhAbLjc
Release v0.9.0 and v0.9.1: Major improvements and fixes
2025-11-18 10:10:37 -05:00
Claude 97143a7104 Release v0.9.0 and v0.9.1: Major improvements and fixes
Version 0.9.0:
- Renamed from v09.9.1_4 to use cleaner version numbering (0.9.0)
- Updated all internal version references

Version 0.9.1 - New Features and Fixes:
- NEW: Pause button feature (bottom-left, orange button)
  * Allows users to pause rotation and inactivity timers
  * Time extension options: 5, 15, 30, or 60 minutes
  * After extension expires, normal rotation/home logic resumes
  * Provides better user control without complex automation

- FIXED: Site rotation timing now more consistent
  * Rotation now happens on schedule regardless of user interaction
  * User activity only blocks return-to-home, not site rotation
  * Sites will display for their configured duration more reliably
  * Added logging to show rotation timing

- FIXED: Manual Electron update feature completely rewritten
  * Added comprehensive error checking at each step
  * Creates backup before updating
  * Verifies update after completion
  * Provides rollback instructions if update fails
  * Shows current and new versions
  * Logs update process to /tmp/electron-update.log

- IMPROVED: Removed all box drawing characters (╔╗╝╚) from output
  * Replaced with standard characters for better compatibility

- IMPROVED: Code cleanup and better comments throughout
2025-11-18 15:07:05 +00:00
outis1one 2a9f05144d Delete install_kiosk_v09.9.1_2.sh 2025-11-18 10:02:18 -05:00
outis1one dd4c676f3c Delete install_kiosk_v0.9.16.sh 2025-11-18 10:01:42 -05:00
outis1one 9634a2490d Delete install_kiosk_v0.9.15.sh 2025-11-18 10:01:24 -05:00
outis1one 64441b93c9 Delete install_kiosk_v09.9.1_7.sh 2025-11-18 10:01:06 -05:00
outis1one 53f49497ca Merge pull request #14 from outis1one/claude/revert-kiosk-install-script-014LmVZrx1gFdxbKkJsSHTbX
Release v0.9.0: Enable return to home popup on timed websites
2025-11-18 00:56:40 -05:00
Claude 0a81500432 Release v0.9.0: Enable return to home popup on timed websites
Modified the inactivity check to show the return to home popup on both
timed and manual websites by removing the manualNavigationMode condition.
Previously, the popup only appeared on manual (0-duration) websites.
2025-11-18 05:54:40 +00:00
outis1one 8833831b76 Add files via upload 2025-11-18 00:48:21 -05:00
outis1one 6894aebe80 Merge pull request #13 from outis1one/claude/fix-rotation-timing-015jRVPR6VgsbKMfYuhaUgsG
Release v0.9.16: Fix rotation timing and interaction logic
2025-11-17 21:42:35 -05:00
Claude b24348e77c Release v0.9.16: Fix rotation timing and interaction logic
CRITICAL FIXES:
- Removed userRecentlyActive early return that blocked ALL rotation
- v0.9.15 had bug where any interaction blocked rotation for 60 seconds
- Sites now rotate on schedule unless user specifically interacted with that site

BEHAVIOR NOW CORRECT:
- Sites with time rotate on schedule automatically
- User interaction pauses rotation ONLY on that specific site
- After 1 minute of inactivity, "Return to Rotation" popup appears
- Popup only appears on sites where user actually interacted
- No popup on home screen unless user interacted with home screen
- Media playback check every 3 seconds (good performance)

This fixes the issues where:
- No rotation was happening even with sites having time set
- Popup was appearing without user interaction
- Popup was appearing on home screen when there was no rotation
2025-11-18 02:35:19 +00:00
outis1one 20dfb0797e Merge pull request #12 from outis1one/claude/add-rotation-popup-01VFWmdhzT1JRHrRe9vH6fEP
Claude/add rotation popup 01 vf wmdhz t1 jr hr re9v h6f ep
2025-11-17 19:21:31 -05:00
Claude 5ba854dd5a Fix v0.9.15: Properly implement interaction-based rotation pause
This commit fixes the initial v0.9.15 implementation to match the
actual vision:

CORRECTED BEHAVIOR:
- User interaction PAUSES rotation on that site
- After 1 minute of inactivity → popup appears
- Popup gives options: extend time or return to rotation
- No response (15 sec) → auto-return to rotation
- Works on ALL sites including home URL
- Media playback blocks popup and rotation

KEY FIXES:
1. Removed wrong "popup on first interaction" logic
2. Restored userInteractedWithCurrentSite flag (removed in v0.9.14)
3. markActivity() now sets interaction flag instead of showing popup
4. Rotation blocked when userInteractedWithCurrentSite=true
5. Inactivity check works on ANY site where user interacted
   (not just home or manualNavigationMode)
6. Changed default timeout from 2 minutes to 1 minute
7. Prompt response clears interaction flag on "return to rotation"
8. Extension expiry clears interaction flag to resume rotation
9. Updated all bash script defaults from 120s to 60s

TECHNICAL CHANGES:
- Line 3639: Changed popupShownForCurrentSite → userInteractedWithCurrentSite
- Line 3706-3711: Set flag in markActivity() instead of showing popup
- Line 3937: Block rotation if userInteractedWithCurrentSite
- Line 3947-3989: Simplified inactivity check - works on ANY interacted site
- Line 3651: Default timeout 60000ms (was 120000ms)
- Line 3671: Config default 60s (was 120s)
- Line 3970: Clear flag when extension expires
- Line 4078: Reset flag when site changes
- Line 4179, 4197: Clear flag on return to rotation
- Bash section: Updated all 120s→60s, 2min→1min defaults

This matches the original vision: rotation pauses on interaction,
popup after inactivity gives control, auto-return prevents stuck kiosk.
2025-11-17 23:50:55 +00:00
Claude 10652e9d09 Release v0.9.15: Add interaction-based return to rotation popup
Major changes:
- Return to rotation popup now appears on ANY user interaction
  with a site (click, touch, scroll, keyboard)
- Exception: popup does NOT appear when media is playing
- Popup gives immediate option to extend time on current URL
  (15/30/60/120 minute selections)
- Popup pauses rotation while displayed
- Appears once per site load to avoid spam
- Updated popup message from "Are you still here?" to
  "Pause Rotation - Would you like to stay on this page?"

Technical implementation:
- Added popupShownForCurrentSite flag to track popup state
- Modified markActivity() to check media playback and show popup
  on first interaction (with 5-second debounce)
- Reset popup flag in attachView() when site changes
- Kept existing inactivity-based prompt as backup mechanism
- Updated prompt HTML with more appropriate messaging

Version bumped: 0.9.14 → 0.9.15
2025-11-17 22:18:48 +00:00
outis1one b372800014 Merge pull request #11 from outis1one/claude/fix-rotation-media-bugs-0151tVAzhUQva2opc463PfkS
Release v0.9.14: Restore simpler working logic from v09.9.1_7
2025-11-17 17:12:29 -05:00
Claude 1d4e31406c Release v0.9.14: Restore simpler working logic from v09.9.1_7
MAJOR REFACTOR: Reverted to the simpler, working logic from v09.9.1_7
that had fewer problems.

Changes:
1. Removed userInteractedWithCurrentSite flag completely
   - This flag was causing inactivity prompts to appear on every site
   - Much simpler logic without it

2. Removed rotation-blocking logic from markActivity()
   - No longer sets manualNavigationMode=true on user touch
   - Sites rotate freely based on time, NO blocking

3. Inactivity prompts only appear in two scenarios:
   - On the home page (after configured timeout)
   - When user manually swiped to a different site

4. Manual swipe behavior restored:
   - nextTab/prevTab now set manualNavigationMode=true
   - Inactivity prompt shows after timeout on manually navigated sites
   - "Return to Rotation" resets manualNavigationMode=false

5. Rotation logic simplified:
   - No checks for manualNavigationMode - just rotates based on time
   - No checks for prompts or session state
   - Much cleaner, less edge cases

Expected behavior:
- Home page loads, sites auto-rotate for their configured duration
- Inactivity prompt only on home page or manually navigated sites
- Media plays and stops normally, rotation continues
- No black screens, no premature popups

This brings back the simpler architecture that worked better.
2025-11-17 21:59:09 +00:00
outis1one 564c8a1b56 Merge pull request #10 from outis1one/claude/fix-rotation-media-bugs-0151tVAzhUQva2opc463PfkS
Release v0.9.13: Fix interaction tracking and media recovery
2025-11-17 16:35:31 -05:00
Claude a5ea09c331 Release v0.9.13: Fix interaction tracking and media recovery
Fixes two critical bugs reported by user:

1. Fixed inactivity popup appearing on home page without interaction
   - markActivity() now only sets userInteractedWithCurrentSite when
     resetLockoutTimer=true (actual user touches)
   - System events (prompt responses, app initialization) no longer
     trigger the interaction flag
   - Home page won't show popup until user physically touches screen
   - Resolves: "return to rotation popup appears before page rotates"

2. Fixed media playback black screen after couple minutes
   - Improved rotation resume logic after media grace period
   - Removed narrow 2-second time window (30-32s) that could be missed
   - manualNavigationMode now reliably resets after media ends AND
     user has been inactive for 60 seconds
   - Rotation properly resumes when user walks away after media stops
   - Resolves: "media playback stops with black screen, no rotation"

Expected behavior:
- Home page loads, no popup until user touches screen
- Sites rotate for full configured duration (10 seconds)
- Media plays, stops, 30s grace + 60s inactivity, then rotation resumes
- Time extensions (15 min) continue to work correctly
2025-11-17 21:18:42 +00:00
outis1one 97cb71fdc9 Merge pull request #9 from outis1one/claude/fix-rotation-media-bugs-0151tVAzhUQva2opc463PfkS
Release v0.9.12: Fix rotation and media playback bugs
2025-11-17 15:23:11 -05:00
Claude a8d15bfc89 Release v0.9.12: Fix rotation and media playback bugs
Fixes three critical bugs:

1. Fixed inactivity popup appearing on every rotated site
   - userInteractedWithCurrentSite now resets when switching sites
   - Each site independently tracks user interaction
   - Popup only appears on sites user actually touched

2. Fixed rotation not resuming after "I'm still here" response
   - Clicking "I'm still here" now sets manualNavigationMode=false
   - Rotation resumes after user acknowledges prompt

3. Fixed rotation stuck after media playback ends
   - After media grace period (30s), manualNavigationMode resets
   - Prevents black screen when media stops
   - Normal rotation automatically resumes

User-reported issue: Sites showing for full duration, no popup spam,
media playback properly returns to rotation.
2025-11-17 18:46:35 +00:00
outis1one e4af8e6c6b Merge pull request #8 from outis1one/claude/rotation-inactivity-system-01Ji6r6aDce9EcE6RBycHiLu
Release v0.9.11: Media playback behavior clarifications
2025-11-17 12:40:27 -05:00
Claude 815bfd6830 Release v0.9.11: Media playback behavior clarifications
This release clarifies the media playback behavior and fixes an incorrect
"smart grace period" implementation that violated the core principle.

Core Principle:
- Media playback TRUMPS everything (rotation and inactivity prompts)
- Media plays uninterrupted until: ends naturally, user pauses, session
  lockout, or display schedule
- After media stops: 30-second grace period ALWAYS applies (no exceptions)
- After grace period: Normal inactivity and rotation rules resume

Changes:
- Restored simple grace period logic (always 30 seconds after media stops)
- Removed incorrect "smart" grace period that could skip the delay
- Added clarifying comments about media blocking behavior
- Documented that inactivity timeout is user-configurable (default 2 minutes)

The grace period ensures smooth transitions when media ends naturally,
preventing jarring interruptions with popups or rotation changes.
2025-11-17 17:02:00 +00:00
outis1one 0b9c2dfba2 Merge pull request #7 from outis1one/claude/fix-rotation-logic-01SHNgkQk6MpgGAcAsj1Stuj
Claude/fix rotation logic 01 sh ngk qk6 mpg g ac asj1 stuj
2025-11-17 11:41:11 -05:00