Skip to content

Exclude missing angle feedback from Python-policy success metrics - #24

Merged
soulteary merged 2 commits into
mainfrom
fix/python-feedback-health-v0310
Nov 8, 2026
Merged

soulteary merged 2 commits into
mainfrom
fix/python-feedback-health-v0310

Conversation

@soulteary

@soulteary soulteary commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

Problem

A physically sent angle command can retain Dispatched status 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 Dispatched status. 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 reference RuntimeMetrics. 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.

@soulteary soulteary changed the title Exclude missing feedback from Python-policy success metrics Exclude missing angle feedback from Python-policy success metrics Nov 8, 2026
@soulteary
soulteary marked this pull request as ready for review November 8, 2026 16:37
@soulteary
soulteary merged commit 5aa263c into main Nov 8, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant