From 1473e277fd10fc5a2776a2e856459af09597c85e Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 24 Apr 2026 10:14:12 +0000 Subject: [PATCH] HS-plan: log cluster 26 landed (304a52d2, worktree cherry-pick) --- plans/hs-conformance-scoreboard.md | 10 +++++----- plans/hs-conformance-to-100.md | 5 ++++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/plans/hs-conformance-scoreboard.md b/plans/hs-conformance-scoreboard.md index ad50a764..9a9e62d2 100644 --- a/plans/hs-conformance-scoreboard.md +++ b/plans/hs-conformance-scoreboard.md @@ -4,10 +4,10 @@ Live tally for `plans/hs-conformance-to-100.md`. Update after every cluster comm ``` Baseline: 1213/1496 (81.1%) -Merged: 1250/1496 (83.6%) delta +37 -Worktree: 3 in flight (clusters 20, 26, 27) +Merged: 1253/1496 (83.8%) delta +40 +Worktree: 2 in flight (clusters 20, 27) Target: 1496/1496 (100.0%) -Remaining: ~246 tests +Remaining: ~243 tests ``` ## Cluster ledger @@ -51,7 +51,7 @@ Remaining: ~246 tests | # | Cluster | Status | Δ | Commit | |---|---------|--------|---|--------| -| 26 | resize observer mock + `on resize` | pending | (+3 est) | — | +| 26 | resize observer mock + `on resize` | done | +3 | 304a52d2 | | 27 | intersection observer mock + `on intersection` | pending | (+3 est) | — | | 28 | `ask`/`answer` + prompt/confirm mock | pending | (+4 est) | — | | 29 | `hyperscript:before:init` / `:after:init` / `:parse-error` | pending | (+4–6 est) | — | @@ -87,7 +87,7 @@ Defer until A–D drain. Estimated ~25 recoverable tests. |--------|-----:|--------:|--------:|--------:|--------:|------------:|------:| | A | 12 | 4 | 0 | 0 | 1 | — | 17 | | B | 3 | 0 | 0 | 3 | 1 | — | 7 | -| C | 1 | 0 | 0 | 4 | 0 | — | 5 | +| C | 2 | 0 | 0 | 3 | 0 | — | 5 | | D | 0 | 0 | 0 | 5 | 0 | — | 5 | | E | 0 | 0 | 0 | 0 | 0 | 5 | 5 | | F | — | — | — | ~10 | — | — | ~10 | diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index 2b9d318b..17a15273 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -101,7 +101,7 @@ Orchestrator cherry-picks worktree commits onto `architecture` one at a time; re ### Bucket C: feature stubs (DOM observer mocks) -26. **[pending] resize observer mock + `on resize`** — 3 tests. Add a minimal `ResizeObserver` mock to `hs-run-filtered.js`, plus parse/compile `on resize`. Expected: +3. +26. **[done (+3)] resize observer mock + `on resize`** — 3 tests. Add a minimal `ResizeObserver` mock to `hs-run-filtered.js`, plus parse/compile `on resize`. Expected: +3. 27. **[pending] intersection observer mock + `on intersection`** — 3 tests. Mock `IntersectionObserver`; compile `on intersection` with margin/threshold modifiers. Expected: +3. @@ -175,6 +175,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-24 — cluster 26 resize observer (worktree agent cherry-pick) +- **304a52d2** (from worktree `worktree-agent-a8983e935d0d7a870` / `aea5f7d2`) — `HS: resize observer mock + on resize (+3 tests)`. `tests/hs-run-filtered.js`: `El.style` becomes a `Proxy` that fires a synthetic `resize` DOM event (detail carries `{width, height}` parsed from the current inline style) whenever `width`/`height` is written via direct property assignment OR `setProperty`. `ResizeObserver` no-op stub replaced by `HsResizeObserver` maintaining a per-element callback registry in `globalThis.__hsResizeRegistry`; added `ResizeObserverEntry` stub. `on resize` needs no parser/compiler work — `parse-compound-event-name` already accepts it and `hs-on` binds via `dom-listen`. Generator: new pattern translates `(page.)?evaluate(() => { document.(getElementById|querySelector)(...).style.PROP = 'VAL'; })` into `(host-set! (host-get TARGET "style") "PROP" "VAL")`. Suite hs-upstream-resize: 0/3 → 3/3. Smoke 0-195 unchanged at 165/195. + ### 2026-04-24 — cluster 30 logAll config (worktree agent cherry-pick) - **64bcefff** (from worktree `worktree-agent-a2bf303fd00e2fd4b` / `e50c3e6e`) — `HS: logAll config (+1 test)`. Runtime additions in `runtime.sx`: `_hs-config-log-all` flag + `_hs-log-captured` list + setters `hs-set-log-all!`, `hs-clear-log-captured!`, reader `hs-get-log-captured`, emitter `hs-log-event!` which both appends and forwards to `(host-call (host-global "console") "log" msg)`. `integration.sx` `hs-activate!` now emits `(hs-log-event! "hyperscript:init")` as the first action inside its when-block. Generator `tests/playwright/generate-sx-tests.py` detects the upstream body pattern (contains both `logAll` and `_hyperscript.config.logAll`) and emits a hand-rolled deftest: reset captured list → toggle log-all on → build detached `_="on click add .foo"` div → hs-boot-subtree! → assert `(some (fn (l) (string-contains? l "hyperscript:")) captured)`. Suite hs-upstream-core/bootstrap: 19/26 → 20/26. Smoke 0-195: 164 → 165.