Skip to content

refactor: reconcile module naming with RELAY spec v1.14 §13.7.2 - #47

Merged
SoundMatt merged 2 commits into
mainfrom
feat/module-naming-reconciliation-13-7-2
Jul 28, 2026
Merged

SoundMatt merged 2 commits into
mainfrom
feat/module-naming-reconciliation-13-7-2

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Addresses #45. RELAY spec v1.14 expanded §13.7.2's standard module-name
registry with canonical names for RCP protocol-core concerns (avtp,
acf, lifecycle, regmap, discovery, request, fragment, e2e).
This is a pure naming/structure reconciliation — no protocol behavior
change.

Verified each delta from #45 against current code before acting:

  • rcp/wire.hpp → rcp/avtp.hpp + rcp/acf.hpp — confirmed still
    real: wire.hpp bundled AVTPDU header framing together with
    ACF_ABB/ACF_GBB message-format encoding under the "wire" name (the
    inverse of how the other three RCP replacements name things). Split
    into rcp/avtp.hpp (AVTPDU/NTSCF/TSCF framing) and rcp/acf.hpp
    (ACF_ABB/ACF_GBB message format), matching the registry's separate
    entries. rcp/legacy_wire.hpp (the pre-replacement 16-byte codec,
    still used internally by rcp/udp.hpp until v2.13.0) is untouched.
  • rcp/sequencer.hpp → rcp/request.hpp — confirmed still real, but
    it's a rename, not a split: the file already covered exactly the
    registry's request entry ("conditional-request taxonomy... and
    sequencers") in one place. SequencerTable keeps its name as the
    internal sequencer-state sub-concept within the module.
  • lifecycle, regmap, discovery — confirmed already correct, no
    action (issue was right that this repo is the reference case here).
  • e2e — confirmed already correct, no action.
  • request module for conditional-request taxonomy — confirmed real
    at time of filing; resolved by the sequencer→request rename above,
    since that file already held both halves the registry's request
    entry names.
  • fragment.hpp — not created. This repo's ROADMAP.md milestone
    52 (v2.8.0) already decided fragmentation no-go for this cycle (see the
    milestone's "Done" writeup and regmap.hpp's kOptFragmentation
    comment) — there is no fragmentation logic anywhere in the tree to
    extract into a module. The issue's phrasing ("if AVTPDU/ACF
    fragmentation logic exists elsewhere... consider extracting") already
    anticipated this might not apply; current code confirms it doesn't.
    Added a short note to ROADMAP.md's disposition section so this isn't
    re-litigated by a future pass.
  • canbr.hpp/linbr.hpp DEPRECATE vs. ADAPT — left unresolved, as
    the issue explicitly asked. This repo currently calls DEPRECATE; noting
    it's still an open cross-repo architectural question, not a naming fix.

Also updated the doc comments, README module table, and .fusa-reqs.json
requirement text that referenced the old module names, and added a short
"Post-hoc naming reconciliation" note to ROADMAP.md rather than rewriting
its historical per-milestone narrative (which still accurately describes
rcp/wire.hpp as it existed at each point in time).

Test plan

  • cmake --build (AppleClang, Release) — full build succeeds
  • ctest — all 59 tests pass (rcp_avtp, rcp_acf, rcp_request new/renamed; rcp_wire/rcp_sequencer removed)
  • cpp-rcp version/CLI build succeeds with -DRELAY_BUILD_CLI=ON
  • RELAY relay conform --strict against the built cpp-rcp CLI — PASS
  • CI (build-and-test matrix, relay-conform, clang-tidy, cpfusa-* jobs) — pending on this PR

RELAY spec v1.14 expanded §13.7.2's standard module-name registry with
canonical names for RCP protocol-core concerns (avtp, acf, lifecycle,
regmap, discovery, request, fragment, e2e). Comparing this repo's TC18
replacement against go/rust/c-RCP found two real naming deltas (#45):

- rcp/wire.hpp bundled AVTPDU header framing together with ACF_ABB/ACF_GBB
  message-format encoding under the "wire" name, the inverse of the other
  three implementations' naming. Split into rcp/avtp.hpp (AVTPDU/NTSCF/TSCF
  framing) and rcp/acf.hpp (ACF_ABB/ACF_GBB message format), matching the
  registry's separate avtp/acf entries. rcp/legacy_wire.hpp (the
  pre-replacement 16-byte codec, still used internally by rcp/udp.hpp
  until v2.13.0) is unchanged.
- rcp/sequencer.hpp already covered exactly the registry's `request` entry
  ("conditional-request taxonomy... and sequencers") in one file, so it is
  renamed rcp/request.hpp rather than split; SequencerTable keeps its name
  as the internal sequencer-state sub-concept.

rcp/lifecycle.hpp, rcp/regmap.hpp, and rcp/discovery.hpp already matched
the registry and needed no change. rcp/fragment.hpp is not created: this
repo's ROADMAP.md milestone 52 (v2.8.0) already decided fragmentation
no-go for this cycle, so there is no fragmentation logic anywhere in the
tree to extract into a module — the issue's delta here was based on a
"folded into wire.hpp" possibility that current code rules out.

canbr.hpp/linbr.hpp's DEPRECATE-vs-ADAPT question flagged in the issue is
a real cross-repo architectural difference, not a naming issue, and is
left unresolved here as the issue requested.

Pure rename/split, no behavior change: full build + ctest (59/59) pass,
and RELAY `relay conform --strict` against the built CLI passes.

Addresses #45

Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
No behavior change; version bump to mark the rcp/wire.hpp -> rcp/avtp.hpp
+ rcp/acf.hpp split and rcp/sequencer.hpp -> rcp/request.hpp rename per
RELAY spec v1.14 §13.7.2, matching this repo's convention of bumping
kVersion/PROJECT_VERSION per merged PR.

Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit c0367d0 into main Jul 28, 2026
20 checks passed
@SoundMatt
SoundMatt deleted the feat/module-naming-reconciliation-13-7-2 branch July 28, 2026 20:50
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