[P1] Pause capture on lock screen and configurable idle state #18

Closed
opened 2026-07-18 00:00:36 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-07-18 00:00:36 +00:00 (Migrated from github.com)

Goal

Prevent useless or sensitive recording while the desktop is locked or unattended.

Requirements

  • Detect session lock/unlock through supported desktop or login-manager signals.
  • Detect idle/AFK state through ActivityWatch when available and a local fallback otherwise.
  • Pause before capture while locked.
  • Configurable idle threshold and resume behavior.
  • Flush or invalidate queued work when a lock event occurs.
  • Record sanitized state transitions only.

Acceptance criteria

  • No frames are captured or persisted while locked.
  • Lock events cancel in-flight work from the prior session generation.
  • Missing idle support does not disable the lock-screen protection.
  • Tests cover rapid lock/unlock races and daemon restart while locked.

Depends on

## Goal Prevent useless or sensitive recording while the desktop is locked or unattended. ## Requirements - Detect session lock/unlock through supported desktop or login-manager signals. - Detect idle/AFK state through ActivityWatch when available and a local fallback otherwise. - Pause before capture while locked. - Configurable idle threshold and resume behavior. - Flush or invalidate queued work when a lock event occurs. - Record sanitized state transitions only. ## Acceptance criteria - No frames are captured or persisted while locked. - Lock events cancel in-flight work from the prior session generation. - Missing idle support does not disable the lock-screen protection. - Tests cover rapid lock/unlock races and daemon restart while locked. ## Depends on - #7 - #16 - #17
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/local-recall#18
No description provided.