Skip to content

feat(developer-mdm): run scans at background priority and report sleep-spanning runs - #194

Open
shubham-stepsecurity wants to merge 2 commits into
step-security:mainfrom
shubham-stepsecurity:sm/bg-priority-sleep-detection
Open

feat(developer-mdm): run scans at background priority and report sleep-spanning runs#194
shubham-stepsecurity wants to merge 2 commits into
step-security:mainfrom
shubham-stepsecurity:sm/bg-priority-sleep-detection

Conversation

@shubham-stepsecurity

@shubham-stepsecurity shubham-stepsecurity commented Aug 18, 2026

Copy link
Copy Markdown
Member

Product hardening for scans that span a laptop sleep/wake cycle: a mid-scan sleep defers all disk-heavy phases into one burst on wake (competing with the user right as they sit down), and monotonic phase durations understate the wall-clock span (minutes of measured work across an hours-long window).

  • Background priority: every enterprise scan drops itself (and, on macOS/Linux, all children) into the OS background CPU/IO band — macOS PRIO_DARWIN_BG (Time Machine tier), Linux nice 19 + best-effort ionice 7 (deliberately not the starvable idle class), Windows below-normal class + background IO/memory mode. All tiers are throttled-but-guaranteed-progress; existing phase budgets and the 60m scan deadline bound the worst case. Escape hatch: STEPSEC_DISABLE_BACKGROUND_PRIORITY=1. Community scan stays foreground.
  • Sleep detection (report-only): per-phase and per-run slept_ms (wall-vs-monotonic divergence, 60s floor for NTP jitter) flows through run-status heartbeats and the final payload; logs "system slept ~Xm during phase X" plus a run-summary note. Durations stay monotonic; the scan is never aborted.

Verified: full -race suite, make smoke 44/44, golangci-lint clean, cross-compiles darwin/linux/windows; live darwin check confirms the task policy applies (getpriority reports BG state).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant