mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-04 05:41:34 +00:00
Источники радара сравниваются по смыслу, а не по тексту
Гард `keepTwoPoint` решал, сохранять ли двухточечную калибровку, сравнением `JSON.stringify`, то есть текста. Порядок ключей `sources` при этом меняет сам билдер: `slots`/`ranges`/`zones`/`occupancy_entity`/`count_entity` он удаляет и дописывает заново, а `availability_entity` остаётся на месте и уезжает в начало. Конфиг, только что записанный этим же билдером, при следующем открытии сравнивался неравным — и радар с `availability_entity` терял `refs` и `rms_cm`, получая `method: manual`, при первом же обычном сохранении. Сравнение стало каноничным по порядку ключей объектов и осталось чувствительным к порядку элементов массивов: позиция слота — это его `target_N`. Проекция не затронута — она считается от `mount`, `cell_cm` и `mirror`. Issue: #567 User-Visible: no
This commit is contained in:
@@ -72,6 +72,18 @@ function relocateEditorPatch(patch, cardSource, editorSource) {
|
||||
// `find` обязан встречаться в файле ровно один раз: патч, который ложится «куда
|
||||
// попало», проверяет не то, что объявлен проверять. Это контролирует --check.
|
||||
const MUTANT_DEFINITIONS = [
|
||||
{
|
||||
id: 'radar-sources-compared-as-text',
|
||||
guard: 'node --test --test-name-pattern="#567" test/radar-editor.test.mjs',
|
||||
because: '#567: порядок ключей `sources` меняет сам билдер, поэтому текстовое сравнение '
|
||||
+ 'ложно отвечает «источники изменились» и радар молча теряет refs и rms_cm '
|
||||
+ 'двухточечной калибровки при первом же обычном сохранении',
|
||||
patches: [{
|
||||
file: 'src/radar-editor.ts',
|
||||
find: ' && canonicalSources(original.sources) === canonicalSources(sources)',
|
||||
replace: ' && JSON.stringify(original.sources) === JSON.stringify(sources)',
|
||||
}],
|
||||
},
|
||||
{
|
||||
id: 'household-marker-drops-keyboard-reach',
|
||||
guard: 'node demo/smoke_household_journeys.mjs',
|
||||
|
||||
Reference in New Issue
Block a user