Repository navigation
v0.3.10
- Treat missing verified angle-command feedback as a logical timeout under the Python policy. Preserve the command's physical
Dispatchedoutcome, exclude it from successful transaction latency and retain its error count until a complete logical success. Native optional-feedback accounting is unchanged. - Project Python-policy polling counters independently of native transaction totals. Inactive plans report zero polling counters; active reads, verified angle command feedback and disabled optional queries retain their distinct accounting.
- Measure complete logical transactions from their first transport admission through successful completion, including transport waiting and multi-stage execution. Partial stage success does not add a completed logical transaction or clear a prior logical error. Keep the latest 2048 successful durations across close, reopen and recovery, with Python nearest-even percentile selection. Native latency accounting remains unchanged.
- Add Python-policy force-field health rows with requested, shared-query and achieved rates, query identity and observed support. Optional
PollingChannel::force_fieldsentries select named fields at millisecond intervals. Shared queries use the fastest requested interval; field rows must not be summed as physical traffic. L20Lite scalar categories remain independent. Native configurations reject the new selector.
Existing C++ method signatures and Native defaults remain available. Public structure additions require rebuilding the SDK and downstream consumers with matching headers and libraries; binary compatibility with earlier headers is not claimed. The minimum and paired transport remain v0.3.4 (0e190032d65ed0b315337b45b3779cf4f650ed68).
Validation covers offline lifecycle, polling, command feedback, multi-stage failure, field-query resolution, bounded latency windows, source/prebuilt/installed consumers, sanitizers, complete static analysis and the twelve-target release matrix. No new physical-device acceptance is claimed. Deployed adapters/drivers, firmware, physical timestamps, mixed CAN/FD topology and multi-device duration tests require separate hardware validation. O20, Python bindings and hand/arm integration are outside this patch. Tactile-stage angle scheduling, extended identity parity and optional automatic reconnect remain separate work.
v0.3.9 was tagged but not published. Post-merge verification found that missing command feedback could add a successful latency sample; this patch includes that correction. The v0.3.9 tag remains unchanged.
Source: 5aa263c. Paired transport: 0e190032d65ed0b315337b45b3779cf4f650ed68 (v0.3.4).
Offline evidence: 18 added health cases / 177 assertions, all 10 local CTest groups, 59 reference Python runtime tests, and 6144 rolling-window updates compared with an independent Python oracle and the reference RuntimeMetrics. These checks do not establish physical-device behavior.
Validation records:
- Merged-source CI
- Released-transport consumers
- Complete A+ analysis
- Native package acceptance and draft verification
The published set contains twelve native packages, twelve per-package checksum files, release-manifest.json and SHA256SUMS.txt (26 assets). Downloaded draft bytes were independently checked against API SHA-256 digests and sizes, source identities, archive checksums and object architectures before 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 initial failure remains in the workflow history; its root cause was not established.