voyage/tests
Kjell Tore Guttormsen ff46f57a89
fix(gate): the threat model applies to new findings only (decision 221)
Undone: item 2 of the Part 2 fix round (1be961a). recordVerdict no longer
drops a copy rule A carried as counted when a finding with the same id is
backed this round, and no longer recomputes the counts, `lowered` and the
stop-rule summary for it; the isLowered helper and the SEVERITIES import it
needed are gone. Why: the id is (file, line, rule_key), so a DIFFERENT
backed security finding at the same line and key knocked a counted security
finding inside the threat model out of the count (round 2 PASS, its text
gone), against decisions 218 and 220.

The rule now, as decided: the threat model applies only to this round's
new findings (the deduped findings, before countRound); a finding counted
in an earlier round stays counted, through rule A's carry, until a reviewer
marks it resolved. The gate never counts less. Items 1 and 3-8 of the fix
round are untouched.

Tests: the fix-round case for item 2 now asserts the decided rule (the
carried copy stays counted, BLOCK, the stop rule fires not-fewer, the gate
stops); a new case pins that a different backed finding at the same line
and key leaves the counted one, with its own text, in the count.

The plan-gate header and the known_outside comment, and Handover 4's
known_outside sentence, state the rule. CHANGELOG Unreleased, Known issues:
a finding counted earlier stays counted when an Outside: line approved
later puts it outside, or when it moves to another plan line; the way on is
the operator's choice at the stop rule.

Part 2 of the E plan, decision 221.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 12:17:57 +01:00
..
commands docs(cleanup): R-b CHANGELOG, scope-aware full swarm, stale wording 2026-11-07 21:16:47 +01:00
fixtures chore(cleanup): R-b R3 — profiles, phase signals and the effort dialog removed, one fixed path per command 2026-11-07 21:12:57 +01:00
helpers refactor(cleanup): simplify pass on the R-a diff 2026-11-07 13:31:30 +01:00
hooks chore(cleanup): R-b R2 — STORM loop, cap hook and the --engine research choice removed 2026-11-07 20:32:38 +01:00
lib fix(gate): part 2 verifier findings — non-object findings, carried backed copy, rule_keys, marks, approval prose, brief_path, engine put-back once 2026-11-08 10:50:20 +01:00
review chore(cleanup): R-b R3 — profiles, phase signals and the effort dialog removed, one fixed path per command 2026-11-07 21:12:57 +01:00
scripts chore(cleanup): R-b R2 — STORM loop, cap hook and the --engine research choice removed 2026-11-07 20:32:38 +01:00
validators fix(gate): the threat model applies to new findings only (decision 221) 2026-11-08 12:17:57 +01:00
e2e-fix-round-4-5b2-a.sh fix(hooks): the args-heredoc guard blocks a heredoc operator a second shell would read, with a bypass corpus 2026-11-02 09:57:28 +01:00
guard-bypass-corpus-4-5b2-a.sh fix(hooks): the args-heredoc guard blocks a heredoc operator a second shell would read, with a bypass corpus 2026-11-02 09:57:28 +01:00