voyage/tests/helpers
Kjell Tore Guttormsen f6e8529bdd
fix(review): convert refuses a partial or scoped Claude Security report; the stamp check is a trace (decisions 223, 224)
Two fail-closed checks in security-engine.mjs convert (decision 224), both
"not measured" (exit 2, the reason on stderr, nothing on stdout):
- the stamp's findings.total is not a non-negative integer, or the JSONL
  holds another number of records (a JSONL that lost the only BLOCKER line
  converted clean before; part 3 verifier, F3);
- the stamp's scope is not an empty list: a scan limited by --scope, an
  absent scope or a non-list scope (Claude Security 0.12.0 writes scope: []
  for an unscoped scan; F4).
The real Claude Security 0.12.0 probe report still converts: exit 0, one
BLOCKER, two below_threshold.

Decision 223, text only: the module header and SECURITY.md keep the
head/base check and say it is a trace, not a signature: code the reviewed
run executed can write a report folder of its own (convert reads the
matching one whose name sorts last) or delete the real one first (F2, a
known issue). /trekreview's not-measured list names the two new reasons.

The test helper writes the real stamp shape by default (findings.total =
the records in the JSONL written, scope: []). New tests for behaviour that
had none (F6): no fallback from an unverified newest match, a two-stamp
folder passed over, a symlinked stamp, JSONL or folder refused, a malformed
or absent scan_prefix, an unrecorded empty_diff or empty_scope.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 18:24:39 +01:00
..
artifact-repo.mjs refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs] 2026-10-12 21:06:47 +02:00
bin-path.mjs fix: round 9 of the release review of 6.3.0, for 6.3.1 2026-10-11 12:49:01 +02:00
changelog-section.mjs test(changelog): find the 6.4.0 section by its title, before and after the release commit 2026-10-17 00:13:32 +02:00
child-env.mjs fix(tests): the suite no longer hands the session id to the lock CLI 2026-10-12 14:09:14 +02:00
claude-security-report.mjs fix(review): convert refuses a partial or scoped Claude Security report; the stamp check is a trace (decisions 223, 224) 2026-11-08 18:24:39 +01:00
hook-helper.mjs fix(tests): the post-compact hook test takes its child timeout from the shared timing helper 2026-10-15 15:43:36 +02:00
md-section.mjs refactor(cleanup): simplify pass on the R-a diff 2026-11-07 13:31:30 +01:00
no-session-id.mjs fix(tests): the suite no longer hands the session id to the lock CLI 2026-10-12 14:09:14 +02:00
plan-v18-builder.mjs feat(plan): read Files by the 1.9 grammar, warn on unticked paths below it [skip-docs] 2026-10-12 16:09:25 +02:00
red-judge.mjs test(r8): move the live tests out of the round files 2026-11-07 10:19:49 +01:00
red-mutate.mjs feat(red-proof): one red script that takes base, ids, mutations and files as arguments 2026-10-26 12:38:44 +01:00
red-reporter.mjs test(r8): move the live tests out of the round files 2026-11-07 10:19:49 +01:00
red-round.sh feat(red-proof): one red script that takes base, ids, mutations and files as arguments 2026-10-26 12:38:44 +01:00
timing.mjs fix(tests): the post-compact hook test takes its child timeout from the shared timing helper 2026-10-15 15:43:36 +02:00