From 2fe33c4d4d4f236b12f09b247df00de2f401a1b8 Mon Sep 17 00:00:00 2001 From: Micah Alpern Date: Thu, 11 Jun 2026 11:01:55 -0700 Subject: [PATCH] Bump kanata engine: report-set sync + stamped telemetry (MAL-57 Layer 3); fix engine cache hash Pulls malpern/kanata#28: a Release dropped while the VHID sink is unready no longer desyncs the C++ full-state report set (which could re-press a released key indefinitely on the next report), and every client connection event is now timestamped, including the previously silent heartbeat-deadline reconnect path. Also fixes Scripts/build-kanata.sh cache invalidation: the source hash only covered *.rs/*.toml/*.lock, so a C++-only change in the vendored driverkit crate served a stale cached engine. Include *.c/*.cpp/*.h/*.hpp. Co-Authored-By: Claude Fable 5 --- External/kanata | 2 +- Scripts/build-kanata.sh | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/External/kanata b/External/kanata index 6a05a4a3f..12b64a6fb 160000 --- a/External/kanata +++ b/External/kanata @@ -1 +1 @@ -Subproject commit 6a05a4a3fea117eb1d240d9c77492fb9ed02f7d1 +Subproject commit 12b64a6fb7354593558918e3b4d4f5289fea8754 diff --git a/Scripts/build-kanata.sh b/Scripts/build-kanata.sh index c7bb009cf..12dbe0d7c 100755 --- a/Scripts/build-kanata.sh +++ b/Scripts/build-kanata.sh @@ -51,9 +51,13 @@ echo "📁 Build directory: $BUILD_DIR" # TCC-Safe Caching Logic function calculate_source_hash() { - # Generate hash based on kanata source files (excluding build artifacts) + # Generate hash based on kanata source files (excluding build artifacts). + # Includes C/C++ sources: the fork vendors the karabiner-driverkit crate + # (driverkit/c_src), and a .cpp/.hpp-only change must invalidate the cache + # or a stale engine silently ships (bit MAL-57 Layer 3). cd "$KANATA_SOURCE" - find . \( -name "*.rs" -o -name "*.toml" -o -name "*.lock" \) \ + find . \( -name "*.rs" -o -name "*.toml" -o -name "*.lock" \ + -o -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) \ -not -path "./target/*" \ -exec shasum -a 256 {} + 2>/dev/null | shasum -a 256 | cut -d' ' -f1 }