mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
feat: add open passage openings
Validate / hacs (push) Failing after 15s
Validate / docs (push) Failing after 20s
Validate / provenance (push) Successful in 54s
Validate / process-gate (push) Failing after 50s
Validate / changes (push) Successful in 46s
Validate / hassfest (push) Failing after 14s
Validate / frontend (push) Successful in 5m54s
Validate / backend (push) Failing after 8m1s
Validate / smoke (push) Failing after 4m25s
Validate / golden (push) Failing after 4m26s
Validate / performance_smoke (push) Failing after 8m39s
Validate / hacs (push) Failing after 15s
Validate / docs (push) Failing after 20s
Validate / provenance (push) Successful in 54s
Validate / process-gate (push) Failing after 50s
Validate / changes (push) Successful in 46s
Validate / hassfest (push) Failing after 14s
Validate / frontend (push) Successful in 5m54s
Validate / backend (push) Failing after 8m1s
Validate / smoke (push) Failing after 4m25s
Validate / golden (push) Failing after 4m26s
Validate / performance_smoke (push) Failing after 8m39s
Issue: #157 User-Visible: yes
This commit is contained in:
@@ -231,6 +231,65 @@ export const MUTANTS = [
|
||||
replace: "${false ? html`<span class=\"backupplanonlystatus\">${this._t('backup.plan_only_preview')}</span>` : nothing}",
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'passage-visible-geometry-door-fallback',
|
||||
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
|
||||
+ '&& node --test test/opening-symbol.test.mjs',
|
||||
because: 'если явную пустую ветку passage убрать, общий fallback рисует дверную створку; '
|
||||
+ 'renderer test обязан требовать буквально пустую видимую геометрию',
|
||||
patches: [{
|
||||
file: 'src/render/opening-symbol.ts',
|
||||
find: " if (spec.type === 'passage') return svg``;",
|
||||
replace: " if (false && spec.type === 'passage') return svg``;",
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'passage-light-classifier-removed',
|
||||
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
|
||||
+ '&& node --test test/light-visibility.test.mjs',
|
||||
because: 'потеря passage из явного allowlist снова делает внутренний открытый проём '
|
||||
+ 'непрозрачным; тест одновременно сохраняет fail-dark для неизвестных типов',
|
||||
patches: [{
|
||||
file: 'src/logic.ts',
|
||||
find: " return type === 'door' || type === 'gate' || type === 'passage';",
|
||||
replace: " return type === 'door' || type === 'gate';",
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'passage-import-validator-bypassed',
|
||||
guard: 'node scripts/backend-test-guard.mjs invalid_passage_import',
|
||||
because: 'импорт является недоверенным новым content и не имеет broken-read исключения; '
|
||||
+ 'forged contact/lock обязан быть отклонён до создания preview',
|
||||
patches: [{
|
||||
file: 'custom_components/houseplan/import_export.py',
|
||||
find: ' validate_opening_passages(incoming_config, validate_all=True)',
|
||||
replace: ' if False:\n validate_opening_passages(incoming_config, validate_all=True)',
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'passage-static-door-cut-leak',
|
||||
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
|
||||
+ '&& node --test test/space-geometry.test.mjs',
|
||||
because: 'Static обязан менять masonry только для нового passage; добавление обычной двери '
|
||||
+ 'в cuts сломает сохранённую совместимость старых планов',
|
||||
patches: [{
|
||||
file: 'src/space-geometry.ts',
|
||||
find: " if (opening?.type !== 'passage') continue;",
|
||||
replace: " if (opening?.type !== 'passage' && opening?.type !== 'door') continue;",
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'passage-iso-door-fallback',
|
||||
guard: 'npx tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs '
|
||||
+ '&& node --test test/iso-openings.test.mjs',
|
||||
because: 'без zero-leaf branch скрытая изометрия превращает passage в дверь; '
|
||||
+ 'basis test обязан ловить любое появление панели независимо от live state',
|
||||
patches: [{
|
||||
file: 'src/iso-openings.ts',
|
||||
find: " if (input.type === 'passage') {",
|
||||
replace: " if (false && input.type === 'passage') {",
|
||||
}],
|
||||
},
|
||||
];
|
||||
|
||||
// --- механика ---------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user