diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index 8dec71ed..ea20b3f8 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -58,7 +58,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 12. **[done (+2)] `show` multi-element + display retention** — `show / can show multiple elements with inline-block`, `can filter over a set of elements using the its symbol` (2 tests). Expected: +2. -13. **[in-progress] `toggle` multi-class + timed + until-event** — `toggle` (3 assertion-fail tests). Expected: +3. +13. **[done (+2) — partial, `can toggle for a fixed amount of time` needs an async mock scheduler (sync io-sleep collapses the toggle/un-toggle into one click frame)] `toggle` multi-class + timed + until-event** — `toggle` (3 assertion-fail tests). Expected: +3. 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. @@ -158,6 +158,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 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. + ### 2026-04-24 — cluster 12 show multi-element + display retention - **98c957b3** — `HS: show multi-element + display retention (+2 tests)`. Two fixes in `tests/hs-run-filtered.js`: (a) `mt` (matches-selector) now splits comma-separated selector lists and matches if any clause matches, so `qsa("#d1, #d2")` returns both elements. (b) `host-get` on an `El` for `innerText` returns `textContent` (DOM-level alias) so `when its innerText contains "foo"` predicates can see the mock's stored text. Suite hs-upstream-show: 16/18 → 18/18. Smoke 0-195: 162/195 unchanged.