Release v1.67.0-beta.1 candidate

Package the reviewed post-v1.66 Plan precision, geometry durability, backup, ordering, and marker-deduplication work as the first v1.67 prerelease. Versions, production bundles, bilingual changelogs, release notes, status, and documentation provenance are synchronized.

Issue: #199
Issue: #220
Issue: #223
Issue: #224
Issue: #225
Issue: #226
Issue: #228
Issue: #229
Issue: #230
Issue: #233
Issue: #234
Issue: #238
Issue: #239
User-Visible: yes
This commit is contained in:
Sergey Matyunin
2026-08-22 17:18:20 +03:00
parent a44b664311
commit dcb752db73
13 changed files with 38 additions and 34 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ PLAN_ORPHAN_TTL_S = 3600
SCHEDULED_GRACE_S = 30 * 24 * 3600
FILES_DIR = "houseplan/files"
CONF_ADMIN_ONLY = "admin_only"
VERSION = "1.66.0"
VERSION = "1.67.0-beta.1"
# Portable backup format. This is deliberately independent from the Home
# Assistant Store version above: storage migrations and files exported by a
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -16,5 +16,5 @@
"issue_tracker": "https://github.com/Matysh/houseplan-card/issues",
"requirements": [],
"single_config_entry": true,
"version": "1.66.0"
"version": "1.67.0-beta.1"
}
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+2
View File
@@ -2,6 +2,8 @@
## Unreleased
## v1.67.0-beta.1 — 2026-08-22
- “Optimize plans” now verifies the exact preview candidate with the same wall,
opening, partition, column and floor geometry builders used by the card. If
any space cannot be built safely, the preview names up to three affected
+2
View File
@@ -8,6 +8,8 @@
## Не выпущено
## v1.67.0-beta.1 — 2026-08-22
- «Оптимизировать планы» теперь проверяет точный кандидат из предпросмотра теми
же построителями стен, проёмов, перегородок, колонн и пола, которыми пользуется
карточка. Если геометрию хотя бы одного пространства нельзя безопасно
+9 -9
View File
@@ -1,18 +1,18 @@
<!-- release: v1.66.0 -->
<!-- release: v1.67.0-beta.1 -->
## Основное
- Текстовые маркеры устройств снова получают капсульную внешнюю обводку вместо овальной.
- Glow больше не исчезает во всём пространстве из-за floating-point шума или одного некорректного контура комнаты.
- Закрытые замки теперь зелёные, открытые — красные; иконки на оранжевой подложке согласованы со светлой и тёмной темами.
- Редактор плана точнее рисует и измеряет стены, комнаты и проёмы; внешний вид плана больше не зависит от точности сетки, а новые пространства используют шаг 1 см или 1 дюйм.
- «Оптимизировать планы» безопасно проверяет итоговую геометрию, сращивает лишние отрезки и очищает координаты; все записи теперь защищены от floating-point шума.
- Пространства можно переставлять, PDF-бэкапы снова импортируются, а явно размещённая сущность больше не дублируется родительским устройством.
- Мелкие исправления и улучшения.
## Highlights
- Text device markers once again use a capsule-shaped outer outline instead of an ellipse.
- Glow no longer disappears from an entire space because of floating-point noise or one malformed room outline.
- Locked states are now green and unlocked states red; glyphs on orange cores follow the light and dark themes consistently.
- Plan editing now draws and measures walls, rooms and openings more precisely; plan appearance no longer depends on grid precision, and new spaces use a 1 cm or 1 inch step.
- “Optimize plans” safely verifies final geometry, merges redundant segments and cleans coordinates; every write is now protected from floating-point noise.
- Spaces can be reordered, PDF backups import again, and an explicitly placed entity no longer duplicates its parent device.
- Small fixes and improvements.
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.66.0/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.66.0/docs/CHANGELOG.md)
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.67.0-beta.1/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.67.0-beta.1/docs/CHANGELOG.md)
+2 -2
View File
@@ -21,8 +21,8 @@ metadata). Only an explicit owner-approved emergency hotfix may skip this gate.
| Item | State |
|---|---|
| Version | **v1.66.0** everywhere (manifest, const.py, package.json, CARD_VERSION) — stable promotion of the published v1.66.0-beta.1 product line |
| Current local cycle | Post-v1.66.0 Unreleased development includes reliable Plan drawing (#228): exact Shift rays, ambiguous-node blocking, active axis/node chrome, room creation from an existing face with an explicit ≤2 cm repair, and room deletion with Keep/Delete walls consequences. Entity/parent marker deduplication (#226), explicit coordinate maintenance (#223), canonical geometry on every write (#224) and a fail-closed production-geometry preflight for the exact Optimize candidate (#199) are also included. |
| Version | **v1.67.0-beta.1 candidate** everywhere (manifest, const.py, package.json, CARD_VERSION) — first prerelease of the v1.67 line |
| Current local cycle | v1.67.0-beta.1 packages thirteen reviewed changes after v1.66.0: precision and safety work for Plan drawing, dimensions, wall chains and grid scale (#228, #230, #233, #234, #238, #239); fail-closed Optimize and canonical persisted geometry (#199, #223, #224, #229); plus space ordering, PDF-backup import and entity/parent marker deduplication (#220, #225, #226). Publication remains gated by the full exact-SHA Validate. |
| Hidden Labs Stage | #89 Stage 1 ships in v1.63.0-beta.1. #122 Stage 2 ships in v1.64.0 and evolves the same hidden, expiring `iso` experiment with matte walls, a low exterior floor edge, restrained shared shadows and live vertical door/window/gate panels. Flat remains default; editors and `houseplan-space-card` remain flat; live floor effects and HA actions remain unchanged. Public activation remains a separate task. |
| Workflow | Superseded 2026-08-12: the pre-1.62 rule of "local edits without tests or commits" is **dead** — since release 1.62 every product change follows `PROCESS.md` (issue in `S5-ready`+, branch `issue/<NN>-slug`, trailers on every commit, review pipeline; `AGENTS.md` is the summary). Release mechanics below remain current. A requested pre-release gets a production build plus the smallest targeted unit/smoke set covering the changed surfaces, one tested `dev` commit/tag and a GitHub Release with `prerelease=true`; `main` stays untouched. The complete local frontend/backend/smoke gate runs only before a stable release, after which `main` is fast-forwarded to the exact tested `dev` SHA and the GitHub Release uses `prerelease=false`. Release bodies are short and bilingual (Russian first): only significant user changes get individual bullets, while minor/code-only work is grouped as `Мелкие исправления и улучшения` / `Small fixes and improvements`; every body ends with separate links to the Russian and English changelogs. Detailed RU/EN changelog bullets may link the corresponding closed GitHub Issues; open or partially delivered issues are never presented as shipped. Telegram announcements are sent only for stable releases; beta and RC publication is silent. `docs/RELEASE-NOTES.md` is the current canonical body instance; `npm run release:prerelease -- <tag> --issues=… --yes` is the primary local publication path and the manual `Publish prerelease` workflow is its GitHub-only equivalent once present on `main`. Nothing is copied to the home instance by hand |
| GitHub | https://github.com/Matysh/houseplan-card — [Issues](https://github.com/Matysh/houseplan-card/issues) are the canonical task records; their labels carry priority and workflow status (`PROCESS.md` §9). GitHub Projects is no longer used. `main` carries stable releases; pre-release tags may point directly at `dev`. Work lands on `dev` and is merged into `main` for a stable release, so `dev` is normally equal to or ahead of `main`, never behind. Push via SSH key `ha_jb` (remote git@github.com:…); API releases via the fine-grained PAT in `~/.git-credentials` (Contents R/W, issued 2026-07-23) |
+11 -11
View File
@@ -1,7 +1,7 @@
{
"version": 1,
"fixture": "synthetic-only",
"sourceFingerprint": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceFingerprint": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"captureScriptSha256": "34f2219790d46efd8250e7a1bd829cb8fc0b0547e1260635fefa52407551b41b",
"command": "npm run build && node demo/docs/capture.mjs",
"scenarios": {
@@ -13,7 +13,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "2885f96e348b15ab7c696e56e99bddcd9bb2ee94218a883e5a2155f45f5042aa"
},
"view-touch": {
@@ -24,7 +24,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "f62d8af3617c00a5e99511bd765980d2e27badf25047a1be34046b64195abe6c"
},
"space-create": {
@@ -35,7 +35,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "c33a7279165a4cec6fa6fadb6fd08cd967e082a17fe101ef442d27d36ae59b6b"
},
"room-contour-close": {
@@ -46,7 +46,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "3d22e1a2a96823e443833e40ea8b93747099b0fae1e9e19315d8789ae4604997"
},
"plan-context-tray": {
@@ -57,7 +57,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "a6c526fede11bc3503fd2384bd4a3f6afa008f481c5c47578f06cae6c81c6f9b"
},
"device-editor": {
@@ -68,7 +68,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "9585b59add4d35b5a6f028ce5b720ef1b77a3f8b19436d192cd1a0e6fc637264"
},
"device-display-preview": {
@@ -79,7 +79,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "cfc317da4628d079a116ff71311fbf06b1eb3b181928a5ea7ba888ab936a5e8b"
},
"background-editor": {
@@ -90,7 +90,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "d7cfe70551d9260169df8efd832e32ed7df99c7f60b55d1fd4a8322bd4c47175"
},
"room-card": {
@@ -101,7 +101,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "029a3e69ec647a8a370d99e6bb7f9225833c526739076022f6b52ba54bff30ea"
},
"device-info": {
@@ -112,7 +112,7 @@
},
"theme": "dark",
"language": "en",
"sourceSha256": "2d8295e95a0721f11075dd0388ab4960c79b480ae199a381d3bbd1086e5e5b34",
"sourceSha256": "e41b7f694e9515cf7662ebd1af7de311495756ead07640a46348e9e966cb2ff6",
"imageSha256": "a06cbf83f09e2f67b3566d7c0b10e973db060c3d20786f26f74ada6a21937c3e"
}
}
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "houseplan-card",
"version": "1.66.0",
"version": "1.67.0-beta.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "houseplan-card",
"version": "1.66.0",
"version": "1.67.0-beta.1",
"license": "MIT",
"dependencies": {
"lit": "^3.1.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "houseplan-card",
"version": "1.66.0",
"version": "1.67.0-beta.1",
"description": "Interactive house plan Lovelace card for Home Assistant",
"license": "MIT",
"type": "module",
+1 -1
View File
@@ -296,7 +296,7 @@ import {
} from './space-order';
import { applyOpeningMoves, mergeCollinearPartitions, spaceMergeGeometry } from './wall-merge';
const CARD_VERSION = '1.66.0';
const CARD_VERSION = '1.67.0-beta.1';
const DISPLAY_LABEL_KEYS: Record<DeviceDisplayMode, I18nKey> = {
badge: 'display.badge',
icon_ripple: 'display.icon_ripple',