fix(walls): bound multi-wall repairs to finite rays

Issue: #271
User-Visible: yes
This commit is contained in:
Sergey Matyunin
2026-08-23 21:06:20 +03:00
parent ffbbb217b5
commit e3b635aba2
15 changed files with 278 additions and 45 deletions
+13
View File
@@ -292,6 +292,19 @@ export const MUTANTS = [
+ ' else if (envelope) localInside = intersection(localInside, envelope);',
}],
},
{
id: 'multi-wall-finite-ray-disabled',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+ '&& node --test --test-name-pattern="issue #271 keeps finite" '
+ 'test/wall-thickness.test.mjs',
because: 'a degree-3 repair must stop at every real interval endpoint; restoring the '
+ 'node-wide 8H rectangle recreates the phantom wall and light barrier from #271',
patches: [{
file: 'src/wall-thickness.ts',
find: ' const supportExtent = Math.min(extent, support.length);',
replace: ' const supportExtent = extent;',
}],
},
{
id: 'wall-exact-span-fallback-disabled',
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
+6 -2
View File
@@ -43,11 +43,15 @@ export const SMOKE_LINKS = [
{
// #261: the browser observes the canonical wall/paper paths and downstream
// geometries, while the pure bevel helpers remain internal to the bundle.
symbols: ['multiWallBevelTriangles', 'multiWallBevelTrianglesAt'],
symbols: [
'multiWallBevelTriangles', 'multiWallBevelTrianglesAt',
'buildMultiWallNodeMap', 'MultiWallNodeRay', 'MultiWallNodeRaySupport',
],
smokes: ['smoke_junction_patch_resilience.mjs', 'smoke_multiwall_junction.mjs'],
because: 'the #197 smoke probes the repaired exterior wedge across Plan, View, kiosk, '
+ 'Static, hidden Iso and light barriers, while the #249 smoke proves the old excessive '
+ 'wedge stays empty; neither browser scenario calls the pure bevel helpers by name',
+ 'wedge stays empty, while #271 also proves finite ray endpoints across Plan, Static, '
+ 'hidden Iso and light barriers; the browser scenarios call none of the pure helpers by name',
},
{
// #258: the browser sees only the resulting path/caches; it cannot call