diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index c3b549e4..c8ca4487 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -66,7 +66,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 16. **[done (+1)] `send can reference sender`** — 1 assertion fail. Expected: +1. -17. **[in-progress] `tell` semantics** — `tell / attributes refer to the thing being told`, `does not overwrite me symbol`, `your symbol represents thing being told` (3 tests). Expected: +3. +17. **[blocked: tell semantics are subtle — `me` should stay as the original element for explicit `to me` writes but the implicit default for bare `add .bar` inside `tell X` should be X. Attempted just leaving `you`/`yourself` scoped (dropping the `me` shadow) regressed 4 passing tests (`restores proper implicit me`, `works with an array`, etc.) which rely on bare commands using `me` as told-target. Proper fix requires a `beingTold` symbol distinct from `me`, with bare commands compiling to `beingTold-or-me` and explicit `me` always the original — more than a 30-min cluster budget.] `tell` semantics** — `tell / attributes refer to the thing being told`, `does not overwrite me symbol`, `your symbol represents thing being told` (3 tests). Expected: +3. 18. **[pending] `throw respond async/sync`** — `throw / can respond to async/sync exceptions in event handler` (2 tests). Expected: +2. @@ -160,6 +160,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-24 — cluster 17 tell semantics (blocked, reverted) +- Attempted: drop the `me` shadow from `tell X` compile so `add .bar to me` preserves original and `put your innerText into me` writes to original. Fixed tests 2 and 3 but regressed 4 others (`restores a proper implicit me`, `works with an array`, `establishes a proper beingTold symbol`, `ignores null`) which require bare commands like `add .bar` (no explicit target) to use the told as default. Reverted per abort rule. Proper fix needs a distinct `beingTold` symbol with compiler rewriting bare commands to target `beingTold-or-me` while leaving explicit `me` alone — >30min cluster budget. + ### 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.