v0.2.0
The firmware's primary data path, BLE, now runs in the simulator. Still early software; interfaces may evolve.
Added
- BLE Hardware Buddy simulation: a virtual BLE link bound at the firmware's own
ble.hboundary runs the realprotocol.cpp/app_buddy.cppcompiled from source. Heartbeat snapshots, permission prompts (Approve/Deny on-screen, decisions sent back over the link), HID keyboard reports, passkey pairing with the code rendered on the device, and the 3 s hold-to-pair gesture all work end to end. New target:waveshare_amoled_216_c6_buddy. blecommand in all three dialects (one-shot, run session, scenario):connect [--passkey N],pair,disconnect,send,recv,hid. One-shotble sendcompletes the whole round trip: connects bonded, delivers the JSON line, returns the device's replies, and--shotcaptures the resulting frame.button pwr-long/pwr-releaseinject the power button's hold-gesture edges; the SDL window's PWR control follows the hardware's hold semantics (short click vs 1.5 s long-press).- Waveshare AMOLED 2.16 (ESP32-S3) target: rotation-capable variant of the 480x480 panel, sharing the one compiled firmware. Seven targets.
- Prebuilt binaries: release tags now attach macOS (arm64) and Linux (x86_64) tarballs with the generic targets; Clawdmeter-backed targets need a source build against a firmware checkout (
CLAWDMETER_SRC). make dist,make build CLAWDMETER_SRC=...passthrough, and a manual workflow that tests against upstream Clawdmeter.
Fixed
- Firmware version skew no longer breaks configure in either direction: new firmware files warn by name, files missing from an older checkout drop out cleanly.
serveshuts down cleanly on Ctrl-C/SIGTERM.- A webserver test raced the kernel's accept queue under load.