You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[cpp-RCP-FS-06] Canonical ControlFlags type and Message frame struct are absent #89
Finding: The RELAY spec's canonical binding for this protocol defines a shared ControlFlags byte type (with named bit constants like an ack flag and a more-segments flag) and a canonical Message frame shape built around it. Neither symbol exists anywhere under include/ in this repo — the individual control bits (evt_ack, op, rsp, err, ms, etc.) are instead spread across separate bool/uint8_t fields directly on AcfMessageInfo. The actual bit encode/decode logic for those fields does appear faithful to the intended bit positions (this isn't a behavioral bug), but the absence of the canonical named type means this C++ port doesn't expose the same shared vocabulary other language ports of this protocol are expected to expose, which weakens cross-port type parity for anything trying to treat ControlFlags/Message as a common interchange shape.
Recommendation: Either add a canonical ControlFlags enum (with the spec's bit values) and a Message-shaped type as a thin view over the existing AcfMessageInfo fields, or explicitly document AcfMessageInfo's field-per-bit layout as this port's sanctioned binding so it's a documented, intentional divergence rather than a silent gap.
Verification: Independently re-read include/rcp/acf.hpp against current HEAD (commit 4b9449a, 2026-07-29) and searched the whole include/ tree for ControlFlags/FlagAck/FlagRead — no matches. Confirmed the individual control bits exist as separate fields on AcfMessageInfo instead. As with the sibling Message.id finding, the canonical-type claim rests on this project's own tracked understanding of the relevant RELAY spec section rather than a fresh re-read of that section's text in this pass.
Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.
Reopening: this was auto-closed by GitHub's issue-closing-keyword parser matching the substring "close #89" inside PR #93's description, which actually reads "Does not close #89" (that PR deliberately avoided touching rcp/acf.hpp). The real fix for this issue is in PR #94 (fix/acf-avtp-wire-conformance), not yet merged at the time this was accidentally closed.
Fixed by #94 (merged), which was not fully auto-linked because the PR description's bold markdown around some issue numbers broke GitHub's closing-keyword parser (only #73 linked automatically).
Activity
SoundMatt commentedon Jul 30, 2026
Reopening: this was auto-closed by GitHub's issue-closing-keyword parser matching the substring "close #89" inside PR #93's description, which actually reads "Does not close #89" (that PR deliberately avoided touching
rcp/acf.hpp). The real fix for this issue is in PR #94 (fix/acf-avtp-wire-conformance), not yet merged at the time this was accidentally closed.SoundMatt commentedon Jul 30, 2026
Fixed by #94 (merged), which was not fully auto-linked because the PR description's bold markdown around some issue numbers broke GitHub's closing-keyword parser (only #73 linked automatically).