Skip to content

feat: uplift to RELAY spec v1.10 — crossbar send sink + continuous conformance#27

Merged
SoundMatt merged 1 commit into
mainfrom
feat/relay-v1.10-uplift
Jun 19, 2026
Merged

feat: uplift to RELAY spec v1.10 — crossbar send sink + continuous conformance#27
SoundMatt merged 1 commit into
mainfrom
feat/relay-v1.10-uplift

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Uplifts cpp-RCP to RELAY spec v1.10 (from 1.0) and resolves the open spec-progression issues.

Closes #21, #25, #26

#21 — §11.2 streaming send sink (crossbar spoke)
cpp-rcp send --format json now reads relay.Message NDJSON on stdin and publishes each (via message_to_command → matching mock zone controller) until EOF. Malformed or undeliverable lines are reported and skipped so one bad message can't tear down a crossbar route. Self-contained minimal JSON reader + base64 decode (no new dependency); send declared in capabilities.commands. New REQ-CLI-005 (traced + tested). Verified against RELAY-generated NDJSON (relay convert).

#25 — §13.7 library architecture + spec uplift
Added relay::INode alias (the mandated cross-language node-interface name); the core/adapt/mock taxonomy was already compliant. Bumped kRelaySpecVersion 1.0 → 1.10.

#26 — §20.1 continuous conformance
Tightened the CI cpfusa trace gate to 100% requirement coverage (traced AND tested). The relay conform --strict gate (§20.1.1) was added in #22.

Verification (local)

  • 332/332 requirements traced (100%).
  • 41 ctest suites green (incl. new send-sink tests).
  • relay conform --strict PASS at spec_version 1.10 (all three §12 schemas).
  • kVersion → 1.1.0 (new command → minor bump). RELAY spec_version reported as 1.10.

Out of scope (intentionally): convert/interop tooling-conformance (§20.3) — not declared; feature-parity ports tracked in #23. TARA.md working-tree change is the parked case-collision item, excluded.

…nformance

Adopt RELAY v1.10 (was 1.0). Addresses #21, #25, #26.

- #21 (§11.2): add 'send --format json' streaming NDJSON sink (crossbar spoke) to the cpp-rcp CLI — reads relay.Message NDJSON on stdin and publishes each via message_to_command to the matching mock zone controller; malformed/undeliverable lines are skipped non-fatally. Self-contained minimal JSON reader + base64 decode; declared in capabilities.commands. New REQ-CLI-005 (traced + tested).

- #25 (§13.7): add relay::INode alias for the cross-language node-interface name; bump kRelaySpecVersion 1.0 -> 1.10.

- #26 (§20.1): tighten CI cpfusa trace gate to 100% requirement coverage (traced AND tested). relay conform --strict gate already added in #22.

kVersion -> 1.1.0 (new CLI command). 332/332 requirements traced; 41 ctest suites green; relay conform --strict PASS at spec 1.10.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit b373616 into main Jun 19, 2026
20 checks passed
@SoundMatt
SoundMatt deleted the feat/relay-v1.10-uplift branch June 19, 2026 18:17
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.

Add streaming send --format json sink (RELAY v1.8 crossbar spoke)

1 participant