Skip to content

RELAY spec v0.2 — update notification #8

Closed

Description

@SoundMatt

RELAY spec v0.2 — update notification

The RELAY specification has been updated. This issue summarises what changed and what, if anything, requires attention in this repo.

What changed in spec v0.2 (commit a08b1fc)

Fixes relevant to all x-Nets:

  • §17.12 / §19.4: SpecVersion conformance requirement no longer hardcodes a string — implementations MUST export the value declared in spec/version.json (currently "0.2").
  • §4.3: Two RCP meta keys added: rcp.healthy (true/false) and rcp.status (decimal uint8).
  • §5.2: Reference C++ boilerplate for std::error_condition equivalence added.
  • §5.4: RCP::ErrAlreadyExists no longer wraps ErrClosed — it is now standalone (not a relay sentinel). This corrects a semantic inconsistency.
  • §10.3: C++ Adapt() signatures specified (per-protocol namespace, unique_ptr return, shared_ptr argument).
  • §17.7: CLI conformance for header-only C++ libraries clarified (-DRELAY_BUILD_CLI=ON CMake target).
  • §18.2: relay::Node::subscribe() return type corrected to std::pair<std::shared_ptr<Channel<Message>>, std::error_code>.
  • §18.2: C++ to_message() / from_message() signatures defined (C++17 pair form; C++23 std::expected form optional).

Action required

If your package currently exports SpecVersion = "0.1", update it to "0.2" when targeting this spec version.

For any other gaps between this repo and the spec, see the previously filed conformance issues on this repo.

Feedback

Please raise any spec questions or concerns as issues on SoundMatt/RELAY.

Signed-off-by: Matt Jones 47545907+SoundMatt@users.noreply.github.com

Activity

  1. SoundMatt commented on Jun 17, 2026

    @SoundMatt
    OwnerAuthor

    Applied in PR #9 (merged). ErrAlreadyExists mapping removed from rcp_category()::equivalent(); test added to assert it matches no relay sentinel. CI green on all 5 platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions