From 84644eeda1a2406fe532cd5c0458d179164356ab Mon Sep 17 00:00:00 2001
From: fakebob2004 <283658828+fakebob2004@users.noreply.github.com>
Date: Thu, 30 Jul 2026 13:42:21 +0800
Subject: [PATCH 1/2] publish Windows click validation handoff
---
handoff/README.md | 36 +++++++++++++++++++++++++++
handoff/windows-runtime.json | 30 ++++++++++++++++++++++
windows/driver/MtpVhfTouchpad.inf | 2 +-
windows/driver/MtpVhfTouchpad.vcxproj | 2 +-
windows/shared/TouchpadIoctl.h | 2 +-
5 files changed, 69 insertions(+), 3 deletions(-)
create mode 100644 handoff/README.md
create mode 100644 handoff/windows-runtime.json
diff --git a/handoff/README.md b/handoff/README.md
new file mode 100644
index 0000000..6d3fc0f
--- /dev/null
+++ b/handoff/README.md
@@ -0,0 +1,36 @@
+# Agent integration handoff
+
+Runtime coordination between the Windows and macOS agents is exchanged through
+versioned files in this directory instead of manual copy/paste.
+
+## Windows to macOS
+
+The Windows agent owns `windows-runtime.json`. The macOS agent should pull the
+latest integration branch, read that file, and use its exact address, port,
+minimum commit, and startup marker. Values such as `WINDOWS_IP` in general
+documentation are placeholders and must never be passed literally.
+
+## macOS to Windows
+
+After a real-device run, the macOS agent should create or update
+`mac-validation.json` with this shape:
+
+```json
+{
+ "schema_version": 1,
+ "tested_windows_runtime_updated_at": "copy from windows-runtime.json",
+ "mac_source_commit": "full Git commit",
+ "connected": true,
+ "physical_button_enabled": true,
+ "button_events": 2,
+ "physical_drag": "passed",
+ "notes": []
+}
+```
+
+`button_events` must increase for physical press and release. Use
+`"physical_drag": "failed"` and place exact symptoms in `notes` if Windows
+does not drag despite nonzero button events.
+
+Do not put credentials, certificate private keys, tokens, or public-network
+addresses in handoff files.
diff --git a/handoff/windows-runtime.json b/handoff/windows-runtime.json
new file mode 100644
index 0000000..1b3694b
--- /dev/null
+++ b/handoff/windows-runtime.json
@@ -0,0 +1,30 @@
+{
+ "schema_version": 1,
+ "updated_at": "2026-07-30T13:45:00+08:00",
+ "source_commit": "5334a7363c9a6db5693b3e498e14e8da2a6173b8",
+ "windows": {
+ "ipv4": "192.168.31.115",
+ "tcp_port": 39871,
+ "receiver_executable": "out/windows/Release/mtp-receiver.exe",
+ "receiver_listening": true,
+ "driver_version": "0.1.0.8",
+ "ioctl_abi_version": 2,
+ "driver_installed": true
+ },
+ "mac": {
+ "minimum_source_commit": "5334a7363c9a6db5693b3e498e14e8da2a6173b8",
+ "connectivity_command": "nc -vz 192.168.31.115 39871",
+ "agent_command": "./build/mac-touch-agent 192.168.31.115 39871",
+ "required_startup_marker": "physical button=enabled"
+ },
+ "validation": {
+ "windows_receiver_tests": "passed",
+ "synthetic_button_frame": "passed",
+ "real_mac_physical_drag": "pending"
+ },
+ "notes": [
+ "Do not pass the literal placeholder WINDOWS_IP to mac-touch-agent.",
+ "Physical press validation requires button_events to increase on both press and release.",
+ "Write the Mac result to handoff/mac-validation.json and commit it for the Windows agent."
+ ]
+}
diff --git a/windows/driver/MtpVhfTouchpad.inf b/windows/driver/MtpVhfTouchpad.inf
index 2fca6f4..09a8c10 100644
--- a/windows/driver/MtpVhfTouchpad.inf
+++ b/windows/driver/MtpVhfTouchpad.inf
@@ -3,7 +3,7 @@ Signature="$WINDOWS NT$"
Class=HIDClass
ClassGuid={745A17A0-74D3-11D0-B6FE-00A0C90F57DA}
Provider=%ManufacturerName%
-DriverVer=07/23/2026,0.1.0.7
+DriverVer=07/30/2026,0.1.0.8
CatalogFile=MtpVhfTouchpad.cat
PnpLockdown=1
diff --git a/windows/driver/MtpVhfTouchpad.vcxproj b/windows/driver/MtpVhfTouchpad.vcxproj
index b223eec..400c96a 100644
--- a/windows/driver/MtpVhfTouchpad.vcxproj
+++ b/windows/driver/MtpVhfTouchpad.vcxproj
@@ -27,7 +27,7 @@
Level4true4005;4083;%(DisableSpecificWarnings)$(ProjectDir)..\shared;%(AdditionalIncludeDirectories)VhfKm.lib;%(AdditionalDependencies)
- 0.1.0.7
+ 0.1.0.8
diff --git a/windows/shared/TouchpadIoctl.h b/windows/shared/TouchpadIoctl.h
index ddc70fa..206bea5 100644
--- a/windows/shared/TouchpadIoctl.h
+++ b/windows/shared/TouchpadIoctl.h
@@ -13,7 +13,7 @@
#define MTP_INT32 int32_t
#endif
-#define MTP_IOCTL_ABI_VERSION 1u
+#define MTP_IOCTL_ABI_VERSION 2u
#define MTP_HID_MAX_CONTACTS 5u
#define MTP_COORDINATE_LOGICAL_MAX 32767u
From 9b25be700e982cf4302b0c7af5c42c2cf3ea01f1 Mon Sep 17 00:00:00 2001
From: fakebob2004 <283658828+fakebob2004@users.noreply.github.com>
Date: Thu, 30 Jul 2026 13:50:58 +0800
Subject: [PATCH 2/2] request Mac held-button trace
---
handoff/README.md | 16 +++++++++++++---
handoff/windows-runtime.json | 19 ++++++++++++++++---
2 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/handoff/README.md b/handoff/README.md
index 6d3fc0f..b9d7fbc 100644
--- a/handoff/README.md
+++ b/handoff/README.md
@@ -23,14 +23,24 @@ After a real-device run, the macOS agent should create or update
"connected": true,
"physical_button_enabled": true,
"button_events": 2,
- "physical_drag": "passed",
- "notes": []
+ "physical_drag": "failed",
+ "raw_button_callbacks": [
+ {"pressed": 1, "released": 0},
+ {"pressed": 0, "released": 1}
+ ],
+ "emitted_button_transitions": [
+ {"sequence": 100, "button": true, "contact_count": 1},
+ {"sequence": 350, "button": false, "contact_count": 1}
+ ],
+ "notes": ["Add exact symptoms here."]
}
```
`button_events` must increase for physical press and release. Use
`"physical_drag": "failed"` and place exact symptoms in `notes` if Windows
-does not drag despite nonzero button events.
+does not drag despite nonzero button events. For a two-second hold, the
+frame-level button value must remain true for every intervening contact frame;
+a short true/false pulse is only a click and cannot drag.
Do not put credentials, certificate private keys, tokens, or public-network
addresses in handoff files.
diff --git a/handoff/windows-runtime.json b/handoff/windows-runtime.json
index 1b3694b..2362a25 100644
--- a/handoff/windows-runtime.json
+++ b/handoff/windows-runtime.json
@@ -1,6 +1,6 @@
{
"schema_version": 1,
- "updated_at": "2026-07-30T13:45:00+08:00",
+ "updated_at": "2026-07-30T14:20:00+08:00",
"source_commit": "5334a7363c9a6db5693b3e498e14e8da2a6173b8",
"windows": {
"ipv4": "192.168.31.115",
@@ -20,11 +20,24 @@
"validation": {
"windows_receiver_tests": "passed",
"synthetic_button_frame": "passed",
- "real_mac_physical_drag": "pending"
+ "real_mac_click": "passed",
+ "real_mac_physical_drag": "failed",
+ "observed_symptom": "A physical press activates the target window, but holding the press while moving does not select text."
+ },
+ "requested_mac_diagnostics": {
+ "scenario": "Place one finger on the trackpad, press and hold for two seconds while moving, then release.",
+ "required_trace": [
+ "Every raw MTRegisterButtonStateCallback invocation with pressed and released integer arguments.",
+ "Every emitted button transition with sequence, frame flags, and contact_count.",
+ "Final button_events count."
+ ],
+ "acceptance_condition": "TP_FRAME_BUTTON remains set on every contact frame from physical down until physical release.",
+ "response_file": "handoff/mac-validation.json"
},
"notes": [
"Do not pass the literal placeholder WINDOWS_IP to mac-touch-agent.",
"Physical press validation requires button_events to increase on both press and release.",
- "Write the Mac result to handoff/mac-validation.json and commit it for the Windows agent."
+ "The current symptom is consistent with a short button pulse rather than a held level.",
+ "Write the Mac trace and result to handoff/mac-validation.json and commit it for the Windows agent."
]
}