From bb64e42570a9c27445b6d27ebd11214d813526e3 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 24 Apr 2026 06:45:03 +0000 Subject: [PATCH] HS-plan: log transition done +2 partial Co-Authored-By: Claude Opus 4.7 (1M context) --- plans/hs-conformance-to-100.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index da025cbb..ebf66c10 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -62,7 +62,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 14. **[blocked: parser unless + compiler hs-unless-wrap produces correct compile output but test still fails with `Undefined symbol: _test-result` — some interaction with the test harness's _run-test-thunk + _test-result define. Also needs generator classList.add pattern (which was bundled in). Deferred until harness interaction root-caused.] `unless` modifier** — `unlessModifier / unless can conditionally execute` (1 test). Parser/compiler addition. Expected: +1. -15. **[in-progress] `transition` query-ref + multi-prop + initial** — `transition` 3 tests. Expected: +2-3. +15. **[done (+2) — partial, `can use initial to transition to original value` needs `on click N` count-filtered events (same sync-mock block as clusters 11/13)] `transition` query-ref + multi-prop + initial** — `transition` 3 tests. Expected: +2-3. 16. **[done (+1)] `send can reference sender`** — 1 assertion fail. Expected: +1. @@ -160,6 +160,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-24 — cluster 15 transition query-ref + multi-prop (partial +2) +- **3d352055** — `HS: transition query-ref + multi-prop (+2 tests)`. Three parts: (a) parser `collect-transitions` recognises `style` tokens (`*prop`) as a continuation, so `transition *width from A to B *height from A to B` chains both transitions instead of dropping the second. (b) Mock `El` class gets `nextSibling`/`previousSibling` (+ `*ElementSibling` aliases) so `transition *W of the next ` can resolve the next-sibling target via host-get. (c) Generator pattern for `const X = await evaluate(() => { const el = document.querySelector(SEL); el.dispatchEvent(new Event(NAME, ...)); return ... })`; optionally prefixed by destructuring and allowing trailing `expect(...).toBe(...)` junk because `_body_statements` only splits on `;` at depth 0. Remaining `initial` test needs `on click N` count-filtered events. Suite hs-upstream-transition: 13/17 → 15/17. Smoke 0-195: 162/195 unchanged. + ### 2026-04-24 — cluster 13 toggle multi-class + until (partial +2) - **bd821c04** — `HS: toggle multi-class + until event (+2 tests)`. Parser `parse-toggle-cmd`: after the leading class ref collect any additional class refs and treat `toggle .foo .bar` as `toggle-between` (pair-only). Recognise `until EVENT [from SOURCE]` modifier and emit a new `toggle-class-until` AST. Compiler handles the new node by emitting `(begin (hs-toggle-class! tgt cls) (hs-wait-for src ev) (hs-toggle-class! tgt cls))` — reuses the cluster-9 event waiter so the class flips back when the event fires. `can toggle for a fixed amount of time` remains — sync mock io-sleep collapses the two toggles into one click frame; needs async scheduler. Suite hs-upstream-toggle: 22/25 → 24/25. Smoke 0-195: 162/195 unchanged.