Sergey Matyunin and claude[bot]
442731e8eb
fix: deduplicate entity markers from parent devices
...
Issue: #226
User-Visible: yes
2026-08-20 18:48:01 +00:00
Sergey Matyunin
a20dd54ba6
test: retarget the LQI mutation guard
...
Validate / docs (push) Failing after 47s
Validate / provenance (push) Successful in 1m41s
Validate / process-gate (push) Failing after 1m52s
Validate / changes (push) Successful in 1m7s
Validate / reuse (push) Successful in 37s
Validate / hacs (push) Failing after 13s
Validate / hassfest (push) Failing after 15s
Validate / frontend (push) Successful in 7m29s
Validate / backend (push) Failing after 9m12s
Validate / golden (push) Failing after 13m36s
Validate / performance_smoke (push) Failing after 14m19s
Validate / smoke (push) Failing after 35m6s
Full Performance / performance (push) Failing after 1h57m49s
Issue: #222
User-Visible: no
2026-08-20 16:26:29 +03:00
Sergey Matyunin
3d11758e2b
fix: keep Glow visible with noisy floor geometry
...
Stabilize polygon-boolean inputs at render time and isolate residual
room failures without weakening fail-dark clipping.
Issue: #218
User-Visible: yes
2026-08-20 14:05:22 +03:00
Sergey Matyunin
0e5ee030fe
fix: polish device marker geometry and input
...
Issue: #213
User-Visible: yes
2026-08-20 11:00:22 +03:00
Sergey Matyunin
120d41317c
fix: polish device icons and pointer feedback
...
Issue: #212
User-Visible: yes
2026-08-20 08:42:34 +03:00
Sergey Matyunin
6063eead10
fix: pin card instances to configured spaces
...
Issue: #210
User-Visible: yes
2026-08-20 01:38:01 +03:00
Sergey Matyunin
270cf634e6
test: strengthen unavailable hover mutant
...
Issue: #211
User-Visible: no
2026-08-20 00:44:48 +03:00
Sergey Matyunin
4e82976b4a
fix: match device icons to designer package
...
Issue: #211
User-Visible: yes
2026-08-20 00:44:11 +03:00
Sergey Matyunin
7af6d742b9
test: make unavailable hover mutant effective
...
Issue: #179
User-Visible: no
2026-08-19 22:38:57 +03:00
Sergey Matyunin
48bcdafab9
feat: redesign device marker faces
...
Issue: #179
User-Visible: yes
2026-08-19 22:37:25 +03:00
Sergey Matyunin
9b05dd598d
fix: clean isolated wall micro-intervals in Optimize
...
Issue: #198
User-Visible: yes
2026-08-19 21:10:18 +03:00
Sergey Matyunin
56e01148f8
fix: resume vacuum trails after short stops
...
Issue: #205
User-Visible: yes
2026-08-19 20:55:38 +03:00
Sergey Matyunin and claude[bot]
6f89002e3a
fix: show honest new-space display defaults
...
Issue: #204
User-Visible: yes
2026-08-19 17:44:48 +00:00
Sergey Matyunin
1290927f10
fix: hide disabled room names
...
Issue: #203
User-Visible: yes
2026-08-19 18:47:33 +03:00
Sergey Matyunin
f7abf14abd
fix: inherit parent thickness for atomic walls
...
Issue: #201
User-Visible: yes
2026-08-19 18:04:11 +03:00
Sergey Matyunin
cd029a0415
fix: keep room labels aligned across modes
...
Issue: #200
User-Visible: yes
2026-08-19 17:12:02 +03:00
Sergey Matyunin
fa015907d4
fix: reject stale space position writes
...
Issue: #184
User-Visible: no
2026-08-19 04:42:49 +03:00
Sergey Matyunin
66fa8f476c
Keep mutation anchor aligned after optional model change
...
Issue: #113
User-Visible: no
2026-08-19 02:51:50 +03:00
Sergey Matyunin
1e8503bd46
Make empty space model explicit
...
Issue: #113
User-Visible: no
2026-08-19 02:49:39 +03:00
Sergey Matyunin
01fe48de00
fix: support registryless opening entities
...
Issue: #117
User-Visible: yes
2026-08-19 02:12:37 +03:00
Sergey Matyunin
9f77e3e932
feat: support openings in independent walls
...
Issue: #132
User-Visible: yes
2026-08-19 01:11:55 +03:00
Sergey Matyunin
a05aa5dc06
fix: honor area-less room device binding
...
Validate / docs (push) Failing after 22s
Validate / provenance (push) Successful in 45s
Validate / changes (push) Successful in 35s
Validate / process-gate (push) Failing after 44s
Validate / hacs (push) Failing after 26s
Validate / hassfest (push) Failing after 31s
Validate / frontend (push) Successful in 6m39s
Validate / backend (push) Failing after 11m48s
Validate / golden (push) Failing after 9m52s
Validate / performance_smoke (push) Failing after 10m15s
Validate / smoke (push) Failing after 24m6s
Issue: #170
User-Visible: yes
2026-08-18 09:56:58 +03:00
Sergey Matyunin
c9a00b2a37
feat: add open passage openings
...
Validate / docs (push) Failing after 20s
Validate / provenance (push) Successful in 54s
Validate / hacs (push) Failing after 15s
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
2026-08-17 16:45:41 +03:00
Sergey Matyunin
7f397a6875
feat: add plan-only space export
...
Issue: #167
User-Visible: yes
2026-08-17 12:33:52 +03:00
Sergey Matyunin
4ed86b38bc
fix: align sun rays with plan north
...
Validate / docs (push) Successful in 25s
Validate / provenance (push) Successful in 42s
Validate / process-gate (push) Failing after 38s
Validate / changes (push) Successful in 37s
Validate / hacs (push) Skipped
Validate / hassfest (push) Skipped
Validate / backend (push) Skipped
Validate / frontend (push) Successful in 5m19s
Validate / performance_smoke (push) Failing after 1m49s
Validate / smoke (push) Failing after 2m9s
Validate / golden (push) Failing after 7m21s
Issue: #166
User-Visible: yes
2026-08-17 12:01:14 +03:00
Sergey Matyunin
91f460e80c
test: make the column-shadow mutant effective
...
Issue: #144
User-Visible: no
2026-08-15 23:53:53 +03:00
Sergey Matyunin
32518c6284
test: guard the filled-tunnel golden
...
Issue: #143
User-Visible: no
2026-08-15 23:42:34 +03:00
Matysh
737e7b62aa
fix: the golden mutant guard runs capture, because verify forbids one scene
...
First real run of the gate failed before reaching a single mutant: the clean
run of the golden guard was red on untouched code. demo/golden/policy.mjs
refuses `verify --scenario=...` on purpose — a partial verify is the "make CI
green" loophole the policy exists to close. The gate built to catch dishonest
tests had reached for a dishonest shortcut, and the policy caught it.
capture keeps the whole check: a failed semantic assertion becomes status
error, and goldenRunFailed treats an error as failure in either mode. The scene
carries warmPixelRegion with minPixels 2500 over the receiving half, so a lamp
moved out of reach still fails it — which is exactly what this mutant asserts.
Issue: #85
User-Visible: no
2026-08-14 15:18:46 +03:00
Matysh
328ed7afc0
test: a registry of known breakages that tests must catch
...
Validate / provenance (push) Successful in 46s
Validate / hacs (push) Failing after 10s
Validate / hassfest (push) Failing after 12s
Validate / process-gate (push) Failing after 35s
Validate / frontend (push) Successful in 6m11s
Validate / backend (push) Failing after 9m24s
Validate / golden (push) Failing after 10m10s
Validate / performance_smoke (push) Failing after 12m46s
Validate / smoke (push) Failing after 30m15s
Five times in this project a green test meant nothing was checked. The
continuity smoke stayed green after the entire mechanism it guards was cut out.
The golden scene created to protect doorway light was empty — 1,177 warm pixels
against 107,119, all of them icons. The shadow smoke passed while no shadow was
drawn. Each time the test had been written alongside the code, went green at
once, and nobody ever asked whether it could go red.
The gate makes that question routine. Each mutant is a few lines of patch that
reproduce a known breakage, plus the name of the test that must fail on it. A
worktree is patched, the bundle rebuilt, the guard run — and a guard that stays
green fails the gate. Six mutants cover the holes documented in #85 ; the anchors
are exact strings from today's source, so the registry cannot silently drift —
a unit test that runs with the ordinary suite refuses a stale anchor.
The full run rebuilds the bundle per mutant, so it lives in its own workflow,
before a stable release and on a weekly schedule, not in Validate. The rules for
new tests are written at the top of docs/TESTING.md, and the sixth of them is
the cheapest: an assertion that reads back the property the code just set is
not written at all.
Issue: #85
User-Visible: no
2026-08-14 02:05:53 +03:00