Skip to content

fix: backlog sweep — send protocol-flags form, TARA/tara collision, subscribe race, spec v1.11 - #35

Merged
SoundMatt merged 1 commit into
mainfrom
fix/backlog-2026-07
Jul 27, 2026
Merged

SoundMatt merged 1 commit into
mainfrom
fix/backlog-2026-07

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Fixes the entire open-issue backlog on this repo (#28–#34), all P1/P2 findings from the 2026-07-27 RELAY ecosystem audit, plus leaves the one architectural-decision issue (#23) open with an explanation.

Fixed

Left open (no code change here)

  • Feature parity: port remaining go-RCP tooling packages (iso21434, certgap, formal, codegen) #23 — "Feature parity: port remaining go-RCP tooling packages (iso21434/certgap/formal/codegen)". This is explicitly framed by its own author as a decision-needed architectural question (port as C++ library modules vs. declare intentionally out of scope in favor of the external cpp-FuSa tool), not a concrete bug or spec-conformance gap. Left open with a comment explaining it needs a human product/architecture decision (and has a companion issue on go-RCP) rather than a guessed-at implementation.

Version

kVersion / PROJECT_VERSION bumped 1.1.0 → 1.2.0 (MINOR — #28 adds a new spec-conformance capability; the rest are bug/doc fixes).

Test plan

  • cmake -B build -DCMAKE_BUILD_TYPE=Release -DRELAY_BUILD_CLI=ON -G Ninja && cmake --build build --parallel — clean build
  • ctest --test-dir build --output-on-failure -j1 — 41/41 suites pass (including the new concurrency regression test and the previously-flaky latency test)
  • relay conform --strict build/cpp-rcp (built from SoundMatt/RELAY main) — PASS on all three §12 schemas
  • Manual CLI smoke test of the new send --zone/--type/--payload form (text and JSON) and its error paths (missing flags, unknown type, unknown zone, bad hex)

…ubscribe race, spec v1.11

- send: implement the §11.2 protocol-flags form (--zone/--type/--payload) for
  RCP alongside the existing streaming JSON sink, dispatching to the same
  in-process mock registry. Adds hex_decode and cmd_type_from_string helpers.
  (Closes #28)
- Rename the hand-authored TARA.md to TARA-ANALYSIS.md so it no longer
  case-collides with the auto-generated tara.md on case-insensitive
  filesystems (macOS/Windows), which silently dropped one file's content on
  checkout. Update AUDIT_PACK.md and ROADMAP.md references. (Closes #29)
- mock::Controller::subscribe(): hold mu_ across the closed_ check and the
  subs_ append (matching close()'s critical section) to close a TOCTOU race
  where a subscribe() concurrent with close() could return success instead of
  ErrClosed. Add a concurrent regression test. (Closes #30)
- capabilities_json(): emit protocol/protocol_int, matching version_json()
  and the spec §12.2 single-protocol-implementation convention. (Closes #31)
- command_latency_test: drop the CI-env-var-gated threshold (an unreliable
  proxy for "noisy scheduler") in favour of a single generous threshold
  applied uniformly, fixing a spurious failure observed on a non-CI sandboxed
  run. (Closes #32)
- Bump kRelaySpecVersion 1.10 -> 1.11 (no behavioural changes needed; cpp-RCP
  already shipped a CLI target ahead of the v1.11 waiver removal). (Closes #33)
- README: expand the Headers table from 2 to all ~43 public headers, grouped
  by concern per spec §13.7.2. (Closes #34)

kVersion/PROJECT_VERSION -> 1.2.0 (new spec-conformance capability: the send
protocol-flags form). 41/41 ctest suites pass; relay conform --strict PASS at
spec 1.11.

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit 26c7d11 into main Jul 27, 2026
28 of 39 checks passed
@SoundMatt
SoundMatt deleted the fix/backlog-2026-07 branch July 27, 2026 17:28
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