From 73e1669a5c6cec9c1f9b462861dbf73abb400eaf Mon Sep 17 00:00:00 2001 From: wtclaude Date: Sat, 29 Aug 2026 12:26:41 -0500 Subject: [PATCH] docs(website): the browser pass on the engagement screens (Phase 4b) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Six defects that only driving the two screens in a browser could find, plus two environment facts worth not re-deriving: - rebuilding client/dist while the server is running blanks the whole SPA. The HTML shell resolves core's hashed bundle filename at boot, so after a rebuild it points at a file that no longer exists; core's bundle 404s, window.__rg is never published, and modules/uo/entry.js throws MODULE_API.md §3.1's "core did not publish its shared dependencies" into a blank page. The error names core, and core is not at fault. Restart after every build. - a window.confirm blocks CDP entirely, so the two destructive actions cannot be driven from a script and a session that opens one is stuck until a human dismisses it. Exercise those paths over the API. - [x] AI-assisted: written with Claude Code (Opus) Co-Authored-By: Claude --- website/ENGAGEMENT.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/website/ENGAGEMENT.md b/website/ENGAGEMENT.md index 9fe9151..8af8947 100644 --- a/website/ENGAGEMENT.md +++ b/website/ENGAGEMENT.md @@ -1991,6 +1991,45 @@ would have caught, and both of them in Phase 4a's code rather than 4b's: 2. **"1 rule still use this segment."** The delete refusal pluralised the noun and not the verb. It is a one-word fix and it is in the sentence an operator reads at the moment they are being told no. +**Six more defects came out of driving the two screens in a browser**, after the API walk above had +already found the two in Phase 4a's code. None of them is visible from a test or from `curl`, and two +of them cost an operator something real: + +1. **The Audience dropdown rendered empty before a trigger was chosen.** `audienceChoicesFor(null)` + answers `[]` — correctly, because without a trigger there is no ceiling and therefore nothing it + may legitimately offer. But a `