Record the P02 physical-HID output proof - #1299
Merged
Merged
Conversation
A disposable Parallels macOS 26.5.2 guest received real USB HID keystrokes from the ESP32 fixture and TextEdit observed the remapped output. Parallels assigns a physical USB device to the guest that owns the session, so the fixture enumerates there as a genuine keyboard with PrimaryUsage 6 — the input source every earlier attempt lacked, where Tart's VNC input left Kanata reporting devices=0. Five fires in one document form a controlled experiment: q alone with no rule, q with the rule, selectivity against unmapped keys, a second independent rule, and a round trip that restores passthrough when only the q rule is removed. Also rewrites the required-proof shape around a real HID source and replaces the resume path with what actually remains: a notarized artifact, and automating the three steps that still need someone at the console. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Five further tests ran on the same lease with the fixture attached: shift and passthrough, tap-hold on both sides of its timeout, throughput at 10 ms intervals, and the remap surviving a service teardown and repair. Records two traps. TextEdit autocorrect silently rewrote remapped output and made the first throughput run look like a failure. And a failed `service restart` from outside a GUI session left com.keypath.kanata absent from the launchd system domain, which no command-line path recovered; the app's own repair step restored it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e lifecycle Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…overy Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
P02 is proven. A disposable Parallels macOS 26.5.2 guest received real USB HID
keystrokes from the ESP32 fixture, and TextEdit observed the remapped output.
Every earlier attempt failed on the input source: Tart's VNC input never
appeared as a guest HID device, so Kanata reported
InputGrab active=true devices=0and the target app received the unmapped key. Parallels assigns aphysical USB device to the guest that owns the session, so the fixture
enumerates inside the guest as a genuine keyboard (
CAFE:4010, PrimaryUsage 6,Transport USB).
The controlled experiment
One TextEdit document accumulated every fire, ending at
Qwwazvwbzqbz:qq(autocapitalized toQ)q -> wqwq -> wqazwazq -> w,a -> bqazwbza -> bonlyqazqbzFire 1 against 2 isolates the rule. Fires 3 and 4 show selectivity and a second
independent rule. Fire 5 is the round trip: removing only the
qrule restoredqwhilea -> bkept working, ruling out a confound in the device, the app,or the runtime.
Evidence
Lease
cbx_f4fdf8bd64de, commit5fce69ba, installer SHA-25688fbb04f…, macOS 26.5.2 (25F84). Artifacts, including Kanata's log, thelive config, the guest USB tree, and a screenshot per fire:
/Volumes/KeyPath Lab/CrabBox/KeyPathInstallerLab/artifacts/cbx_f4fdf8bd64de/20260915T135147ZDeviations recorded in the doc
rejects it. A notarized build on this path is still unproven.
grants that raise an authenticated password prompt, and confirming the
Parallels USB attach dialogs.
keypathmdm, sokeypath-clithrough the lab's SSHchannel (which acts as
keypathqa) reads a different config than the oneKanata loaded. That mismatch is why fire 1 produced
q.Review gate
./Scripts/review-gate.shcould not run: it invokes/thermo-nuclear-swift-review, which is not installed on this machine. This isa documentation-only change. Treat GitHub
claude-reviewas the enforced gate.Supporting lab fixes landed separately in
malpern/vm-lab.🤖 Generated with Claude Code