Compare commits

..

No commits in common. "dev" and "v0.9.5" have entirely different histories.
dev ... v0.9.5

1 changed files with 0 additions and 60 deletions

View File

@ -46,66 +46,6 @@ sequence would have implied more.
## Entries
### 2026-08-18 — Batch 11 closed without a line of code, and a browser found what twenty issues had not
Batch 11's four issues were all viewport claims. **All four were false**, and
this time they were disproved by rendering the site rather than by reading it.
| # | claim | measured |
| --- | --- | --- |
| 195 | dropdowns clip on constrained viewports | **no clipping ancestor exists** — walked every ancestor, all `overflow: visible`. At 768px the Industries dropdown ends 95px clear of the edge |
| 196 | logo overlaps nav at 320px | text ends x=252, burger starts x=264 — a **12px gap**. No truncation, no horizontal scroll |
| 197 | no image fallbacks, users see broken placeholders | every image 200, **zero broken** after a full scroll, CLS 0.008 against a 0.1 threshold, LCP 220ms |
| 198 | click handler misses nested children | `e.target.closest('a')` **already is** delegation; the listener is on `document` |
#196 also conflated two unrelated elements — `w-[85vw] max-w-[300px]` is the
mobile Sheet panel, not the header.
**Running total across Batches 10 and 11: three of ten were real.** Seven
misstated their own evidence, and two of those would have made the site worse
if actioned.
**So I built the thing that should have existed first.** `scripts/qa-browser.mjs`
drives real Chromium at real viewports and measures horizontal scroll, broken
images, elements past the right edge, CLS and LCP.
**On its first production run it found two defects none of the twenty had
noticed**, and both were real:
- **#214 (P1)** — at exactly 768px, iPad portrait, the header's *Request
Consultation* CTA measured x 676-778 against a 768px viewport. Ten pixels
sliced off, invisible because `overflow-x: hidden` suppresses the scrollbar,
and unreachable because the burger menu is already hidden at that width. The
primary conversion action, cut off on one of the most common tablet viewports
there is.
- **#215 (P2)** — Google's reCAPTCHA iframe is a fixed 304px. At 320px it ran
25px past the edge, clipping the branding and the privacy links.
Both fixed, released as **v0.9.5**, deployed, and verified live: the CTA now
636-752 at 768px, the widget 41-299 at 320px, and `qa-browser.mjs` reports
nothing across five pages at five viewports.
**The tool lied to me twice before I trusted it**, which is the part worth
keeping. It reported a healthy lazy-loaded badge as broken at three viewports —
a coarse scroll outrunning the intersection observer — and its own argument
parser swallowed `320` as a path when `--paths` preceded `--viewports`. Both
found and fixed by checking its output against reality before believing it. A
checker that cries wolf is how the next real finding gets ignored, and this one
nearly started its life doing exactly that.
- **Closed:** #195, #196, #197, #198 (no change required, each with the
measurement), **Batch 11 milestone**; then #214, #215 and the new **Batch 16**
milestone, both fixed and shipped. Two releases and two deploys today, no
rollbacks.
- **Next action:** Batch 12 — the eleven content and SEO issues (#199#209).
These are copy judgements measured against `docs/design/REDESIGN_REVIEW.md`,
not measurable claims, so the browser tool does not help. Expect the same hit
rate and read each against the positioning document before rewriting anything.
- **Blockers:** none on the work. Six issues wait on the site owner (#68, #110,
#162, #213 in Batch 13; #69, #70 in Batch 14). **#211 is still the real
exposure**: the lead database has one backup copy, on one workstation, with no
schedule — four dumps taken today, all in the same place.
### 2026-08-18 — v0.9.4 released and deployed. Production is on a number
The first release and the first deploy this project has ever made through a