Codex and claude[bot]
4f040c4c8e
fix: exact upload quota, support palette allowlist, bounded SVG reference chains ( #498 )
...
Attachment uploads stage the body as `.upload-*` under files_root and then
asked the quota to count that file as stored usage *and* as the incoming
size, so the last file that still fit was refused at the boundary — by
bytes and by count. check_quota/dir_usage now take `exclude` for the
caller's own staged file; other staged files keep counting, so two
concurrent uploads can never both land past the limit.
The support package copied every string key of settings.fill_colors. The
schema stays open for compatibility, but the projection now keeps only the
eleven slots the card defines (SUPPORT_FILL_COLOR_KEYS, pinned to
src/logic.ts DEFAULT_FILL_COLORS by a test); an empty palette is omitted.
The SVG local-reference walk was a recursive DFS: a flat chain of a few
thousand hrefs passed every #436 bound and died with RecursionError, which
the upload view turned into a 500. The walk is iterative and measures the
longest chain through each node (memoised, order-independent); chains
deeper than MAX_SVG_REF_DEPTH = 64 are refused as too_large, cycles stay
invalid_image.
Tests: quota boundaries on the validator and the HA endpoint, a barrier
test for concurrent uploads, palette allowlist and TS parity, reference
chains (plain, hostile id order, cycle) on the validator and the endpoint;
six mutants caught by the standard runner.
Issue: #498
User-Visible: yes
2026-09-09 07:06:20 +00:00
claude[bot]
5f8d40caf0
docs: review document for #498
...
Issue: #498
User-Visible: no
2026-09-09 07:06:20 +00:00
Codex and claude[bot]
c71f21f3c9
docs: spec #498 r2 — numbered AC, longest-chain reference limit, concurrent quota semantics
...
Spec review r1: add the AC list with proofs and the perf/touch statement;
measure the SVG reference limit as the longest chain through a node
(memoised), not the stack height of the first traversal, so a hostile id
order cannot cut a long chain into short segments; state that two uploads
checked while both are staged are both refused (conservative), never both
stored.
Issue: #498
User-Visible: no
2026-09-09 07:06:20 +00:00
claude[bot]
5d6f610a7c
docs: review document for #498
...
Issue: #498
User-Visible: no
2026-09-09 07:06:20 +00:00
Codex and claude[bot]
ac478127d5
docs: spec for #498 — exact upload quota, support palette allowlist, bounded SVG reference chains
...
Issue: #498
User-Visible: no
2026-09-09 07:06:20 +00:00
claude[bot]
2aa6ed21e7
docs: review document for #505
...
Issue: #505
User-Visible: no
2026-09-09 07:01:42 +00:00
Matysh
7b9af60541
Remove unused summary visibility translations ( #505 )
...
Issue: #505
User-Visible: no
2026-09-09 09:54:14 +03:00
claude[bot]
f03a9e5ddc
docs: review document for #505
...
Issue: #505
User-Visible: no
2026-09-09 06:48:00 +00:00
Matysh
d32dfc9be1
Record unchanged visual evidence after dev integration ( #505 )
...
Issue: #505
User-Visible: no
2026-09-09 09:33:28 +03:00
Matysh
2f607a04f1
Record summary panel visual and negative-witness evidence ( #505 )
...
Issue: #505
User-Visible: no
2026-09-09 09:32:36 +03:00
Matysh
05778a47c0
Align summary panel with designer prototype ( #505 )
...
Issue: #505
User-Visible: yes
2026-09-09 09:32:36 +03:00
claude[bot] and Matysh
d23cb267d0
docs: review document for #505
...
Issue: #505
User-Visible: no
2026-09-09 09:32:23 +03:00
Matysh
bb14064b18
docs: address summary panel spec review r1
...
Issue: #505
User-Visible: no
2026-09-09 09:32:23 +03:00
claude[bot] and Matysh
f29b9831a5
docs: review document for #505
...
Issue: #505
User-Visible: no
2026-09-09 09:32:23 +03:00
Matysh
598e95f4c4
docs: specify summary panel designer parity
...
Issue: #505
User-Visible: no
2026-09-09 09:32:23 +03:00
claude[bot]
2e387ac1e0
docs: review document for #495
...
Issue: #495
User-Visible: no
2026-09-09 05:48:32 +00:00
Codex
2946e28352
fix: import result follows the commit; dropped route runs reach the store ( #495 )
...
Apply re-validated the preview token after both halves were durable, so a
TTL that lapsed during the write, or an eviction by a newer preview of the
same user, answered "preview expired" for a plan that was already replaced
and withheld both update events. The token is now simply spent after the
commit; validity is decided once, on entry under write_lock.
Route runs dropped by drop_unknown_routes never reached the store unless a
marker happened to be orphaned in the same pass; an idle robot kept them in
memory only and a restart brought them back. The drop now happens under
_refresh_lock, leaves with the orphan transaction or with an immediate
write of its own, and rolls back like #335 when the store refuses.
Tests: HA harness for both apply races and a live config/set route drop,
recorder stubs for the four durability cases; five mutants caught by the
standard runner.
Issue: #495
User-Visible: yes
2026-09-09 08:34:46 +03:00
claude[bot]
adbd349920
docs: review document for #495
...
Issue: #495
User-Visible: no
2026-09-09 05:33:25 +00:00
Codex
70a394d228
docs: spec for #495 — import result follows the commit, dropped route runs reach the store
...
Issue: #495
User-Visible: no
2026-09-09 08:26:52 +03:00
Sergey Matyunin
8721d7d911
docs: refresh fixed warm-remount screenshot fingerprint ( #437 )
...
Issue: #437
User-Visible: no
2026-09-09 06:45:49 +03:00
Sergey Matyunin
1d072be0a9
fix: freeze warm-remount stage through chrome settle ( #437 )
...
Issue: #437
User-Visible: yes
2026-09-09 06:43:16 +03:00
Sergey Matyunin
a56df6eb8e
docs: refresh warm-remount screenshot fingerprint ( #437 )
...
Issue: #437
User-Visible: no
2026-09-09 06:27:36 +03:00
Sergey Matyunin
590d6b59b6
fix: preserve warm-remount viewport through layout settle ( #437 )
...
Issue: #437
User-Visible: yes
2026-09-09 06:24:32 +03:00
Sergey Matyunin
931f1d45aa
build: refresh v1.73.0-beta.7 candidate after #485
...
Issue: #437
Issue: #485
Issue: #489
Issue: #490
Issue: #491
Issue: #492
Issue: #493
Issue: #499
User-Visible: no
Release: v1.73.0-beta.7
2026-09-09 04:17:13 +03:00
claude[bot]
e77f7b7361
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 01:12:38 +00:00
Matysh
ca25e91087
test: keep radar bundle ratchet outside gzip noise
...
Проверка (CI) / Классификация изменённых файлов (push) Successful in 1m36s
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 3m42s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m4s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 20s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 20s
Проверка (CI) / Мутанты по диффу (1/3): затронутые свидетели краснеют (push) Failing after 11m19s
Проверка (CI) / Мутанты по диффу (3/3): затронутые свидетели краснеют (push) Failing after 12m16s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 13m34s
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 9m19s
Проверка (CI) / Мутанты по диффу (2/3): затронутые свидетели краснеют (push) Successful in 1h36m17s
Issue: #485
User-Visible: no
2026-09-09 04:01:00 +03:00
claude[bot] and Matysh
02289aee44
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:54:09 +03:00
Matysh
f2007326c4
docs: record radar field evidence
...
Issue: #485
User-Visible: no
2026-09-09 03:54:09 +03:00
Matysh
e9fb255a29
fix: close radar review gaps
...
User-Visible: yes
Issue: #485
2026-09-09 03:54:02 +03:00
claude[bot] and Matysh
f911a442c4
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:53:33 +03:00
Matysh
d12488f40d
fix: harden presence radar stage one
...
User-Visible: yes
Issue: #485
2026-09-09 03:52:23 +03:00
claude[bot] and Matysh
63eb4f315c
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:52:22 +03:00
Matysh
58f5f18540
feat: add presence radar stage 1
...
User-Visible: yes
Issue: #485
2026-09-09 03:51:25 +03:00
claude[bot] and Matysh
7e4751ba62
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
Sergey Matyunin and Matysh
4e9feaaead
docs: preserve manual radar setup entry ( #485 )
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
claude[bot] and Matysh
1d3d379d6c
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
Sergey Matyunin and Matysh
51d5858b3d
docs: restrict radar setup section to eligible devices ( #485 )
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
claude[bot] and Matysh
a253dc83be
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
Sergey Matyunin and Matysh
1fff72aa3f
docs: address radar specification review #485
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
claude[bot] and Matysh
2d8e7871f6
docs: review document for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
Sergey Matyunin and Matysh
78afb68962
docs: specify radar presence stages for #485
...
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
Sergey Matyunin
3434747d1c
build: prepare v1.73.0-beta.7 candidate
...
Проверка (CI) / Классификация изменённых файлов (push) Successful in 58s
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 14m42s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 1m20s
Проверка (CI) / HACS: валидация репозитория (push) Failing after 24s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 24s
Проверка (CI) / Мутанты по диффу (1/3): затронутые свидетели краснеют (push) Failing after 12m28s
Проверка (CI) / Мутанты по диффу (3/3): затронутые свидетели краснеют (push) Failing after 12m22s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 13m36s
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Мутанты по диффу (2/3): затронутые свидетели краснеют (push) Failing after 16m48s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 10m4s
Baseline-Reviewed: https://github.com/Matysh/houseplan-card/actions/runs/34294899732
Issue: #437
Issue: #489
Issue: #490
Issue: #491
Issue: #492
Issue: #493
Issue: #499
User-Visible: yes
Release: v1.73.0-beta.7
2026-09-09 03:38:16 +03:00
claude[bot]
260435e438
docs: review document for #493
...
Issue: #493
User-Visible: no
2026-09-09 00:21:40 +00:00
Sergey Matyunin
578cae5240
fix: harden summary panel settings and writes ( #493 )
...
Issue: #493
User-Visible: yes
2026-09-09 02:53:36 +03:00
claude[bot] and Sergey Matyunin
0bce4b1123
docs: review document for #493
...
Issue: #493
User-Visible: no
2026-09-09 02:53:36 +03:00
Sergey Matyunin
13a0bfdf87
docs: define summary panel hardening contract ( #493 )
...
Issue: #493
User-Visible: no
2026-09-09 02:53:36 +03:00
claude[bot]
3113ca8c57
docs: review document for #491
...
Issue: #491
User-Visible: no
2026-09-08 23:17:51 +00:00
claude[bot]
a0f61551cb
docs: review document for #491
...
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
Sergey Matyunin and claude[bot]
ce575f4012
docs: remove trailing blank from #491 spec
...
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
Sergey Matyunin and claude[bot]
488f70c493
fix: make paired plan writes recover before the next edit ( #491 )
...
Issue: #491
User-Visible: yes
2026-09-08 23:01:49 +00:00