From 3c4d68575cdd72649c297dfff341b3cfbb3aaf9c Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 24 Apr 2026 06:54:50 +0000 Subject: [PATCH] HS-plan: log throw respond done +2 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 208f98c3..a7874f90 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -68,7 +68,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 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. **[in-progress] `throw respond async/sync`** — `throw / can respond to async/sync exceptions in event handler` (2 tests). Expected: +2. +18. **[done (+2)] `throw respond async/sync`** — `throw / can respond to async/sync exceptions in event handler` (2 tests). Expected: +2. ### Bucket B: parser/compiler additions (medium risk, shared files) @@ -160,6 +160,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-24 — cluster 18 throw respond via exception event +- **dda3becb** — `HS: throw respond via exception event (+2 tests)`. `hs-on` wraps each event handler in a `guard` that catches thrown exceptions and re-dispatches them as an `exception` DOM event on the same target with `{error: e}` as detail. `on exception(error)` handlers (also registered via hs-on) receive the event and destructure `error` from detail. Wrapping skips `exception`/`error` event handlers to avoid infinite loops. Suite hs-upstream-throw: 5/7 → 7/7. Smoke 0-195: 162/195 unchanged. + ### 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.