Commit Graph

11 Commits

Author SHA1 Message Date
cottongin
b31f39268e feat: per-window detection — only flash windows needing attention
Detector now walks each AXWindow subtree independently and returns
both aggregate signals (for state machine) and a list of AXWindow
element refs for windows with active approval signals.

Overlay reads position/size directly from AXWindow elements via
AXValueGetValue, eliminating the CGWindowList dependency (which
returned empty names for Electron windows anyway).

Daemon passes only the active AXWindow refs to the overlay, so
only the specific window(s) waiting for user input get flashed.

Made-with: Cursor
2026-03-10 02:54:15 -04:00
cottongin
bce6ec39f8 feat: add CLI with start/stop/status commands
Made-with: Cursor
2026-03-10 02:46:38 -04:00
cottongin
bcd8d4da1a feat: add main daemon loop wiring detection, overlay, and sound
Made-with: Cursor
2026-03-10 02:45:17 -04:00
cottongin
3cbe529b7a feat: add system sound alert module
Made-with: Cursor
2026-03-10 02:44:45 -04:00
cottongin
c1d10efe7b feat: support multiple Cursor windows in overlay
Renamed OverlayWindow to OverlayManager. Now discovers all on-screen
windows for the Cursor PID and creates/reuses/hides overlay windows
dynamically to match. Filters out tiny windows (<100px).
Verified: detects 3 windows across monitors.

Made-with: Cursor
2026-03-10 02:44:04 -04:00
cottongin
f967575ebc feat: add native macOS overlay window with pulsing border
Uses NSWindow + PulseBorderView with Core Animation-style pulse.
Fixed NSRect handling from plan: uses NSInsetRect instead of
non-existent .insetBy method on pyobjc tuples.

Made-with: Cursor
2026-03-10 02:39:30 -04:00
cottongin
f4cbfb997e feat: add accessibility-based agent state detector
Adapted from plan to match real a11y tree structure: Electron web
content exposes in-app buttons as AXStaticText values, not AXButton
titles. Detects via exact matches and regex patterns. Uses correct
Cursor bundle ID for process lookup.

Made-with: Cursor
2026-03-10 02:37:59 -04:00
cottongin
ec9f434cb3 feat: add state machine for agent activity detection
Made-with: Cursor
2026-03-10 02:28:16 -04:00
cottongin
38fdab9594 chore: add .gitignore and remove cached files from tracking
Made-with: Cursor
2026-03-10 02:26:40 -04:00
cottongin
db94c25b44 feat: add configuration module with YAML loading and defaults
Made-with: Cursor
2026-03-10 02:26:11 -04:00
cottongin
0c48edb5f7 feat: project scaffolding with pyproject.toml and package structure
Made-with: Cursor
2026-03-10 02:23:24 -04:00