diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-20 17:38:52 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-20 17:38:52 -0400 |
| commit | 3251cb05266422e2322b710e840c9f5c42fba8ba (patch) | |
| tree | 5b6a89aac226ee4dc38b6d647a84494bb64ad5ce | |
| parent | a473aa7caae354d04429460beeb03b910fb67dcb (diff) | |
| download | dotemacs-3251cb05266422e2322b710e840c9f5c42fba8ba.tar.gz dotemacs-3251cb05266422e2322b710e840c9f5c42fba8ba.zip | |
chore(todo): mark the browser-gates harness rewrite done
| -rw-r--r-- | todo.org | 28 |
1 files changed, 12 insertions, 16 deletions
@@ -114,22 +114,18 @@ delete (10a56789), test-file inline-integrity dedup — subTest loop + shared inline-strip.mjs (13969c70), generate.py lazy _build()/__getattr__ (6df4ebdc), browser-gates assertPreviewFaces for the 3 preview gates (5627f137). -*** Remaining — browser-gates harness rewrite (HIGHEST RISK, deferred for review) -Two parts of the browser-gates.js item are intentionally NOT done in the -autonomous no-approvals run — they rewrite the harness that verifies everything, -so a subtle helper bug manufactures silent false-greens across all 44 gates: -- =gate(name, body)= helper for the ~39 gates' =let ok;notes;A=...; title; result-div= - boilerplate. LOW value (pure boilerplate; note format drifted 17 " | " vs 24 - " fails="). CRITICAL CONSTRAINT on any attempt: each gate keeps its literal - =location.hash==='#NAMEtest'= (run-tests.sh greps it to discover gates) — wrap only - the body, e.g. =if(location.hash==='#x')gate('X','x',A=>{...})=. Verify: all 44 gates - green AND a deliberately-broken assertion still FAILS (proved feasible — chrome is - available; the assertPreviewFaces commit ran exactly that check). -- =withSavedState(keys, body)= for the ~13 mutating gates' inconsistent - PALETTE/MAP/UIMAP/SYNTAX snapshot-restore (7 mutating gates currently restore - NOTHING — a real state-pollution bug, not just dedup). Needs per-gate key analysis. -Both warrant Craig's eye before/after given the harness-rewrite risk. The -=assertPreviewFaces= part of this item is already done (5627f137). +*** DONE — browser-gates harness rewrite (with Craig's go-ahead, 2026-06-20) +- =gate(id, body)= helper (05697e83): the 38 standard gates' ok/notes/A + title + + result-div boilerplate, note format standardized to " fails=". Each call site keeps + its literal =location.hash==='#NAMEtest'=. 6 custom gates stay inline. First automated + attempt deleted gates (a closing-finder spanned boundaries) — caught by a gate-count + guard, reverted, redone anchored on each gate's unique =d.id=. Verified all 44 green + + a forced A(false) in a converted gate still FAILs. +- =withSavedState(keys, body)= (a473aa7c): wraps the 7 restore-nothing gates, scoped to + the globals each mutates; JSON-clone snapshot + finally-restore (structuredClone threw + on the studio objects — caught by the gate run as "no verdict", switched to JSON like + the gates' own local saves). The 14 self-restoring gates left as-is. Verified 44 green, + restore round-trip holds, broken assertion in a wrapped gate still FAILs. *** Remaining — item-8 plan() factory (deferred, low value) The =plan(overrides)= factory for the ~30 planPaletteGenerator calls (test-app-core.mjs |
