From 8aec80cbb7ca0586f5303323286ea61c1d2f2f34 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Fri, 30 Oct 2026 20:51:26 -0400 Subject: [PATCH] docs(ui): record the 2026-10-30 browser sweep against coverage notes Marks the sweep-candidate list as executed (every knob driven in a real browser), preserves the four defect classes the sweep fixed so the next agent does not re-learn them the hard way, and pins the panel-vs- Playwright limitation (value assignment without change events) that any future automated spec of the htmx-triggered controls must work around. --- tests/ui/COVERAGE.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/ui/COVERAGE.md b/tests/ui/COVERAGE.md index 5d2f152c..32304b9b 100644 --- a/tests/ui/COVERAGE.md +++ b/tests/ui/COVERAGE.md @@ -71,3 +71,24 @@ New controls the Playwright sweep should cover once it lands: collection page. - API-level pins live in `TestPodcastEpisodeCollections` (7 subtests incl. the family-lens auditor case) + `TestPodcastPlayerOrderControl`. + +## 2026-10-30 — browser sweep executed (manual, OpenChamber panel) + +All controls above plus the item-3 builder/editor surfaces were driven +in a real browser against the dev stack. Outcomes + reusable gotchas: + +- Fixed during the sweep: templ has no `continue` STATEMENT (codegen + emits it as literal text — the library switcher's podcast exclusion + never worked); CSP attribute grammar (no backticks, no `?.`, no + if-statements in Alpine attrs); rules editor double-encoded payloads; + store hook must use the IMPORTED Alpine (window.Alpine?.store silently + no-ops). Pins: TestLibrarySwitcherExcludesPodcasts, templates CSP + source scan, TestPodcastEpisodeCollections/TestEpisodeCollectionsFilterTree. +- Panel limitation for future automated specs: `selectOption`-equivalent + via this panel sets the value WITHOUT a change event — htmx + change-triggers (player order dropdown, library switcher) must be + driven with Playwright-native interactions, not value assignment. +- Episode flows confirmed: picker Episodes tab → Add Selected → cards + with queue=collection: play links → chain hops keep the param; order + controls appear ONLY in feed mode (player + feed page share the + persisted override).