Skip to content

vcli-input: InputSink + CGEvent backend + Cmd+Shift+Esc kill switch - #6

Merged
blaksmatic merged 20 commits into
masterfrom
implement/plan-2-vcli-input
Apr 17, 2026
Merged

blaksmatic merged 20 commits into
masterfrom
implement/plan-2-vcli-input

Conversation

@blaksmatic

Copy link
Copy Markdown
Owner

Summary

  • Introduces the vcli-input crate: synchronous OS-confirmed input dispatch behind the InputSink trait (mouse_move, click, double_click, drag, type_text, key_combo)
  • Implements the macOS backend using CGEvent APIs (CGEventInputSink), Unicode typing via CGEventKeyboardSetUnicodeString, and a CGEventTap-based global hotkey listener that engages the process-wide KillSwitch on Cmd+Shift+Esc
  • Ships MockInputSink with a recording call log, forced-error hook, and drain API for use in downstream scenario tests; a Windows stub with unimplemented!() bodies for cross-compilation; and macOS TCC permission probes (AXIsProcessTrustedWithOptions + IOHIDCheckAccess) with no-prompt reporting

Test plan

  • cargo fmt --all -- --check passes (no diff)
  • cargo clippy --workspace --all-targets -- -D warnings passes (0 warnings)
  • cargo test --workspace --locked passes: 84 vcli-core + 28 vcli-input unit + 3 kill-switch integration + 9 mock-contract integration = 124 tests; 6 TCC-requiring macOS real tests are #[ignore]
  • cargo doc -p vcli-input --no-deps builds with 0 warnings
  • Tagged lane-d-vcli-input-complete

🤖 Generated with Claude Code

blaksmatic and others added 20 commits April 17, 2026 07:40
…lding

Added highsierra feature to core-graphics workspace dep (required for
CGEvent::new_scroll_event). Changed crate root from #![forbid(unsafe_code)]
to #![deny(unsafe_code)] so macOS submodules can use #![allow(unsafe_code)]
— forbid cannot be overridden by inner allow. Added framework link
attributes for ApplicationServices and IOKit in tcc.rs.
…link fixes

All three gates pass: cargo fmt, cargo clippy --workspace --all-targets -D warnings,
cargo test --workspace --locked (84 vcli-core + 28 unit + 12 integration, 6 ignored).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…li-input

# Conflicts:
#	Cargo.lock
#	Cargo.toml
…li-input

# Conflicts:
#	Cargo.lock
#	Cargo.toml
@blaksmatic
blaksmatic merged commit 1957adb into master Apr 17, 2026
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