v4.5.0 (2026-08-05)
This release is published under the MIT License.
Bug Fixes
-
Ignore a .venv symlink, not just a .venv directory (
55e9d92) -
ble: Key the capture source guard on the connection, not the address (
a691353) -
ble: Stop analyse_capture reading a second connection as this one (
137de6f) -
ble: Stop the decoder printing secrets and dropping replies (
e9a221b) -
coordinator: Only name a scene readback for a model that owns the name (
a4791aa) -
h6199: Send this model's own scene frame, and offer only the scenes it holds (
0946b4a) -
harness: Finish the teardown when the entry has not loaded yet (
ed1a973) -
harness: Rebuild a session's state from the device, not the shell (
b871433) -
harness: Scroll the container the screen actually has (
eed1810) -
kaitai: Count the H6199 effect blocks and drop the DIY editor plan (
27f4d0c) -
kaitai: Name the scene byte for what it is, with three readings still open (
0d8623a) -
kaitai: Reject an aggregate threshold that cannot fail (
4831122) -
kaitai: Retire three H6199 write docs that later captures overtook (
883c1f8) -
kaitai: Retract an over-claimed reading and the numbers propping it up (
7536b48) -
kaitai: The H6199 power read-back is inferred, not confirmed (
0439dc5) -
kaitai: The scene byte reports provenance, not whether the light holds it (
8adf25f) -
kaitai: Two H6199 aggregates could not fail, and one had gone stale (
57b209a) -
mock: Read a 33 a9 write on its selector instead of assuming white balance (
c3941a6)
Chores
-
deps: Lock file maintenance (
e7d5ed1) -
deps: Lock file maintenance (
aaa22a5) -
kaitai: Correct clock timezone fields (
7afbc91) -
mise: Own the zsign pin here rather than globally (
0817118)
Code Style
- tests: Format the teardown test that went in unformatted (
decc12b)
Documentation
-
A capture source is a connection, not an address (
de2af7b) -
ble: Capture with the DEVICE off IP, not just the phone (
9d6dd7d) -
harness: Record the recipes found, and retire three wrong claims (
d91029a) -
kaitai: The Workshop slot takes community effects too (
ff3c0da)
Features
-
ble: Document the Wi-Fi provisioning wire, and give it an encoder (
44ff5ce) -
h6199: Let the model paint segments, which its own app writes (
3429223) -
h6199: Make white balance, blank screen and the video percentages settable (
1cd7390) -
harness: Drive the app by name, and give the gesture loop a drag (
fd9feb3) -
harness: Own the phone natively on WSL, mount the DDI off USB/IP (
5878413) -
kaitai: Add H6199 capture baseline (
47793db) -
kaitai: Document H6199 status queries (
12058ea) -
kaitai: Four live fields come out of the music body's opaque tail (
d2a8ddd) -
kaitai: Model the aa 05 reply, which this model does answer after all (
1d3c095) -
kaitai: Model the H6199 effect upload as the container it is (
b1263e6) -
kaitai: Model the H6199 phone-microphone music stream from its own bytes (
3a50864) -
kaitai: Model the H6199 video sheet, and the registers behind it (
fecb9a3) -
kaitai: Open the H6199 DIY effect body, and let it name the kind byte (
1a94450) -
kaitai: Open two fields inside the H6199 scene block (
693672b) -
kaitai: Settle the H6199 command register on captured bytes (
b27a653) -
kaitai: Settle the H6199 music sensitivity against the vendor app (
4ee3b37) -
kaitai: Settle three APK disagreements against the device (
d26e1de) -
kaitai: The scene class tracks the vendor's built-in list (
aa135ef) -
kaitai: The scene classifier is a real field, and a third body shape exists (
9a6fa1b) -
kaitai: Workshop applies a user effect as a scene into a fixed slot (
24b1bc6) -
protocol: Encode the three H6199 registers the capture campaign proved (
d4f1538)
Refactoring
- kaitai: Model the type-1 config byte instead of pinning it to 0x83 (
faf1322)
Testing
-
Catch a real identifier however it was disguised (
f60aadf) -
kaitai: Fixture the Effects Lab scene applies, and give the id a third high byte (
2e05868)
Detailed Changes: v4.4.0...v4.5.0