fix: small honesty batch from the beta.4 audit (#376)

(а) title: null gets the same compact frame as title: '' — YAML 'title:'
with no value parses as null, the owner's decision makes them synonyms.
(б) the guides state that room labels are inert in the Background editor.
(г) furniture strokes skip the flat-camera compensation in the labs iso
projection, tracking ordinary decor there.
(д) TESTING.md notes the light_pools opt-in for static room cards.
(е) the space-card dispose gate mirrors the strict === true render gate.

User-Visible: yes
Issue: #376
This commit is contained in:
Codex
2026-08-29 21:54:29 +03:00
parent 8fda392734
commit 2e32cbcb38
31 changed files with 254 additions and 163 deletions
+22
View File
@@ -735,6 +735,28 @@ const MUTANT_DEFINITIONS = [
replace: " this._persistDecorStyle();\n }, 0);",
}],
},
{
id: 'space-card-null-title-compact-narrowed',
guard: 'node --test test/space-card-audit-lows.test.mjs',
because: 'YAML `title:` with no value is null — narrowing the compact condition back to '
+ "'' alone silently reopens the #372 header strip for those configs (#376а)",
patches: [{
file: 'src/space-card.ts',
find: " compactTopFrame: this._config.title === '' || this._config.title === null,",
replace: " compactTopFrame: this._config.title === '',",
}],
},
{
id: 'furniture-stroke-iso-camera-mismatch',
guard: 'node --test test/furniture-stroke-contract.test.mjs',
because: 'the stroke compensation models the flat camera; applying it in the labs iso '
+ 'projection diverges furniture from ordinary decor by a wrong-camera factor (#376г)',
patches: [{
file: 'src/houseplan-card.ts',
find: " const furnitureScreenScale = this._renderProjection === 'iso' ? 1 : furniturePlanScreenScale(",
replace: " const furnitureScreenScale = furniturePlanScreenScale(",
}],
},
{
id: 'opening-light-quantum-identity',
guard: 'node --test --test-name-pattern="#366" test/logic.test.mjs',