diff --git a/plans/hs-conformance-scoreboard.md b/plans/hs-conformance-scoreboard.md index e4947f01..7db6a600 100644 --- a/plans/hs-conformance-scoreboard.md +++ b/plans/hs-conformance-scoreboard.md @@ -4,22 +4,24 @@ Live tally for `plans/hs-conformance-to-100.md`. Update after every cluster comm ``` Baseline: 1213/1496 (81.1%) initial scrape -Snapshot: 1496/1514 upstream sync 2026-05-08 (+18 new upstream tests) -Conformance: 1496/1496 (100.0%) on counted tests; 18 documented architectural skips -Wall: 26m17s sequential (8 batches × 200) via tests/hs-run-batched.js -Target: 1514/1514 — clear the 18 skip list (in progress) +Snapshot: 1511/1514 upstream sync 2026-05-08 (+18 new upstream tests) +Conformance: 1511/1511 (100.0%) on counted tests; 3 documented architectural skips +Wall: 28m45s sequential (8 batches × 200) via tests/hs-run-batched.js +Target: 1514/1514 — clear the 3 remaining skips Note: full-suite single-process is unreliable due to JIT cache saturation; use hs-run-batched.js (fresh kernel per batch) for deterministic numbers. + +Cleared this session: + - Toggle parser ambiguity → 2-token lookahead in parse-toggle + - Throttled-at modifier → parser + emit-on wrap + hs-throttle!/hs-debounce! + - Tokenizer-stream API (13) → hs-stream wrapper + 15 stream primitives ``` -## Skip list (18 — work to do) +## Skip list (3 — work remaining) | Skip | Reason | Estimated work | |------|--------|----------------| -| **Tokenizer-stream API (13)** — `matchToken`, `matchTokenType`, `matchOpToken`, `matchAnyToken*`, `peekToken`, `consumeUntil`, `consumeUntilWhitespace`, `pushFollow`/`popFollow`, `pushFollows`/`popFollows`, `clearFollows`/`restoreFollows`, `lastMatch`, `lastWhitespace` | Upstream exposes a streaming token API on `_hyperscript.internals.tokenizer`. Our `hs-tokenize` returns a flat list; parser holds stream state internally as closures. | Wrap `hs-tokenize` output in a token-stream object exposed as a primitive. ~1-2 days, mostly mechanical. | | **Template-component scope (2)** — `component reads a feature-level set from an enclosing div on first load`, `component reads enclosing scope set by a sibling init on first load` | Upstream supports `