Repository navigation
- Under the explicit Python runtime policy, L20 speed, current-limit and fault-clear writes end at physical dispatch without retaining Native optional reply decoders or read-key reservations. Subsequent reads do not wait for an unused reply window.
- Python-policy response matching starts at physical send claim, using Session event order when available and timestamps as a compatibility fallback. Replies received before a queued read is claimed cannot complete that read. Idle L20 write replies are not published as telemetry. Classic L20 replies have no transaction identifier: a same-opcode late write reply received after a read is claimed remains indistinguishable from a read response, as in the Python reference.
- Keep Native optional feedback, existing public C++ APIs, frame contents and inter-frame delays unchanged. No additional sender or scheduling queue is introduced.
The minimum and paired transport remain v0.3.4 (0e190032d65ed0b315337b45b3779cf4f650ed68). Rebuild the SDK and downstream consumers to use the fix; no public structures or signatures are added in this patch.
Validation is offline and covers missing and late replies, repeated write/read sequences, close/reopen, explicit recovery, queued-read claim boundaries and device isolation on a shared Session. No new physical-device acceptance is claimed. Deployed firmware reply timing, adapters/drivers, physical timestamps and multi-device sustained operation require separate hardware validation. O20, Python bindings and hand/arm integration are outside this patch.
Source: eb060911edeb20113fa17e88e3e06715b67033be. The signed v0.3.11 tag identifies this commit. PR #25 contains the implementation and regression coverage.
Validation:
- Eight targeted offline cases / 123 assertions; all ten local CTest groups passed in the final complete run (88.17 seconds). The queued-read regression fails without the claim filter, returning an old write value instead of the new read reply.
- 38 related tests passed against Python reference source 3a63e723b9a0046e9a60a58339b9f064ef5b70fd. Separate Python-runtime and installed-C++ probes confirmed dispatch-only write/read completion with different response-window overrides. Eighteen documented installed-consumer examples compiled. The probe timings describe the offline setup. Hardware throughput and latency require separate validation.
- Merged-source CI: Linux and Windows Debug/Release, ASan/UBSan, public headers, documented examples and consumers.
- Merged-source prebuilt consumers: x86_64 and aarch64 with transport v0.3.4.
- Complete merged-source analysis: A+, score 100, zero diagnostics, complete formatting and analyzer coverage.
- Explicit tag-based package build: twelve targets. All 26 assets were downloaded and independently checked for API SHA-256 and size, package source/version/dependency identity, object architecture and archive checksums before publication.
Validation record: The first PR Windows x64 Release attempt timed out in the unchanged Native L20 subcase of "HandDevice cache and validation stay available during a blocked send". An unchanged selected-job rerun passed, as did the independent Windows x64 Release package validation. Source behavior, assertions and timeout budgets were retained; the underlying cause was not established. Earlier local runs also encountered intermittent failures in unchanged Native fixtures; their follow-up checks and the final complete run passed. These records do not establish hardware timing behavior.