aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-20 17:38:52 -0400
committerCraig Jennings <c@cjennings.net>2026-06-20 17:38:52 -0400
commit3251cb05266422e2322b710e840c9f5c42fba8ba (patch)
tree5b6a89aac226ee4dc38b6d647a84494bb64ad5ce
parenta473aa7caae354d04429460beeb03b910fb67dcb (diff)
downloaddotemacs-3251cb05266422e2322b710e840c9f5c42fba8ba.tar.gz
dotemacs-3251cb05266422e2322b710e840c9f5c42fba8ba.zip
chore(todo): mark the browser-gates harness rewrite done
-rw-r--r--todo.org28
1 files changed, 12 insertions, 16 deletions
diff --git a/todo.org b/todo.org
index 575102256..395dd4c0f 100644
--- a/todo.org
+++ b/todo.org
@@ -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