From df2333556e1f3c8c01b214d28bfb67d6de6b5303 Mon Sep 17 00:00:00 2001 From: baku-ccron Date: Fri, 21 Aug 2026 06:51:40 +0000 Subject: [PATCH 1/2] chore(audit): record the adversarial mutation test scan Adds the scan record the org health check reads to answer which release was last audited. This is the first entry for this repo, so the file is created here. The record holds at a4692fd. testsAfterCommit is set equal to commit because this run was instructed not to merge, so no coverage landed on the default branch; the run's tests are in the two open PRs the entry names, and the entry says what should supersede it once they land. REUSE.toml covers audit/**/ which matches files inside subdirectories, so the new file at the top of audit/ is listed explicitly. Co-Authored-By: Claude Fable 5 --- REUSE.toml | 1 + audit/mutation-test-scans.json | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 audit/mutation-test-scans.json diff --git a/REUSE.toml b/REUSE.toml index 07a7387..1dc2ad2 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -7,6 +7,7 @@ path = [ ".vscode/**/", ".gitignore", "audit/**/", + "audit/mutation-test-scans.json", "README.md", "flake.lock", "flake.nix", diff --git a/audit/mutation-test-scans.json b/audit/mutation-test-scans.json new file mode 100644 index 0000000..cb4b207 --- /dev/null +++ b/audit/mutation-test-scans.json @@ -0,0 +1,26 @@ +[ + { + "timestamp": "2026-08-21T06:50:35Z", + "commit": "a4692fddbb95a0018cec42969ef6c7fa1b0cf86c", + "testsAfterCommit": "a4692fddbb95a0018cec42969ef6c7fa1b0cf86c", + "publishedTag": "v0.1.0", + "commitsAheadOfTag": 8, + "scope": "whole repo", + "tool": "adversarial-mutation-test", + "skillVersion": "0.34.0", + "summary": { + "behaviours": 23, + "candidates": 3, + "confirmed": 3, + "testsBefore": 6, + "testsAfter": 6, + "filed": ["#20", "#21", "#22"], + "mutantsProbed": 37, + "killedBefore": 27, + "survivedBefore": 9, + "equivalentMutants": 1, + "openCoveragePullRequests": ["#18", "#19"], + "note": "testsAfterCommit equals commit because the run was explicitly instructed not to merge anything, so no coverage landed on the default branch. The run's 15 tests sit in the two open PRs listed above; when those land, this entry should be superseded by one whose testsAfterCommit names the merged tree and whose testsAfter reads 21. The one surviving mutant is an equivalent mutant, not a gap: setting preserveMask to not(0) in unsafeTo16BitBytes is bit-identical to the shipped code across the whole padded allocation, because new bytes zero-initialises and each destination position is written exactly once in increasing order." + } + } +] From cc5a580fc341ca1003a783907da19771f81facac Mon Sep 17 00:00:00 2001 From: baku-ccron Date: Fri, 21 Aug 2026 06:59:08 +0000 Subject: [PATCH 2/2] fix(audit): correct the scan record's post-merge test count and mutant total MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `testsAfter` was projected as 21 in the note. The two coverage PRs take LibCast 4 -> 9 and LibConvert 2 -> 6, so the merged tree runs 15 — confirmed by a combined probe whose baseline is green at 15 passed. The note also called 15 "the run's 15 tests". 15 is the post-merge total; the run added 9 and strengthened 4 existing ones in place. `mutantsProbed` 37 -> 38 (M38 was authored late), with the note now explaining why killedBefore + survivedBefore total 36 instead: M37 and M38 did not exist when the pre-existing suite was probed. The combined re-probe over all 38 is 37/38 killed, 0 no-run, 0 harness errors, the lone survivor being the already documented equivalent mutant M23. Co-Authored-By: Claude Opus 5 (1M context) --- audit/mutation-test-scans.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audit/mutation-test-scans.json b/audit/mutation-test-scans.json index cb4b207..556268c 100644 --- a/audit/mutation-test-scans.json +++ b/audit/mutation-test-scans.json @@ -15,12 +15,12 @@ "testsBefore": 6, "testsAfter": 6, "filed": ["#20", "#21", "#22"], - "mutantsProbed": 37, + "mutantsProbed": 38, "killedBefore": 27, "survivedBefore": 9, "equivalentMutants": 1, "openCoveragePullRequests": ["#18", "#19"], - "note": "testsAfterCommit equals commit because the run was explicitly instructed not to merge anything, so no coverage landed on the default branch. The run's 15 tests sit in the two open PRs listed above; when those land, this entry should be superseded by one whose testsAfterCommit names the merged tree and whose testsAfter reads 21. The one surviving mutant is an equivalent mutant, not a gap: setting preserveMask to not(0) in unsafeTo16BitBytes is bit-identical to the shipped code across the whole padded allocation, because new bytes zero-initialises and each destination position is written exactly once in increasing order." + "note": "testsAfterCommit equals commit because the run was explicitly instructed not to merge anything, so no coverage landed on the default branch. The run ADDED 9 tests (LibCast 4 -> 9, LibConvert 2 -> 6) and strengthened 4 existing ones in place; they sit in the two open PRs listed above. When those land, this entry should be superseded by one whose testsAfterCommit names the merged tree and whose testsAfter reads 15. killedBefore + survivedBefore total 36 rather than mutantsProbed's 38 because M37 and M38 were authored after the pre-existing-suite pass; re-probing both PRs' tests together against all 38, on a green 15-test baseline, is 37/38 killed with 0 no-run and 0 harness errors. The one surviving mutant is an equivalent mutant, not a gap: setting preserveMask to not(0) in unsafeTo16BitBytes is bit-identical to the shipped code across the whole padded allocation, because new bytes zero-initialises and each destination position is written exactly once in increasing order." } } ]