Matysh
bdae05dafc
Merge issue #164 implementation into dev
...
The previous merge (6beb404 ) took a stale local ref and brought only the
specification; this one brings the implementation and the error-channel fix.
Issue: #164
User-Visible: no
2026-08-17 12:06:51 +03:00
Matysh
6beb40435f
Merge issue #164 into dev
...
Validate / docs (push) Successful in 24s
Validate / provenance (push) Successful in 46s
Validate / changes (push) Successful in 44s
Validate / process-gate (push) Successful in 51s
Validate / hacs (push) Failing after 17s
Validate / hassfest (push) Failing after 17s
Validate / frontend (push) Successful in 5m1s
Validate / performance_smoke (push) Failing after 1m46s
Validate / smoke (push) Failing after 2m1s
Validate / backend (push) Failing after 7m28s
Validate / golden (push) Failing after 8m10s
Issue: #164
User-Visible: no
2026-08-17 08:55:51 +03:00
Matysh
df5be154ee
ci: sync the process workflow into dev
...
Keeps dev identical to main so the broken revision does not come back at the
next promotion. The workflow only fires from the default branch, but a stale
copy here would overwrite the working one.
Issue: #114
User-Visible: no
2026-08-13 13:05:13 +03:00
Matysh
39dd5de857
fix: restore the executable bit on commit-msg, mirror the turn limit
...
Pushing the hook through the GitHub contents API dropped its mode to 100644.
assertHookMode caught it on the next commit, which is the gate working as
intended — a non-executable commit-msg would simply never run.
Also brings dev in line with the turn-limit fix already on main.
Issue: #116
User-Visible: no
2026-08-13 12:38:13 +03:00
Matysh
b9062c1740
docs: standing permission to push the task branch
...
The reviewer runs in CI and can only read the remote, so an unpushed spec or
commit either stalls the review or points it at the wrong tree. Pushing
issue/<NN>-slug now needs no command; dev, main, merges, tags and releases
still do.
Issue: #114
User-Visible: no
2026-08-13 12:04:39 +03:00
Matysh
9146b4c357
ci: fix OIDC permission and review the issue branch
...
The first live run failed with "Could not fetch an OIDC token": the action
needs id-token: write to authenticate the GitHub App.
The reviewer also checked out dev, where the material under review does not
exist yet — specs and code are committed to issue/<NN>-slug. The job now
switches to that branch when it is pushed, and warns loudly when it is not.
Issue: #114
User-Visible: no
2026-08-13 12:02:31 +03:00
Matysh
97d932a384
ci: fix OIDC permission and review the issue branch
...
The first live run failed with "Could not fetch an OIDC token": the action
needs id-token: write to authenticate the GitHub App.
The reviewer also checked out dev, where the material under review does not
exist yet — specs and code are committed to issue/<NN>-slug. The job now
switches to that branch when it is pushed, and warns loudly when it is not.
Issue: #114
User-Visible: no
2026-08-13 12:02:28 +03:00
Matysh
9ad01be813
ci: event-driven process pipeline for spec and code review
...
Adds .github/workflows/process.yml. A status label change is the trigger:
S4-spec-review runs the spec review, S7-code-review runs the code review,
and the verdict decides the next label. Only a green verdict advances;
yellow and red return the task to its author. Cycle limits (4, or 2 on the
light track) are counted from the verdicts already posted on the issue.
Labels are moved with HP_PROCESS_TOKEN, not GITHUB_TOKEN, so the change
emits an event and the chain continues.
Issue: #114
User-Visible: no
2026-08-13 11:34:01 +03:00
Matysh
495a99872b
ci: event-driven process pipeline for spec and code review
...
Adds .github/workflows/process.yml. A status label change is the trigger:
S4-spec-review runs the spec review, S7-code-review runs the code review,
and the verdict decides the next label. Only a green verdict advances;
yellow and red return the task to its author. Cycle limits (4, or 2 on the
light track) are counted from the verdicts already posted on the issue.
Labels are moved with HP_PROCESS_TOKEN, not GITHUB_TOKEN, so the change
emits an event and the chain continues.
Issue: #114
User-Visible: no
2026-08-13 11:33:21 +03:00
Matysh
53da8a1773
docs: align AGENTS.md and PROCESS.md with the actual process
...
Publishes the 538-line process canon into the repository, replacing the
51-line provenance stub that pointed at a non-existent .agents/PROTOCOL.md.
Rewrites AGENTS.md: product context first, labels as the canonical status,
rule #1 with the status check, change classes, trailers, push cadence,
Codex/Claude roles and review cycle limits.
Issue: #112
User-Visible: no
2026-08-13 10:30:00 +03:00
Matysh
f339398f56
build: finalize v1.62.0
...
Validate / golden (push) Failing after 9m28s
Validate / provenance (push) Successful in 42s
Validate / hacs (push) Failing after 15s
Validate / hassfest (push) Failing after 16s
Validate / frontend (push) Successful in 7m39s
Validate / backend (push) Failing after 8m22s
Validate / performance_smoke (push) Failing after 12m22s
Validate / smoke (push) Failing after 23m26s
Full Performance / performance (push) Failing after 44m19s
User-Visible: no
Issue: #108
2026-08-13 01:05:25 +03:00
Matysh
ab609ab165
test: honor baseline fingerprint contracts
...
User-Visible: no
Issue: #108
2026-08-13 01:05:19 +03:00
Matysh
e2b0fbfc06
build: promote v1.62.0
...
User-Visible: yes
Issue: #108
2026-08-13 00:54:10 +03:00
Matysh
ce40c57a3b
build: prepare v1.62.0-rc.1
...
User-Visible: yes
Issue: #108
2026-08-13 00:35:24 +03:00
Matysh
31d81ad4ef
test: accept v1.62.0-beta.10 golden matrix
...
Release: v1.62.0-beta.10
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/31641638463
User-Visible: no
Issue: #108
2026-08-13 00:23:00 +03:00
Matysh
37032203dd
fix: harden v1.62.0-beta.10 candidate
...
User-Visible: yes
Issue: #108
2026-08-13 00:14:51 +03:00
Matysh
cf77d7d2e1
test: accept beta.9 diagonal opening baseline
...
Issue: #108
User-Visible: no
Release: v1.62.0-beta.9
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/31629590600
2026-08-12 21:56:39 +03:00
Matysh
8e2973fa7a
Release v1.62.0-beta.9 candidate
...
Issue: #108
User-Visible: yes
2026-08-12 21:49:29 +03:00
Matysh
9bb5f7c5a8
test: accept beta.8 visual baselines
...
Issue: #75
Issue: #90
Issue: #98
User-Visible: no
Release: v1.62.0-beta.8
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/31619095298
2026-08-12 19:51:56 +03:00
Matysh
121c9f10b9
Fix default display hint translation
...
Issue: #98
User-Visible: yes
2026-08-12 19:44:22 +03:00
Matysh
661eb784fb
Fix beta.8 validation regressions
...
Issue: #75
Issue: #95
Issue: #98
User-Visible: yes
2026-08-12 19:38:34 +03:00
Matysh
9e74051652
Release v1.62.0-beta.8 candidate
...
Issue: #75
Issue: #76
Issue: #95
User-Visible: yes
2026-08-12 19:18:54 +03:00
Matysh
01980ac3e6
Release v1.62.0-beta.7 candidate
Validate / performance_smoke (push) Failing after 9m34s
Validate / backend (push) Failing after 4m47s
Validate / smoke (push) Failing after 19m8s
Validate / hacs (push) Failing after 10s
Validate / hassfest (push) Failing after 11s
Validate / frontend (push) Successful in 4m20s
Validate / golden (push) Failing after 6m33s
2026-08-12 15:13:38 +03:00
Matysh
36e81e9fb1
Release v1.62.0-beta.6 candidate
2026-08-12 14:07:09 +03:00
Matysh
6d0f97ef82
test: accept beta.5 visual baselines
2026-08-12 13:10:46 +03:00
Matysh
bd9b6a6d75
Stabilize beta.5 transition validation
2026-08-12 13:02:22 +03:00
Matysh
4b03b888ff
Release v1.62.0-beta.5 candidate
2026-08-12 12:43:27 +03:00
Matysh
58d952e94e
test: align beta.4 action smokes
2026-08-12 10:36:10 +03:00
Matysh
5d3f580df0
test: accept beta.4 help icon golden baselines
2026-08-12 10:26:56 +03:00
Matysh
4dc3fdef36
Release v1.62.0-beta.4 candidate
2026-08-12 10:19:51 +03:00
Matysh
8a417539e0
test: align beta.3 action smokes
Validate / hacs (push) Failing after 8s
Validate / hassfest (push) Failing after 8s
Validate / frontend (push) Successful in 3m57s
Validate / backend (push) Failing after 5m9s
Validate / performance_smoke (push) Failing after 1m40s
Validate / golden (push) Failing after 1m44s
Validate / smoke (push) Failing after 12m18s
2026-08-12 02:42:57 +03:00
Matysh
c41231a7ba
Release v1.62.0-beta.3 candidate
2026-08-12 02:33:54 +03:00
Matysh
2158e5d3f6
test: align beta.2 visual and badge gates
Validate / hacs (push) Failing after 44s
Validate / hassfest (push) Failing after 1m19s
Validate / frontend (push) Successful in 4m49s
Validate / golden (push) Failing after 2m9s
Validate / smoke (push) Failing after 2m15s
Validate / backend (push) Failing after 7m27s
Validate / performance_smoke (push) Failing after 6m30s
2026-08-11 22:21:09 +03:00
Matysh
554d2e6544
Release v1.62.0-beta.2 candidate
2026-08-11 22:12:08 +03:00
Matysh
2cf5c2748e
test: accept v1.62.0-beta.1 golden matrix
2026-08-11 19:37:53 +03:00
Matysh
59d028caf7
fix: wrap backup import confirmation
2026-08-11 19:30:56 +03:00
Matysh
4381f65fde
test: restore wall thickness in golden fixture
2026-08-11 19:23:49 +03:00
Matysh
446f33ed31
Release v1.62.0-beta.1 candidate
2026-08-11 19:15:21 +03:00
Matysh
02373bb31f
Release v1.61.0
Validate / performance_smoke (push) Failing after 8m49s
Validate / hacs (push) Failing after 14s
Validate / hassfest (push) Failing after 12s
Validate / frontend (push) Successful in 7m12s
Validate / golden (push) Failing after 6m12s
Validate / backend (push) Failing after 11m16s
Validate / smoke (push) Failing after 25m49s
Full Performance / performance (push) Failing after 53m37s
2026-08-11 08:32:16 +03:00
Matysh
9a4ecbf961
test: keep Linux golden baselines authoritative
2026-08-11 05:44:58 +03:00
Matysh
48eebfd8a5
Release v1.61.0-beta.8 candidate
2026-08-11 05:40:32 +03:00
Matysh
5c5833d69a
fix: stabilize prerelease signing checks
2026-08-11 03:14:56 +03:00
Matysh
a41a75eba5
test: accept visual continuity golden matrix v8
2026-08-11 02:57:05 +03:00
Matysh
6f34c06d74
test: repair persisted golden marker fixture
2026-08-11 02:53:47 +03:00
Matysh
c237baaffd
Release v1.61.0-beta.7 candidate
2026-08-11 02:49:42 +03:00
Matysh
d2bc908280
Release v1.61.0-beta.6 candidate
2026-08-11 01:14:59 +03:00
Matysh
b0c29fb57f
fix: accept skipped prerelease announcement
Validate / hacs (push) Failing after 14s
Validate / hassfest (push) Failing after 11s
Validate / frontend (push) Successful in 4m0s
Validate / backend (push) Failing after 5m37s
Validate / smoke (push) Failing after 2m25s
Validate / golden (push) Failing after 2m23s
Validate / performance_smoke (push) Failing after 35m49s
2026-08-10 18:18:20 +03:00
Matysh
37d71d8cbb
test: accept light-source golden matrix v6
2026-08-10 18:05:04 +03:00
Matysh
f8f1718ad2
Release v1.61.0-beta.5 candidate
2026-08-10 18:01:16 +03:00
Matysh
c8b06996b1
Fix exact-blob prerelease artifacts
Validate / hacs (push) Failing after 15s
Validate / hassfest (push) Failing after 22s
Validate / frontend (push) Successful in 2m41s
Validate / backend (push) Failing after 7m59s
Validate / golden (push) Failing after 6m45s
Validate / smoke (push) Failing after 18m41s
Validate / performance (push) Failing after 2h36m42s
2026-08-10 15:21:18 +03:00
Matysh
1ed281b0dd
Release v1.61.0-beta.4 candidate
2026-08-10 14:32:20 +03:00
Matysh
d55816acaf
test: accept custom fill golden matrix v5
2026-08-10 10:05:05 +03:00
Matysh
cd55a8e897
Release v1.61.0-beta.3 candidate
2026-08-10 09:44:31 +03:00
Matysh
7d152e04f9
test: align smoke contracts with independent Glow
Validate / hacs (push) Failing after 11s
Validate / hassfest (push) Failing after 10s
Validate / frontend (push) Successful in 2m21s
Validate / backend (push) Failing after 8m22s
Validate / golden (push) Failing after 7m32s
Validate / smoke (push) Failing after 16m23s
Validate / performance (push) Failing after 1h35m4s
2026-08-10 00:35:23 +03:00
Matysh
764129a45c
test: accept Glow golden matrix v4
2026-08-10 00:29:26 +03:00
Matysh
fb382bfa11
Release v1.61.0-beta.2 candidate
2026-08-10 00:24:42 +03:00
Matysh
112c260314
Release v1.61.0-beta.1
Validate / hacs (push) Failing after 12s
Validate / hassfest (push) Failing after 13s
Validate / frontend (push) Successful in 3m2s
Validate / golden (push) Failing after 51s
Validate / backend (push) Failing after 6m50s
Validate / smoke (push) Failing after 13m44s
Validate / performance (push) Failing after 24m13s
2026-08-09 21:51:33 +03:00
Matysh
5814cfe0c2
ci: handle first performance-gated main promotion
Validate / smoke (push) Failing after 19m59s
Validate / hacs (push) Failing after 26s
Validate / hassfest (push) Failing after 22s
Validate / frontend (push) Successful in 3m58s
Validate / golden (push) Failing after 1m8s
Validate / backend (push) Failing after 10m47s
Validate / performance (push) Failing after 25m35s
2026-08-09 15:44:05 +03:00
Matysh
d839eb88eb
test: accept editor tray golden baselines
2026-08-09 15:30:14 +03:00
Matysh
bf5a040508
Release v1.60.3
2026-08-09 15:20:50 +03:00
Matysh
faa1f4ea9a
fix: settle editor chrome and opening render regressions
2026-08-09 15:14:58 +03:00
Matysh
caf3c44ad9
ci: validate branch pushes without duplicate tag runs
2026-08-09 08:52:28 +03:00
Matysh
08b19363fd
ci: make performance gate runner-noise aware
2026-08-09 08:50:26 +03:00
Matysh
d5e6c5cff0
test: accept editor context tray golden baselines
2026-08-09 08:40:57 +03:00
Matysh
c85dbaf4cb
v1.60.3-beta.2: stabilize editor context tray
2026-08-09 08:34:05 +03:00
Matysh
b1deb0beab
Avoid hassfest manifest collision
Validate / hacs (push) Failing after 8s
Validate / hassfest (push) Failing after 8s
Validate / frontend (push) Successful in 3m52s
Validate / backend (push) Failing after 8m33s
Validate / golden (push) Failing after 6m9s
Validate / smoke (push) Failing after 22m51s
2026-08-08 22:03:09 +03:00
Matysh
9590011ddb
Add reviewed Linux golden baselines
2026-08-08 21:52:26 +03:00
Matysh
ddbd3288fe
Fix prerelease smoke regressions
2026-08-08 21:42:49 +03:00
Matysh
e177c14603
v1.60.3-beta.1: harden rendering and QA tooling
2026-08-08 21:33:09 +03:00
Matysh
164f7cf76a
chore(hacs): zip_release + workflow attaching houseplan.zip to every release
...
HACS will install from the named asset instead of the auto zipball, so
GitHub's public download counter becomes a per-version install metric.
The workflow also has a manual dispatch to backfill an existing release.
2026-08-08 19:43:24 +03:00
Matysh
2219700d63
Release v1.60.2
Validate / hacs (push) Failing after 12s
Validate / hassfest (push) Failing after 12s
Validate / frontend (push) Successful in 3m58s
Validate / backend (push) Failing after 8m11s
Validate / smoke (push) Failing after 22m39s
2026-08-08 17:39:25 +03:00
Matysh
854a6944a0
test: align smokes with active registry projection
2026-08-08 15:55:33 +03:00
Matysh
2a8302f4d6
v1.60.2-beta.3: unify boundaries and device presentation
2026-08-08 15:46:07 +03:00
Matysh
f1537b2108
v1.60.2-beta.2: harden device state and editor interactions
Validate / hassfest (push) Failing after 19s
Validate / hacs (push) Failing after 20s
Validate / frontend (push) Successful in 3m2s
Validate / backend (push) Failing after 9m17s
Validate / smoke (push) Failing after 14m1s
2026-08-08 00:12:47 +03:00
Matysh
5e1315f61d
ci: announce releases and prereleases in the Telegram chat
Validate / hacs (push) Failing after 20s
Validate / hassfest (push) Failing after 23s
Validate / frontend (push) Successful in 3m38s
Validate / smoke (push) Failing after 53s
Validate / backend (push) Failing after 7m14s
2026-08-07 22:35:10 +03:00
Matysh
4e29db1afb
test: settle zoom baseline after editor collapse
2026-08-07 22:18:03 +03:00
Matysh
953063b984
fix: keep wall thickness beside room outline
2026-08-07 22:09:42 +03:00
Matysh
d48d220a8c
v1.60.2-beta.1: add persistent physical geometry
2026-08-07 22:02:41 +03:00
Matysh
1c949ae49d
test: poll navigation background transitions
Validate / hacs (push) Failing after 11s
Validate / hassfest (push) Failing after 9s
Validate / frontend (push) Successful in 4m38s
Validate / backend (push) Failing after 10m49s
Validate / smoke (push) Failing after 25m55s
2026-08-07 14:39:24 +03:00
Matysh
9956a6cfe6
test: settle navigation transitions in browser smokes
2026-08-07 14:31:02 +03:00
Matysh
fe5f5b6a24
v1.60.1-beta.1: harden editing and device state
2026-08-07 14:19:02 +03:00
Matysh
6db9eb0a66
test: use access token for non-admin websocket
Validate / hacs (push) Failing after 9s
Validate / hassfest (push) Failing after 8s
Validate / frontend (push) Successful in 4m33s
Validate / backend (push) Failing after 10m31s
Validate / smoke (push) Failing after 20m7s
2026-08-07 13:10:27 +03:00
Matysh
3028122016
v1.60.0: harden background editing and device state
2026-08-07 13:02:46 +03:00
Matysh
29fb9deb43
v1.60.0-beta.1: unify background editing and device deletion
2026-08-07 11:14:20 +03:00
Matysh
6a9122f41f
v1.59.2: make dialogs accessible
2026-08-07 07:47:37 +03:00
Matysh
25f43da1bd
v1.59.1: unify device and light state
Validate / smoke (push) Failing after 19m18s
Validate / hacs (push) Failing after 1m11s
Validate / hassfest (push) Failing after 1m37s
Validate / frontend (push) Successful in 3m0s
Validate / backend (push) Failing after 15m20s
2026-08-06 21:45:18 +03:00
Matysh
e7aca9c678
v1.59.0: release stable plan editing
2026-08-06 17:43:53 +03:00
Matysh
5ca4c7e5c5
v1.59.0-rc.2: make plan editing predictable
2026-08-06 16:48:45 +03:00
Matysh
e0f6746d7f
v1.59.0-rc.1: optimize plans and polish editor feedback
Validate / hacs (push) Failing after 7s
Validate / hassfest (push) Failing after 6s
Validate / frontend (push) Successful in 3m12s
Validate / backend (push) Failing after 8m53s
Validate / smoke (push) Failing after 13m51s
2026-08-06 10:14:52 +03:00
Matysh
d2bec266ed
v1.59.0-beta.10: unify device visuals and wall refinements
Validate / hacs (push) Failing after 6s
Validate / hassfest (push) Failing after 6s
Validate / frontend (push) Successful in 3m19s
Validate / smoke (push) Failing after 1m12s
Validate / backend (push) Failing after 7m45s
2026-08-05 23:38:01 +03:00
Matysh
4868cc0786
v1.59.0-beta.9: fix mixed-wall resize and virtual T-junctions
Validate / hassfest (push) Failing after 8s
Validate / hacs (push) Failing after 10s
Validate / frontend (push) Successful in 3m1s
Validate / backend (push) Failing after 14m22s
Validate / smoke (push) Failing after 19m22s
2026-08-05 20:44:26 +03:00
Matysh
e188f9d609
v1.59.0-beta.8: audit follow-ups and inner-corner sun rays
2026-08-05 20:07:27 +03:00
Matysh and Cursor
3ad4e9d803
docs: drop unshipped release-gate bullet from beta.7 notes
...
AUD-159B6-05 needs a workflow-scoped push of release.yml; it is not in the tag.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 17:55:25 +03:00
Matysh and Cursor
7333223a55
v1.59.0-beta.7: audit fixes, wall fill under hatch
...
Atomic wall intervals, open_spans in resize/Undo/Split/Delete, backend
open_spans schema, warm-nav ownership, smoke hygiene.
Wall fill colour paints under the hatch (both, not either/or).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 17:52:26 +03:00
Matysh and Cursor
de5e8129a1
v1.59.0-beta.6: partial open spans and wall-centric Delete
...
Two-click openwall writes space.open_spans; openings forbidden on virtual;
Delete closes virtual then merges or deletes rooms with confirm.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 16:07:23 +03:00
Matysh and Cursor
b44d2fb958
docs: design for open spans and wall-centric Delete
...
Capture brainstorming decisions for partial virtual walls and Delete merge/room flow before implementation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 15:53:10 +03:00
Matysh and Cursor
ee87d3d00e
v1.59.0-beta.5: wall-thickness redesign, draw thickness, plan on new space
...
Seamless ±½ wall rings with inner floor/area/sun; Draw toolbar thickness
(default 15 cm); new spaces open Plan; audit hygiene from beta.4 recheck.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 15:13:19 +03:00
Matysh and Cursor
a7d956a072
v1.59.0-beta.4: wall thickness + white editor sheet with backdrop
...
Validate / backend (push) Failing after 9m24s
Validate / smoke (push) Failing after 22m47s
Validate / hassfest (push) Failing after 8s
Validate / hacs (push) Failing after 9s
Validate / frontend (push) Successful in 2m58s
Plan-editor wall thickness (docs/WALL-THICKNESS.md) and keep the white drawing sheet under the grid in editors even when a backdrop image is loaded.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 12:27:09 +03:00
Matysh and Cursor
309bd59358
v1.59.0-beta.3: furniture, hide layers, styling hooks
...
Third 1.59 pre-release: top-view furniture at real size, hide-decor /
hide-openings toggles, stable card-mod data-* hooks, HA value formatting,
editor polish, and the audit P0/P3 follow-ups. Wall thickness is spec-only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 11:46:11 +03:00
Matysh and Cursor
31cd4142ac
feat(dev): furniture, hide layers, styling hooks, wall-thickness spec
...
Ship the unreleased 1.59 batch on dev: top-view furniture in the decor
layer, space toggles to hide decor/openings, stable card-mod data-*
hooks, HA entity value formatting, and the approved wall-thickness
spec (docs only — not implemented yet).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 11:41:00 +03:00