Repository navigation
Exclude missing angle feedback from Python-policy success metrics - #24
Merged
Merged
Conversation
soulteary
marked this pull request as ready for review
November 8, 2026 16:37
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.
Problem
A physically sent angle command can retain
Dispatchedstatus after its verified response is missing. Under the explicit Python policy, C++ also recorded that operation as a successful logical transaction and cleared its consecutive-error count. The Python SDK retains physical dispatch while recording a response timeout and leaving successful latency unchanged.A post-merge release audit reproduced the discrepancy in the v0.3.9 source: dropping one command response increased C++'s successful transaction count by one; the reference Python count did not increase. Public release was held. The signed v0.3.9 tag remains unchanged and was not published as a Release.
Change
At optional angle-feedback expiry, mark the Python logical timing scope unsuccessful and record one response-timeout error. Retain the command's physical send result and terminal
Dispatchedstatus. A subsequent complete logical transaction clears consecutive errors. Native optional-feedback accounting is unchanged. L20 speed and current-limit writes retain their dispatch-only Python contract; missing native optional observations do not create logical errors.Released v0.3.10, including the health corrections from #23. Existing method signatures, Native defaults and the transport v0.3.4 minimum remain unchanged. Rebuild the SDK and consumers because the cumulative update from v0.3.8 includes appended public structure fields; binary compatibility with older headers is not claimed.
Validation
Four added regressions cover consecutive missing feedback and later success, missing feedback without polling, unchanged Native accounting, and L20 non-angle optional observations. The complete health regression selection passes 18 cases / 177 assertions.
59 reference Python runtime tests passed, including the missing-feedback delivery contract. Reference source:
3a63e723b9a0046e9a60a58339b9f064ef5b70fd; this is not a claimed deployment-build SHA.Documentation and validation-helper checks passed. All 10 local CTest groups and the installed-package consumer passed. The same installed-SDK reproduction now retains the successful count (
4 → 4); 6144 percentile-window updates still match the Python oracle and actual referenceRuntimeMetrics. Final-head checks passed:CI: GCC Debug/Release, Windows x64 Debug/Release and ASan/UBSan.
Released transport consumers: x86_64 and ARM64 with transport v0.3.4.
Complete static analysis: downloaded report independently checked; A+, score 100, zero diagnostics; 619/619 formatting files and 362/362 units for each analyzer.
Release acceptance: all twelve native targets and complete package collection.
No new hardware acceptance is claimed. Adapter/driver and firmware combinations, physical timestamps, mixed CAN/FD topology and extended multi-device operation require separate hardware validation. O20, Python bindings and hand/arm integration are excluded.
Released source verification
Merge and signed tag: 5aa263c. The merged tree matches the tested PR head.
All merged-source gates and all 15 manual release jobs passed. The merged full report was independently checked: A+, score 100, zero diagnostics; 619/619 formatting files and 362/362 units per analyzer. All 26 downloaded draft assets matched API SHA-256 digests and sizes; package source identities, object architectures and archive checksums were revalidated. Public stable/latest status, signed tag, release notes and all published asset bytes were checked after publication.
An initial merged-source Windows x64 Release run timed out in the existing Native L20 current-limit fixture. The selected job passed when rerun on the unchanged source, assertions and timeout settings. The first failure remains in the workflow history; its root cause was not established.