What to build
Maintain a reviewed feature-by-feature matrix for every pinned PX4 module/driver and ArduPilot library/vehicle family, with executable evidence for claimed native or adapter support.
Acceptance criteria
- Keep all 274 current top-level inventory entries and six vehicle families assigned; explicitly preserve unclassified dimensions.
- Expand all entries into parameter, mode, protocol, hardware variant and failure cases. Current sample: 89 cases, 26 bounded support claims, 63 unsupported cases and 1,317 unclassified dimensions.
- Automate candidate upstream revision refresh and reject unassigned/new entries or dangling links. Accepted snapshots require review and are never overwritten by refresh.
- Complete provenance and firmware/simulator/HIL/vehicle evidence for all capabilities. Every current claim has pinned source/license metadata, an exact executable selector and explicit limitations; broader coverage remains open.
Implemented audit slice
d91a014 adds the retained behavior matrix and audit workflow.
- Offline
bun run parity:checkvalidates ownership, source hashes/revisions, licenses, evidence references, exact test selectors and explicit gaps. --run-evidenceexecutes 25 distinct selected behavior tests, requiring exactly one pass each. Zero selected tests fail. Output and deadlines are bounded; SIGKILL/process-group cleanup prevents resistant children or inherited pipes from hanging the audit.--verify-sourceschecks actual pinned GitHub bytes, blob/SHA256 hashes, line/symbol citations and license files.--verify-linksresolves the 28 issue URLs.parity:refreshresolves refs once, reads bounded immutable listings and exclusively creates a separate candidate snapshot. New/removed/changed trees require review.validAudit: truemeans integrity only.parityCompleteandreviewCompleteremain false.--require-completeintentionally fails.
Validation evidence
Fifteen parity tests include malformed coverage, false evidence, exact-selector failures, refresh drift, exclusive snapshot creation, streaming overflow, deadlines and descendant cleanup. Pinned sources, issue links, the 25 selectors and reproducible baseline were verified. The integrated suite passed 248 Bun tests with 21,254 assertions and zero failures, plus 13 Python bridge tests. Buddy lint, application/runtime/view typechecks, roadmap/audit gates, all 25 audit selectors and standalone navigation/antenna CLI checks passed. Linux CI passed for the pushed commit: full application suite, standalone CLI scenarios and both Pico 2 cross-builds.
Remaining work
Review all 1,317 unclassified dimensions plus deeper work retained inside sampled dimensions, implement the unsupported behavior, and retain actual firmware SITL/HIL/vehicle evidence. Current claims do not certify upstream feature parity.
Pinned gimbal and mount audit
Published c47a384 adds ten source-backed unsupported cases across the five sampled dimensions of PX4 src/modules/gimbal and ArduPilot libraries/AP_Mount. The audit now retains 69 cases, 38 pinned source records, 26 bounded support claims, 43 unsupported cases and 1,337 unclassified dimensions. All 274 entries, six vehicle families, existing claim evidence and 25 executable selectors remain unchanged. These sampled dimensions still retain deeper review work; no native support claim was added.
All 15 parity tests, 38 source verifications and 25 selected behavior tests passed locally. Completion remains false and --require-complete still exits 1. Exact-commit Linux CI passed all five jobs: 1,066 tests passed, 39 skipped, zero failed, 407,300 assertions, plus 13 Python tests and existing compiled CLI checks. The first local full suite remains a failed run: 1,080 passed, 24 skipped and one failed when a temporary provisioning process lacked accepted APP_KEY setup. That unchanged case passed separately afterward; the original environment writer and inherited state are not established, and the separate pass does not turn the full local run into a pass. Both original outstanding acceptance criteria remain open.
Pinned camera-feedback and capture audit
The camera audit in 2c7b495, introduced by its parent dbc0764, adds ten unsupported samples and four source records for PX4 camera_feedback and camera_capture. Current totals are 79 cases, 42 sources, 26 unchanged support claims, 25 unchanged selectors, 53 unsupported cases and 1,327 unclassified dimensions. The prior 69 cases and 38 sources are exact prefixes; all owners and existing evidence remain unchanged. These are sampled gaps, with explicit deeper work, not exhaustive review or new firmware support.
All 42 source records and 35 new anchors were verified; 15 parity tests and all 25 existing selectors passed. Completion remains false and --require-complete still exits 1. The feedback tag is not authenticated exposure, the streamer remains unreviewed, modes 1/2 remain marked not fully tested upstream, and the decaying rate fuse is timer-path-only. An accepted control ACK does not prove hardware enablement. Published to origin/main. Local Bun 1.4.2 full suite: 1,093 passed, 24 skipped, zero failed and 407,723 assertions across 161 files. Exact-commit Linux/Bun 1.4.3 CI passed all five jobs: 1,078 passed, 39 skipped, zero failed and 407,657 assertions, plus 13 Python tests and compiled command checks. Skips are not executed evidence. Both original outstanding acceptance criteria stay open.
Historical Linux/SITL UART review
The following review notes retain their original status. The published inventory update below supersedes these publication-pending statements.
Draft #71, at 35b9bd8a8b21f7ca59031f30b111b08a09207960, includes the UART audit commit 9c7c3dc95b8cf5b46bfd970b8ee5d9601dffff54. Ten new unsupported samples cover baud/buffer budgets, device/server and CSV modes, packetisation/device dispatch, parity/CTS/AUTO flow control, deferred open/short writes and hidden byte loss. Four pinned ArduPilot source records retain 35 exact line/symbol anchors. Cached upstream code stays outside the application; the repository retains citation metadata.
The branch retains the original 79 cases and 42 sources as exact prefixes, and all 26 claims and 25 selectors remain unchanged. Proposed totals are 89 cases, 46 sources, 63 unsupported cases and 1,317 unclassified dimensions. Both HAL owners retain deeper review in every sampled dimension. The companion TCP adapter is distinct from a HAL UART backend. No new executable firmware support or full parity is claimed.
All 15 audit tests, 46 immutable source verifications and 25 exact executable selectors passed; both independent review axes are clean. The final combined full suite and exact-head CI are pending. This audit update is pushed to the review branch, not main. Main still has the 79-case sample recorded above. Both outstanding acceptance criteria remain open.
Current-head qualification update: the workspace-browser job failed before DevTools discovery. Its original log and startup artifact were retained once; issue #72 records 400 ENOENT probes over 20 seconds, no exit observed before cleanup, and cleanup-initiated SIGTERM. The startup cause is unproven. The full check job and local full suite were still live when this was recorded. This source remains gated from main publication; earlier passing heads do not qualify it.
Published Linux/SITL UART inventory update
The ten sampled UART cases from #71 are now on main at b18e1d63d344452cf45719cf3b4072a752b71bce: five dimensions for each Linux/SITL owner, four new pinned source files and 35 anchors. Existing 79 cases, 42 sources, 26 support claims and 25 executable selectors were preserved. Current totals are 89 cases, 46 sources, 63 unsupported cases and 1,317 unclassified dimensions. The new cases are explicitly unsupported; this adds no UART/HAL implementation or upstream parity claim.
The final combined local suite and all five exact-head Linux CI jobs passed before normal main publication as Chris without coauthors. Pinned-source and exact-selector gates passed. Keep #28 open for the remaining behavior inventory and implementation evidence.