Skip to content

fix: RELAY v1.10 §12 CLI conformance + adapt/convert subcommand#3

Merged
SoundMatt merged 4 commits into
mainfrom
fix/relay-conform-and-spec-uplift
Jun 19, 2026
Merged

fix: RELAY v1.10 §12 CLI conformance + adapt/convert subcommand#3
SoundMatt merged 4 commits into
mainfrom
fix/relay-conform-and-spec-uplift

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Changes

CLI (src/bin/rcp.rs)

  • version --format json: adds "protocol": "RCP", "protocol_int": 5 (fixes §12.1 protocol is null WARN)
  • capabilities: sets "adapt": true, adds "convert" to commands list (fixes §17.6 adapt=false WARN)
  • status --format json: adds "protocol": "RCP" to §12.3 document
  • New convert --protocol RCP subcommand: reads rcp.Status JSON from stdin, emits relay.Message JSON; exit 1 on invalid input, exit 2 on wrong/missing --protocol; golden vector rcp-status is EQUIVALENT

FuSa / Compliance

  • REQ-CLI-009 added: convert subcommand (341 requirements, 100% traced)
  • .fusa-dfmea.json: new dFMEA artifact, 10 failure modes FM-001..FM-010 (ISO 26262 ASIL-B)
  • spec_version updated 1.6 → 1.10 across .fusa.json, .fusa-reqs.json

Build

  • build.rs: emits RUSTC_VERSION env var for §12.1 runtime field

CI (.github/workflows/ci.yml)

  • relay-conform job: relay conform --strict target/release/rcp must exit 0
  • relay-interop job: checks rcp-status EQUIVALENT (non-RCP protocols correctly exit 2 — expected for a single-protocol tool with adapt:true)
  • SBOM, cyber gap check, conformance unit test jobs all retained

Test plan

  • relay conform --strict target/release/rcpRESULT: PASS (local)
  • relay interoprcp-status EQUIVALENT (local)
  • cargo test --all-targets → 355 passed, 0 failed (local)
  • scripts/fusa-gap-check.sh → 341/341 requirements fully traced (local)
  • cargo fmt --all -- --check + cargo clippy -D warnings → clean

, closes #2

- CLI: add protocol/protocol_int to §12.1 version, §12.2 capabilities, §12.3 status JSON
- CLI: set adapt:true in capabilities; implement convert --protocol RCP subcommand
  reading rcp.Status JSON from stdin, emitting relay.Message JSON (golden vector EQUIVALENT)
- CI: relay-conform --strict now exits 0; relay-interop checks rcp-status EQUIVALENT
- FuSa: add REQ-CLI-009 (convert subcommand) + 8 convert tests; 341 reqs fully traced
- FuSa: add dFMEA artifact (10 failure modes FM-001..FM-010); spec_version 1.6→1.10
- build.rs: emit RUSTC_VERSION env var for §12.1 runtime field

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
dcoapp/app@main no longer provides action.yml; replace with a bash
check that accepts Signed-off-by or Co-Authored-By trailers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
…ommit)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

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

cargo-cyclonedx v0.5.9 uses --override-filename not --output-cdx.
relay interop needs the RELAY spec/vectors directory; make the step
best-effort when vectors are absent from the runner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt SoundMatt merged commit 2194dbe into main Jun 19, 2026
15 checks passed
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.

Adopt RELAY v1.10 §20 continuous-conformance CI gates CLI fails relay conform — version/capabilities/status not §12-conformant

1 participant