Files
houseplan-card/dist/houseplan-assets.json
T
Claude 7df2740f1c feat(furniture): пакет 0.4.0 — 60 дизайнерских символов вместо 44 плюс 12 примитивов
Встроенная библиотека мебели была смешанной: 44 предмета рисовал дизайнер, а
12 — код, прямоугольниками и эллипсами в unit box. Они выбивались из стиля, и
три категории меню (`computer`, `hood`, `oven`) вообще не открывались, потому
что вида сверху для них не было.

Пакет 0.4.0 перерисовывает все 56 существующих публичных ID и добавляет четыре
новых: `computer`, `hood`, `oven`, `cactus`. Каталог становится равен поставке:
60 символов, 32 непустые категории.

Совместимость. Ни один сохранённый план не мигрирует: положение, размер,
поворот, отражение, цвет, прозрачность и толщина линии не трогаются, а
default-размеры всех 56 прежних ID совпадают со старыми до числа — таблица
зашита в `test/furniture.test.mjs`, чтобы сдвиг было видно тестом, а не глазами.

Ловушка, ради которой примитивы удалены целиком. Библиотека собиралась союзом
каталога и `LEGACY_FURNITURE`, и обе половины несли ОДНИ И ТЕ ЖЕ публичные ID.
`BY_ID` — это `Map`, она оставляет последнюю запись, поэтому примитив молча
побеждал дизайнерский рисунок, который его заменял: задача выглядит выполненной,
12 предметов не обновились, ни один существующий тест этого не видит. Поэтому
`LEGACY_FURNITURE`, `RETAINED_IDS`, тип `Prim`, `box()` и `primitivePathD`
удалены, а на дубликаты в каталоге стоит тест и мутант.

Два продуктовых решения владельца (#593):

- `cactus` живёт в категории `plant`, а не `exercise`, как предлагал пакет:
  плитка «Тренажёр» рисует тренажёр, и открывать её на кактус — врать о
  содержимом палитры. `exercise` остаётся скрытой пустой категорией, непустых
  становится 32, а не 33;
- при отказе ленивого чанка с рисунками не рисуется НИЧЕГО. Прежде 12
  примитивов рисовались всегда, и `docs/FURNITURE.md` это обещал; обещание
  снято. Это единственное место, где задача ухудшает наблюдаемое поведение, и
  оно проверяется смоком, а не словом.

Бюджеты. Ревью ТЗ показало, что «бюджет ленивого графа защищён» было
заявлением без гейта: размеры печатались в отчёт и ни с чем не сравнивались.
Добавлены `lazyGraphCeilingViolation` и два настоящих потолка со своим мутантом.
Стартовый граф ушёл ниже полосы, поэтому `INITIAL_VIEW_GZIP_CEILING` опущен
292 400 → 291 400 — вторая половина храповика, без которой выигрыш отыграется.

Провенанс. Документ пакета воссоздан под 0.4.0: грант владельца, имя архива и
его SHA-256. Это единственная исполнимая защита от повторения истории #159, и
она не ослаблена — число проверок в тесте не уменьшилось, а мутант подменяет
хеш и обязан её покраснить.

Свидетели: пять новых мутантов, новая golden-сцена `furniture-new-symbols-light`
для четырёх новых ID, матрица 63 → 64. Шестой мутант правится, а не добавляется:
`furniture-placement-needs-art` ссылался на удалённое поле `g` и переставал
компилироваться — раннер честно отличал это от «пойман» и отчитывался
setup-failure. Ложь мутанта осталась прежней по смыслу, убрана только ветка про
примитив.

i18n: 7 ключей × 4 локали. `furn.cat_exercise` не добавлен — категория скрыта.

Issue: #593
User-Visible: yes
2026-09-19 13:38:49 +03:00

298 lines
9.9 KiB
JSON

{
"schema": 1,
"fingerprint": "b468bec31a4d35a4630025ee2489e4187921a21b8f95e5abaaaace1921cfa3d8",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-CK7KNP4B.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 290836,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-CK7KNP4B.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 292359,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2325,
"lazyFiles": [
"houseplan-assets/backdrop-pick-DqssWRMU.js",
"houseplan-assets/de-DHs-xkgD.js",
"houseplan-assets/editor-v_hhQ3R4.js",
"houseplan-assets/fr-BdIFyCIL.js",
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"houseplan-assets/houseplan-editor-runtime-BTZPftx5.js",
"houseplan-assets/houseplan-onboarding-runtime-BE6dwLJ2.js",
"houseplan-assets/hp-zigbee-topology-overlay-DnFzdpec.js",
"houseplan-assets/iso-scene-render-MSqpZfmO.js",
"houseplan-assets/live-interaction-runtime-CxkX2LMW.js",
"houseplan-assets/pdf-export-CdUPKBCc.js",
"houseplan-assets/summary-panel-runtime-loaded-pjWn0aEE.js",
"houseplan-assets/zigbee-topology-Cq1qwIGM.js",
"houseplan-assets/zigbee-topology-runtime-D-SGhZyY.js"
],
"lazyGzipBytes": 438306,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-DqssWRMU.js",
"houseplan-assets/editor-v_hhQ3R4.js",
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"houseplan-assets/houseplan-editor-runtime-BTZPftx5.js",
"houseplan-assets/zigbee-topology-Cq1qwIGM.js"
],
"lazyEditorGzipBytes": 221927,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-DqssWRMU.js",
"houseplan-assets/houseplan-onboarding-runtime-BE6dwLJ2.js"
],
"lazyOnboardingGzipBytes": 13916,
"lazyLocaleFiles": [
"houseplan-assets/de-DHs-xkgD.js",
"houseplan-assets/fr-BdIFyCIL.js"
],
"lazyLocaleGzipBytes": 55714,
"lazyIsometricFiles": [
"houseplan-assets/iso-scene-render-MSqpZfmO.js"
],
"lazyIsometricGzipBytes": 15014,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js"
],
"lazyFurnitureArtGzipBytes": 16943,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"houseplan-assets/pdf-export-CdUPKBCc.js"
],
"lazyPdfGzipBytes": 126814,
"files": [
{
"path": "houseplan-assets/backdrop-pick-DqssWRMU.js",
"sha256": "be8b52604ef15d12df876086e6d6b0d89954a9ec15096a665639c5c0f8a6e5e4",
"rawBytes": 19959,
"gzipBytes": 6880,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-DHs-xkgD.js",
"sha256": "edc240d002b45a2e3eb540923f0e83708b9a3962f382e366acf47a67b5ce94d2",
"rawBytes": 93029,
"gzipBytes": 28149,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-v_hhQ3R4.js",
"sha256": "d27e0fbee2b8e2b4250cd2a27c553775a2cac76b2c75905b85152098182369ea",
"rawBytes": 3833,
"gzipBytes": 1584,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-BdIFyCIL.js",
"sha256": "b3b4ec9c60bf457ecad7ee2d77db4fecd2bcd6520336efb5c2d7b0421d169f91",
"rawBytes": 95375,
"gzipBytes": 27565,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"sha256": "469d647ee6d66115337717bb9adc44495a26cd1ffda70ce64911c46e034af710",
"rawBytes": 52033,
"gzipBytes": 16943,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-CK7KNP4B.js",
"sha256": "c19ca1cf03359ebad6978a38db9c2ae33b8fca264f6d49ddfe9df3c7b15f4b32",
"rawBytes": 1033355,
"gzipBytes": 290034,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-DHs-xkgD.js",
"houseplan-assets/editor-v_hhQ3R4.js",
"houseplan-assets/fr-BdIFyCIL.js",
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"houseplan-assets/houseplan-editor-runtime-BTZPftx5.js",
"houseplan-assets/houseplan-onboarding-runtime-BE6dwLJ2.js",
"houseplan-assets/hp-zigbee-topology-overlay-DnFzdpec.js",
"houseplan-assets/iso-scene-render-MSqpZfmO.js",
"houseplan-assets/live-interaction-runtime-CxkX2LMW.js",
"houseplan-assets/pdf-export-CdUPKBCc.js",
"houseplan-assets/summary-panel-runtime-loaded-pjWn0aEE.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-BTZPftx5.js",
"sha256": "491b655a8657e313ead56a6cf61be3ad37e85a35e6ca7437c14b65c066f1514d",
"rawBytes": 692866,
"gzipBytes": 189091,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-DqssWRMU.js",
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"houseplan-assets/houseplan-card-CK7KNP4B.js",
"houseplan-assets/zigbee-topology-Cq1qwIGM.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-D-SGhZyY.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-BE6dwLJ2.js",
"sha256": "d5c28996609f16dc719b6c11c4c61139955c29bbca81ebecb00e585da75d51f8",
"rawBytes": 28287,
"gzipBytes": 7036,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-DqssWRMU.js",
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-DnFzdpec.js",
"sha256": "3f4909ab0c0ce69933671b63e3f6afe1e91a4ddc8ce7266166c8398c417302fe",
"rawBytes": 10759,
"gzipBytes": 3687,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js",
"houseplan-assets/zigbee-topology-Cq1qwIGM.js",
"houseplan-assets/zigbee-topology-runtime-D-SGhZyY.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-MSqpZfmO.js",
"sha256": "f53c622bce56135962f4964e27eabe0774e7f1fbf3d5b0aa7d15c426d31cefbb",
"rawBytes": 44439,
"gzipBytes": 15014,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-CxkX2LMW.js",
"sha256": "cb973beaeedc0f29395dfad95faee2325d352a3ea6e65d16eaa8c3e2ced79071",
"rawBytes": 8216,
"gzipBytes": 3205,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-CdUPKBCc.js",
"sha256": "eea4af5a8133bc1a93e758176e07bb3f7156bc33ecf510c50e221da25475fd14",
"rawBytes": 236247,
"gzipBytes": 109871,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-Bhgrr-iO.js",
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-BjygV2yH.js",
"sha256": "4baf834c4ee197a2c2f63cf86a4104be043ef78d74088850627f957e12fa5f39",
"rawBytes": 14824,
"gzipBytes": 3399,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js",
"houseplan-assets/summary-panel-runtime-loaded-pjWn0aEE.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-RWgqMkxu.js",
"sha256": "f472fd9d4da60efef3a64638a400b5b06ebadd1def9cb808b463c4b81819207c",
"rawBytes": 2611,
"gzipBytes": 1307,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-pjWn0aEE.js",
"sha256": "223ac67537f7caf34b98aef0f438584b8ea59fabcea93ef9d402e420025f26ad",
"rawBytes": 73367,
"gzipBytes": 20089,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-BjygV2yH.js",
"houseplan-assets/summary-panel-metrics-RWgqMkxu.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-Cq1qwIGM.js",
"sha256": "395085420b65898814d9720c5d840bad6ff43fbd2d16562ac7cc2da57dbc9862",
"rawBytes": 18962,
"gzipBytes": 7429,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-D-SGhZyY.js",
"sha256": "d695f410d7ceeffd1bc653eb46e85db43f04366a5b4b9514b5fb51ac405d22dc",
"rawBytes": 3942,
"gzipBytes": 1763,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js",
"houseplan-assets/zigbee-topology-Cq1qwIGM.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "6c7b1ad3e446a38b85fa91c86340fd731c44c92b707f00906460190608b8d7f5",
"rawBytes": 1205,
"gzipBytes": 802,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "434777e6031a824cb5491500942f72b0fa4ca011a22b73a8b9c8e973a73f9c00",
"rawBytes": 6165,
"gzipBytes": 2325,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-CK7KNP4B.js"
],
"dynamicImports": []
}
]
}