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-01] Retired Zone/Command/Registry model is still the primary compiled public API #84
Finding: rcp/rcp.hpp — the header a new reader of this library would naturally treat as the core interface — still defines the entire pre-TC18 placeholder protocol as live, compiled public API: Zone, Priority, CommandType, Command, Response, Status, Controller, and Registry. The README's header index still lists this file's core interfaces as exactly that set. The RELAY spec's conformance rules for this ecosystem retired that placeholder model in favor of the real OPEN Alliance TC18 protocol and, per the project's own tracked understanding of that section, explicitly say a conformant implementation must not also still speak the retired protocol as a compatibility shim. The header's own top-of-file comment concedes it predates the TC18 alignment and "remains in place."
Recommendation: Delete the retired Zone/Command/Response/Status/Priority/CommandType/Controller/Registry definitions from rcp.hpp and make the TC18-based model (acf.hpp, avtp.hpp, regmap.hpp, request.hpp) the sole core public surface. The one remaining internal dependent on the old model, config.hpp, needs to be migrated first (see the related finding about legacy_mock.hpp/redundancy.hpp/faultinject.hpp/config.hpp still compiling against it).
Verification: Independently re-read include/rcp/rcp.hpp and README.md against current HEAD (commit 4b9449a, 2026-07-29). Confirmed all eight retired types are still defined and compiled, and the README still documents them as the core interfaces.
This finding overlaps with a shorter, less-detailed finding from an earlier pass of the same audit (referred to there as cpp-RCP-06) describing the same underlying defect — that shorter finding is being tracked as a duplicate of this issue rather than filed separately, along with two companion findings scoped more narrowly to the README quick-start and to the live dependents of this retired model.
Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.
Cross-referencing: the ecosystem audit's terminology-matrix finding RELAY-TERM-01 ("cpp-RCP public API still exposes the retired RCP vocabulary") independently re-verified against current HEAD identifies the exact same defect at rcp.hpp:134/197/263/305 (Zone, Command, Controller, Registry) plus ErrZoneMismatch at rcp.hpp:130, and additionally confirms the mandated TC18 types (StreamID, ByteBusID, TransactionNum, ControlFlags, Message) are absent from this header entirely. Not filing a separate issue — tracking as a duplicate of this one. Filed from the 2026-07-29 ecosystem audit register.
Fixed by #93 (merged), which was not auto-linked because the PR description's bold markdown around the issue numbers broke GitHub's closing-keyword parser.
Activity
SoundMatt commentedon Jul 30, 2026
Cross-referencing: the ecosystem audit's terminology-matrix finding RELAY-TERM-01 ("cpp-RCP public API still exposes the retired RCP vocabulary") independently re-verified against current HEAD identifies the exact same defect at rcp.hpp:134/197/263/305 (
Zone,Command,Controller,Registry) plusErrZoneMismatchat rcp.hpp:130, and additionally confirms the mandated TC18 types (StreamID, ByteBusID, TransactionNum, ControlFlags, Message) are absent from this header entirely. Not filing a separate issue — tracking as a duplicate of this one. Filed from the 2026-07-29 ecosystem audit register.SoundMatt commentedon Jul 30, 2026
Fixed by #93 (merged), which was not auto-linked because the PR description's bold markdown around the issue numbers broke GitHub's closing-keyword parser.