From f71f50e11b719ba0e0c5fd70f714ba52fd8f4e3d Mon Sep 17 00:00:00 2001 From: Matt <47545907+SoundMatt@users.noreply.github.com> Date: Fri, 7 Aug 2026 13:54:53 -0700 Subject: [PATCH] docs: v0.143.0 -- citation backfill batch 23: CANCEL (issue #164) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cited 7/8 remaining uncited REQ-CANCEL-* requirements against TC18 §11.2.3's clear-all/clear-single wire formats, the cancellable-window predicate, NOT_FOUND/CANCELED outcome logic, and the chain-cascade predicate. A second id-mapping error (REQ-CANCEL-007, already cited) caught and fixed by the pre-flight check before any edit ran. Purely additive; no code or test behavior changed. 1028 requirements (unchanged count), 100% traced+tested, 0 cfusa check errors. Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com> --- .fusa-reqs.json | 21 ++++++++++++++------- .fusa.json | 2 +- CHANGELOG.md | 11 +++++++++++ CMakeLists.txt | 2 +- ROADMAP.md | 36 ++++++++++++++++++++++++++++++++++++ include/rcp/version.h | 2 +- 6 files changed, 64 insertions(+), 10 deletions(-) diff --git a/.fusa-reqs.json b/.fusa-reqs.json index 481abb5..b76bc01 100644 --- a/.fusa-reqs.json +++ b/.fusa-reqs.json @@ -5575,7 +5575,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3.1 Figure 13 / Table 11 (Usage of GBB message to cancel all requests, request_type=0x05), TC18.txt L1681-1719; general ACF_GBB frame-validation basis and §11.2.2 (\"conditional requests are sent using ACF_GBB having mtv = 0 (time stamp not valid) and using the bytes of the message_timestamp field to convey the execution condition\"), TC18.txt L1186-1189" }, { "id": "REQ-CANCEL-004", @@ -5604,7 +5605,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3.3 Figure 15 / Table 13 (Usage of GBB message to cancel a single, specific request, request_type=0x07, clear_transaction_num), TC18.txt L1794-1835; general ACF_GBB frame-validation basis and §11.2.2 (\"conditional requests are sent using ACF_GBB having mtv = 0 (time stamp not valid) and using the bytes of the message_timestamp field to convey the execution condition\"), TC18.txt L1186-1189" }, { "id": "REQ-CANCEL-007", @@ -5623,7 +5625,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3 (\"A request can be cancelled while it is pending and after it has been started until it is under execution. Requests under execution will not be aborted.\"), TC18.txt L1673-1675" }, { "id": "REQ-CANCEL-009", @@ -5632,7 +5635,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3.3 (\"The request initiating the cancellation will create an error response with the error code = REQUEST_NOT_FOUND, when the clear_transaction_num was not found.\"), TC18.txt L1836-1837" }, { "id": "REQ-CANCEL-010", @@ -5641,7 +5645,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3 (\"A request can be cancelled while it is pending and after it has been started until it is under execution. Requests under execution will not be aborted.\"), TC18.txt L1673-1675" }, { "id": "REQ-CANCEL-011", @@ -5650,7 +5655,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3 (\"A request can be cancelled while it is pending and after it has been started until it is under execution. Requests under execution will not be aborted.\"), TC18.txt L1673-1675; §11.2.3.3 (\"The request initiating the cancellation will create an error response with the error code = REQUEST_NOT_FOUND, when the clear_transaction_num was not found.\"), TC18.txt L1836-1837" }, { "id": "REQ-CANCEL-012", @@ -5659,7 +5665,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.3 (\"If a request is cancelled to which a request is chained, then the chained successors shall be cancelled by the RC Server as well.\"), TC18.txt L1674-1675" }, { "id": "REQ-SCHED-001", diff --git a/.fusa.json b/.fusa.json index c7937c3..c558009 100644 --- a/.fusa.json +++ b/.fusa.json @@ -2,7 +2,7 @@ "configVersion": "1.0", "project": { "name": "c-RCP", - "version": "0.142.0" + "version": "0.143.0" }, "standard": "iso26262", "strict": false, diff --git a/CHANGELOG.md b/CHANGELOG.md index 39ae4eb..88b9896 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,17 @@ the rationale. ## Releases +### v0.143.0 -- 2026-08-07 + +**Citation backfill, batch 23: CANCEL.** Issue #164. Cited 7 of 8 +remaining uncited cancellation-request requirements against TC18 +§11.2.3's three cancellation mechanisms (clear-all, clear-single, plus +the cancellable-window, outcome, and chain-cascade predicates). A +second id-mapping error (`REQ-CANCEL-007`, already cited) caught and +fixed by the pre-flight check before any edit ran. See `ROADMAP.md` +milestone 143 for full detail. 1028 requirements (unchanged), 100% +traced+tested, 0 `cfusa check` errors. + ### v0.142.0 -- 2026-08-07 **Citation backfill, batch 22: CHAIN.** Issue #164. Cited 8 of 9 diff --git a/CMakeLists.txt b/CMakeLists.txt index ef52df9..6d3d687 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.16) project(c-rcp - VERSION 0.142.0 + VERSION 0.143.0 DESCRIPTION "OPEN Alliance TC18 Remote Control Protocol (C)" HOMEPAGE_URL "https://github.com/SoundMatt/c-RCP" LANGUAGES C diff --git a/ROADMAP.md b/ROADMAP.md index fb9415b..7d4b2b3 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -6989,3 +6989,39 @@ were genuinely uncited before writing anything. Purely additive; no code or test changed. 1028 requirements (unchanged count), 100% traced+tested, 0 `cfusa check` errors. + +### 143. Citation backfill, batch 23: CANCEL (issue #164) (v0.143.0) + +Twenty-third batch. `request_cancel.c`/`request_cancel.h`, 8/12 +uncited going in. A second id-mapping error caught and fixed by the +pre-flight check before any edit ran, same class as batch 22's: +`REQ-CANCEL-007` was drafted as a target but the live scan showed it +already cited -- corrected (folded its intended citation text into +`006`, its sibling in the same source tag group) before running the +script. + +Cited 7 of the 8 uncited `REQ-CANCEL-*` requirements against §11.2.3's +three cancellation mechanisms: clear-all decode validation +(`REQ-CANCEL-003`) against §11.2.3.1 Figure 13/Table 11 (request_type +0x05); clear-single decode validation (`REQ-CANCEL-006`) against +§11.2.3.3 Figure 15/Table 13 (request_type 0x07, +clear_transaction_num); the cancellable-window predicate +(`REQ-CANCEL-008`, `010`) against "A request can be cancelled while it +is pending and after it has been started until it is under execution. +Requests under execution will not be aborted."; the NOT_FOUND/CANCELED +outcome logic (`REQ-CANCEL-009`, `011`) against the same window text +plus §11.2.3.3's "error response with the error code = REQUEST_NOT_FOUND, +when the clear_transaction_num was not found" rule; and the +chain-cascade predicate (`REQ-CANCEL-012`) against §11.2.3's "If a +request is cancelled to which a request is chained, then the chained +successors shall be cancelled by the RC Server as well." + +Left uncited, deliberately: `REQ-CANCEL-001` (`strerror()` +uniqueness) -- the same implementation-detail pattern as every prior +batch. + +Used the pre-flight citation-target check -- confirmed all 7 targets +were genuinely uncited before writing anything. + +Purely additive; no code or test changed. 1028 requirements (unchanged +count), 100% traced+tested, 0 `cfusa check` errors. diff --git a/include/rcp/version.h b/include/rcp/version.h index 3814a0f..a8559d1 100644 --- a/include/rcp/version.h +++ b/include/rcp/version.h @@ -6,6 +6,6 @@ #ifndef RCP_VERSION_H #define RCP_VERSION_H -#define RCP_VERSION "0.142.0" +#define RCP_VERSION "0.143.0" #endif /* RCP_VERSION_H */