Repository navigation
Add Python-policy publication and feedback behavior - #21
Merged
Merged
Conversation
soulteary
marked this pull request as ready for review
November 8, 2026 04:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extend the explicit Python runtime policy from v0.3.6 with publication-based channel sequences, identity sample metadata, filtered cache waits, optional-query degradation and unified angle feedback. Native behavior remains the default. O20 and hand/arm integration are outside this change.
The changes include:
DeviceIdentity::metaand the separately namedwait_for_cached_snapshot()API. Preserve the existing two-argument wait signature, including pointer-to-member use.Regression coverage exercises publication counts, independent identity metadata, filtered waits, shutdown, query degradation, recovery, scalar reads, tactile assembly and polling policies. Installed-consumer checks compile the added API and retain checks for existing signatures.
Local validation passed against transport v0.3.4: 8/8 CTest suites, 74 phase-two/phase-three tests (605 assertions), the installed consumer, 18 documented examples, 30 cross-language behavior observations, 31 same-input wire vectors and 80 pinned Python regressions. Current-head CI, sanitizers, source/prebuilt consumers, complete A+ static analysis and all twelve release-package targets passed. The polling-capability fixture uses an explicit two-second initialization budget for worker startup, retaining its 20 ms polling interval, two-second observation window and required-feedback assertions; it passed ten consecutive local runs. Production timeout defaults are unchanged. No physical device is accessed by these checks.
Prepare patch version 0.3.7. The minimum and paired transport remain v0.3.4 (
0e190032d65ed0b315337b45b3779cf4f650ed68). Rebuild the SDK and consumers with matching headers and libraries; binary compatibility with older headers is not claimed. The Python comparison source remains3a63e723b9a0046e9a60a58339b9f064ef5b70fd, not an assertion about the deployed build.No new hardware acceptance is claimed. Deployed backends, adapters/drivers, firmware, tactile layouts, physical timestamps, mixed CAN/FD channels and multi-device duration tests require separate hardware validation. Python bindings, automatic reconnect, extended identity raw/version detail parity and field-by-field O30 identity requests remain separate work.
Verified commit:
1fe64d186cdd7008a35870f24cfa98ef36100740.Post-merge release validation: the initial Ubuntu 26.04 x86_64 job reported an intermittent failure at
tests/hand/l20lite/test_runtime_comm.cpp:119in the unchanged Native L20Lite stop/restart test. The identical assertion reproduced against the unmodified v0.3.6 SDK and test in 2 of 500 concurrent focused runs on the local host (eight workers); 500 serial runs passed. The test file is byte-identical between v0.3.6 and this release. It observes a send notification before stopping, which does not establish complete dual-frame reception. Native cancellation and late-response guards remain unchanged. The isolated target retry passed on the second attempt with the same source, test, configuration and assertions. All eleven other package targets passed on their first attempt. Merged-commit CI, complete A+ analysis, package collection and the verified draft-release gate passed.Published v0.3.7 from merge commit
1a8063be54f80bf9b9d5421cf5b2cca690b0d5a0under a signed tag. Merged-commit CI, prebuilt consumers, complete A+ analysis and release acceptance passed. All 26 draft assets were downloaded and independently checked for the twelve package identities, source revisions, object architectures and checksums before publication. The release notes retain the initial Native test failure, baseline reproduction and unchanged isolated retry, along with the transport v0.3.4 dependency, rebuild requirement and hardware-validation limits.