v0.3.1
Two new probes
| Probe | Observes |
|---|---|
wifi_scan |
Wi-Fi access points in range — several cable implants carry a radio and run their own AP for out-of-band control. Active iw / nmcli scan at each phase boundary (never per-tick); flags APs strong enough (≥ −55 dBm) to plausibly be in the connector. Never associates. |
keystroke_cadence |
Key-press timing per input device — the key code of every event is discarded, so it only ever learns when keys were pressed, not which. Flags superhuman speed or machine-perfect regularity as injection. Disable with probes.capture_keystroke_timing: false. |
New rules: keystroke-injection-detected (critical), strong-wifi-ap-appeared-on-connect (high), plus lower-confidence variants. 20 probes, 38 rules total.
CLI: root check
cableprobe run now detects when it is not running as root, prints the exact sudo command, and — in interactive mode — asks whether to continue anyway (kernel-log, udev-attribute, USB-descriptor, keystroke-timing and raw-socket probes see much less or are skipped without privileges). --auto warns and proceeds. cableprobe check flags it too.
Quieter probe skipping
Probes whose kernel interface is absent (no Type-C class, no /sys/bus/pci, no Wi-Fi) are now dropped up front and shown as a single dim skipped: … line rather than a yellow Probe warnings block — an absent interface is expected, not a failure. New metadata.probes_unavailable field in the report.
Also
cableprobe --versionnow reflects the installed package version (was pinned at 0.1.0)- Test suite 57 → 124
Install / upgrade: pipx install "cableprobe==0.3.1" (or pip install --upgrade cableprobe)