fix: make the handle paint order a named decision and mutate it (#400)

CODE-REVIEW-400-r1 Medium: the registered mutant edited a comment, not
the order — it could not reproduce the regression AC1 exists to catch.
That is the same defect class this issue is fixing elsewhere, in my own
guard.

The order is now HANDLE_PAINT_ORDER, a named constant, because it IS the
hit priority rather than an accident of where the blocks sit in the
template. The mutant flips that constant, so it reproduces exactly the
behaviour the audit found.

Also: smoke_furniture picked the SE corner as handles[3], an index that
silently depended on the old paint order — CI shard 3 went red on four
checks. It now selects by role (corner handles, third of four), which is
what the test actually means.

User-Visible: no
Issue: #400
This commit is contained in:
Codex
2026-08-31 08:14:55 +03:00
parent f07e3c54ff
commit d153b20a1d
3 changed files with 41 additions and 24 deletions
+5 -2
View File
@@ -754,8 +754,11 @@ const MUTANT_DEFINITIONS = [
+ 'the one that cannot be reached any other way (#400 AC1)',
patches: [{
file: 'src/houseplan-card.ts',
find: ' ${/* #400: corners LAST.',
replace: ' ${/* mutant: corners no longer last.',
// Порядок — именованное решение, поэтому мутант меняет ЕГО, а не текст
// рядом с ним: прежний патч правил комментарий и регрессию не
// воспроизводил (находка CODE-REVIEW-400-r1).
find: "const HANDLE_PAINT_ORDER = ['edges', 'corners'] as const;",
replace: "const HANDLE_PAINT_ORDER = ['corners', 'edges'] as const;",
}],
},
{