Skip to content

Extract Secure Input into dedicated watcher with triage, HUD, and degraded paste - #6

Merged
andyhtran merged 1 commit into
mainfrom
fix-secure-input
Jul 22, 2026
Merged

Extract Secure Input into dedicated watcher with triage, HUD, and degraded paste#6
andyhtran merged 1 commit into
mainfrom
fix-secure-input

Conversation

@andyhtran

Copy link
Copy Markdown
Owner

Summary

  • Extracts Secure Input detection from PasteHandler into a dedicated SecureInputWatcher subsystem that classifies holds by kind (expected, stuck loginwindow, terminal SKE, background holder, orphaned) with per-kind alert grace periods to eliminate false-positive noise
  • Adds user-facing surfaces: menu-bar icon badge (exclamation overlay), floating HUD toast (expand → pill → restored lifecycle), one-click remediation actions (lock screen, quit app), and richer notification banners — all driven from a single SecureInputPresentation
  • Adds IOHID paste-attempt sensor to detect ⌘V while the event tap is blind to Secure Input, enabling immediate blocked-paste feedback and an experimental degraded paste path (typing image path when clipboard has no text flavor)

Test plan

  • Build succeeds (swift build)
  • All 76 tests pass (swift test), including 22 new SecureInputTriageTests covering classification, alert policy grace/dedup/flap, and presentation generation
  • Manually tested Secure Input blocked/cleared transitions with real holders

🤖 Generated with Claude Code

…D, and degraded paste

Move Secure Input ownership out of PasteHandler into SecureInputWatcher — a
purpose-built subsystem that classifies holds (expected, stuck loginwindow,
terminal SKE, background holder, orphaned), enforces per-kind alert grace
periods, and drives every user-facing surface (menu-bar icon badge, floating
HUD toast, notification banner) from a single SecureInputPresentation.

Adds IOHID-based paste-attempt sensor to detect ⌘V while the event tap is
blind, enabling both an immediate blocked-paste toast and an experimental
degraded paste path (typing the image path despite Secure Input when the
clipboard has no text flavor the terminal would paste itself).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@andyhtran
andyhtran merged commit 17be4b2 into main Jul 22, 2026
1 check passed
@andyhtran
andyhtran deleted the fix-secure-input branch July 22, 2026 06:29
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