Commit Graph
2796 Commits
Author SHA1 Message Date
Sergey MatyuninandMatysh 1fff72aa3f docs: address radar specification review #485
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
claude[bot]andMatysh 2d8e7871f6 docs: review document for #485
Issue: #485
User-Visible: no
2026-09-09 03:50:50 +03:00
Sergey MatyuninandMatysh 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]andSergey 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 687056f3f5 ci: check-inputs trackedFiles no longer prints git noise on synthetic trees
`execFileSync('git ls-files')` inherited stderr, so every call on a test's
temporary tree printed "fatal: not a git repository" although the failure is
caught and the tree is walked instead — dozens of lines in the owner's Windows
run and in CI logs. stderr is ignored; behaviour unchanged.

Issue: #496
User-Visible: no
2026-09-09 02:29:08 +03:00
Claude eb3abe2053 test: spawn CLI scripts via fileURLToPath, not URL.pathname
Owner's Windows run after #496 (2338 pass, 2 fail): both remaining failures
are tests building the script path as `new URL(...).pathname`, which is
`/C:/Users/...` on Windows and makes Node look for `C:\C:\Users\...`.
check-inputs and classify-changes CLI tests now use fileURLToPath; the
portability test forbids `import.meta.url).pathname` in test/**.

Issue: #496
User-Visible: no
2026-09-09 02:18:58 +03:00
claude[bot] 3113ca8c57 docs: review document for #491
Issue: #491
User-Visible: no
2026-09-08 23:17:51 +00:00
Sergey Matyuninandclaude[bot] 1787e505a1 test: prove unresolved pair blocks following writes (#491)
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
claude[bot] a0f61551cb docs: review document for #491
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
Sergey Matyuninandclaude[bot] ce575f4012 docs: remove trailing blank from #491 spec
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
Sergey Matyuninandclaude[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
claude[bot] a0a9e4b579 docs: review document for #491
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
Sergey Matyuninandclaude[bot] 18e98ac5f2 docs: specify durable Optimize and Undo recovery (#491)
Issue: #491
User-Visible: no
2026-09-08 23:01:49 +00:00
Codex 9bfe78850d ci: install Claude Code binary ourselves before the review action (#503)
claude-code-action v1.0.218 (Claude Code 2.1.265) runs `claude install`,
which on ubuntu-latest sometimes leaves no launcher at ~/.local/bin/claude
while still reporting success; the action trusts the exit code and the SDK
then fails with ENOENT (anthropics/claude-code-action#1817). Four review
runs in a row died this way after 22:27 UTC 08.09.

Add a step that fetches the exact version the action pins (read from its
run.ts, fallback 2.1.265) from downloads.claude.ai, verifies the sha256
from the release manifest, checks `--version`, and hands the path to the
action via `path_to_claude_code_executable`, which makes the action skip
its own installer entirely.

Issue: #503
User-Visible: no
2026-09-09 02:00:39 +03:00
Claude e0e68f255d ci: added npm script does not select every mutant
Run 2795: changed_mutants shard 1/3 hit the 30-minute job limit with zero
failures. package.json sits in the guard-input closure of 195 of 590 mutants
(`npm run …`, `npx …`), so adding one script — toolchain:check — selected
nearly the whole registry. A guard depends only on what it calls: a changed
or removed existing script, dependencies, engines. An added script is not an
input of any earlier guard. packageJsonRelevance() decides from the base and
head package.json; unparsable or anything outside scripts still counts as
relevant. For the same range the selection drops from 209 to 38.

Issue: #496
User-Visible: no
2026-09-09 01:58:26 +03:00
Claude 71aeb86079 test: check-docs mutant guard judges docs, not screenshot freshness
Run 2793 (changed_mutants 2/3): the clean run of
`resource-docs-flatten-current-yaml` was red before any mutation because the
screenshot fingerprint is stale after #490 — strict mode, which #479 reserves
for the beta candidate. The guard now runs `--screenshots=warn`; a test keeps
every check-docs guard in that mode.

Issue: #496
User-Visible: no
2026-09-09 01:20:06 +03:00
Claude f0c8ae24ba infra: portable Windows gate, CI toolchain pins, task packet, deterministic wait, gate:small --smokes
Windows portability (the three red tests on the owner's machine at green CI):
- scripts/spawn-portable.mjs: isMainModule via pathToFileURL (the
  `file://${argv[1]}` form gives file:///C:/C:/... and the CLI stays silent);
  portableCommand — a shell only for npm/npx/.cmd, node and git run directly
  (spawn via shell dropped the quotes of `node -e "…"`). Applied to
  classify-changes, mutation-gate-report, review-doc-guard, check-inputs,
  merge-candidate, gate-small, rebase-on-dev.
- the rebase-on-dev test pins core.autocrlf=false / core.eol=lf through
  GIT_CONFIG_* for its temp repository instead of touching the user's git
  config; test/windows-portability.test.mjs forbids both anti-patterns.

Pins: scripts/toolchain-pins.mjs reads Node/Python from validate.yml, the HA
stack from tests_backend/requirements.txt, Playwright/Chromium from the
lockfile — no second dictionary; `npm run toolchain:check` compares the
machine; .nvmrc/.python-version are derived and tested equal;
scripts/wsl-setup.sh provisions WSL/Linux with those pins.

scripts/task-packet.mjs: one derived view of an issue (status, rights, owner
decisions, branch vs dev, Validate on the tip, previous verdict with recorded
tree, AC → evidence, unwitnessed). scripts/wait-verdict.mjs: polls labels,
pipeline comments and optionally Validate, prints only on state change, exit
0/3/4, writes nothing.

gate:small --smokes: after build the browser phase runs bundle-sync and then
the directly matched and registered smokes, two at a time; broad matches stay
with the reviewer. package.json changed, so the bundle is rebuilt here.

Issue: #496
User-Visible: no
2026-09-09 01:11:24 +03:00
claude[bot] 6e95c649e6 docs: review document for #492
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] 405bce42c3 docs: spec notes how the manifest categories are computed
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
claude[bot] 165ba9eca2 docs: review document for #492
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] a358ed11fd docs: input manifest and exact-candidate merge in TESTING.md and PROCESS.md
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] 32b1baa189 ci: merge the exact candidate; nightly waits for its Validate
scripts/merge-candidate.mjs owns the review pipeline's merge: when dev
moved during review, the rebased candidate is pushed to the issue branch,
its diff is compared to the reviewed one by patch-id, Validate on that SHA
is awaited, and only then dev is advanced with --force-with-lease on the
base the candidate was built on — a rejected lease restarts, at most three
times. Every non-merge outcome moves the label with a comment, so the
"label always changes" invariant holds. nightly.yml now finds the Validate
run it dispatched and inherits its conclusion. Three mutants guard this.

Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] 51beeeb2c4 ci: mutant selection sees wrapper defaults, guard imports, fixtures and registry edits
guardInputs() replaces guardFiles() in selection and fingerprints: the
files named in the guard, the GUARD_INPUTS a wrapper declares (read
statically — the wrappers run on import), and the closure of imports and
path literals of every guard file, stopping at src/** which stays the
patch side. A diff that touches the registry itself selects every added or
changed definition against the base registry read from git. Five mutants
guard the manifest and this selection.

Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] 658e395360 ci: one input manifest for job selection and reuse keys
scripts/check-inputs.mjs declares every Validate check with its roots and
entry points and computes the rest: imports and path literals of the
entries, transitively for code, as leaves for data. classify-changes and
gate-reuse both read it, so "which job runs" and "what its key hashes"
cannot disagree any more. An executable file no check knows widens the run
to the full set and is named in the summary; the coverage list makes such
a file a red unit test rather than a permanent widening. The workflow file
is a toolchain input of every job; backend no longer hashes src/**.

Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] 227b73683e docs: AC6 gets its negative probe (spec review r1)
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
claude[bot] fd64422276 docs: review document for #492
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Codexandclaude[bot] 6b70e5a3ad docs: spec for the exact integration candidate and the input manifest
Issue: #492
User-Visible: no
2026-09-08 21:55:07 +00:00
Claude d271d8beab docs: specs/README — статус задачи это метка, Projects v2 не используется
Файл называл GitHub Projects v2 частью канонического backlog и держал
второй словарь статусов ТЗ. Проекты не используются с 2026-08-14 (#139),
статус — метка на issue (PROCESS §9); лёгкий трек держит ТЗ в теле issue.

Issue: #499
User-Visible: no
2026-09-09 00:47:06 +03:00
claude[bot] c9a0690c2d docs: review document for #490
Issue: #490
User-Visible: no
2026-09-08 21:20:14 +00:00
Sergey Matyunin 01c653a4c6 fix: preserve backdrop continuity during summary recovery (#490)
Issue: #490
User-Visible: yes
2026-09-09 00:10:16 +03:00
claude[bot]andSergey Matyunin 87f19941a3 docs: review document for #490
Issue: #490
User-Visible: no
2026-09-09 00:10:16 +03:00
Sergey Matyunin a43bc3eb27 fix: keep summary recovery and live state current (#490)
Issue: #490
User-Visible: yes
2026-09-09 00:10:16 +03:00
claude[bot]andSergey Matyunin 5c9e79081b docs: review document for #490
Issue: #490
User-Visible: no
2026-09-09 00:10:16 +03:00
Sergey Matyunin fd364c57a8 docs: specify summary recovery consistency (#490)
Issue: #490
User-Visible: no
2026-09-09 00:10:16 +03:00
Claude 24c1b723f9 infra: idempotent review controller, verdict reuse, single mutant build, current docs
Review pipeline (process.yml):
- concurrency moves from the workflow to the guard/review jobs and the guard
  runs only for S4-spec-review / S7-code-review. Any other label used to enter
  the issue's concurrency group and evict the pending review run (sample of
  150 runs since 2026-09-01: 92 empty guard-only runs, 30 cancelled).
- the guard reads the issue's current labels instead of the event snapshot; a
  label removed before the run starts is a withdrawn request, no comment.
- a green verdict is re-applied without calling the model when the latest
  review document carries the pipeline-recorded verdict `green`/High 0 and the
  tree differs from its anchor in nothing outside docs/reviews/** (#437 r4
  re-reviewed an unchanged tree for 7 minutes). The verdict from
  structured_output is now written into the anchor block for that purpose.
- the reviewer is pinned to the captured material SHA in the prompt; the
  broken escaping in the "merge cancelled" comment (empty SHAs) is fixed.

Mutation gate: nine browser guards started with `npm run bundle:sync` although
the runner already builds the mutant bundle — a second rollup plus a
`tsc --noEmit` that fails on a non-strict mutant before the smoke even runs.
Prefix removed; `--check` refuses guards that build the bundle themselves.

Docs: SCOPE (Project v2 dropped, three editors), STATUS (#437 merged, HACS zip
automated), USER-GUIDE ru/en (static card shows live states; kiosk double tap
on free background fits all), #34 → #425 references, #367 named as closed in
bundle-budget messages, PROCESS §10.4 and AGENTS.md describe the controller.

Issue: #499
User-Visible: no
2026-09-09 00:06:27 +03:00
claude[bot] ea6061e9fa docs: review document for #489
Issue: #489
User-Visible: no
2026-09-08 19:35:20 +00:00
Sergey Matyunin 5586e0591c perf: recenter initial bundle ceiling for data-hp contract (#489)
Issue: #489
User-Visible: no
2026-09-08 21:46:30 +03:00
Sergey Matyunin 15e0efe3bf docs: accept data-hp contract screenshots (#489)
Issue: #489
User-Visible: no
2026-09-08 21:30:58 +03:00
Sergey Matyunin 9c61ac6768 feat: declare stable data-hp test contract (#489)
Issue: #489
User-Visible: yes
2026-09-08 21:26:29 +03:00
claude[bot] 1d2ed1e30d docs: review document for #489
Issue: #489
User-Visible: no
2026-09-08 18:08:10 +00:00
Sergey Matyunin e072b22274 docs: address first spec review for data-hp contract (#489)
Issue: #489
User-Visible: no
2026-09-08 21:04:21 +03:00
claude[bot] a48827ec7c docs: review document for #489
Issue: #489
User-Visible: no
2026-09-08 18:03:05 +00:00
Sergey Matyunin 9cf10bdde7 docs: specify public data-hp test contract (#489)
Issue: #489
User-Visible: no
2026-09-08 20:53:22 +03:00
claude[bot] 586494b726 docs: review document for #437
Проверка (CI) / Предполётные проверки: документация, провенанс, процесс (push) Failing after 50s
Проверка (CI) / Классификация изменённых файлов (push) Successful in 29s
Проверка (CI) / HACS: валидация репозитория (push) Skipped
Проверка (CI) / Hassfest: манифест интеграции (push) Skipped
Проверка (CI) / Мутанты по диффу (1/3): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (2/3): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (3/3): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Skipped
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 55s
Проверка (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) Skipped
Issue: #437
User-Visible: no
2026-09-08 17:44:24 +00:00
claude[bot] 63ceef6618 docs: review document for #437
Issue: #437
User-Visible: no
2026-09-08 17:37:25 +00:00
Sergey Matyunin f87d3dc545 fix: stabilize summary panel transitions (#437)
Issue: #437
User-Visible: yes
2026-09-08 20:23:20 +03:00