Session handover — 2026-07-10 pt2¶
Single-slice session: the muted-tone render bug (the residual #1 from the
morning handover, top deployed-fidelity gap since 2026-07-07) is closed — and
it was never a render bug. The deployed garvanbay home painted its bg-muted
bands correctly all along (#f2f2f2 ours vs #f3f3f3 live, visually
identical); the ours-capture probe's rgb-only parseCssColor couldn't read
Chromium's oklch(…) computed serialization, read every oklch-painted tone as
"no fill" → page-white → default, and fabricated the gap. Fixed
instrument-side in commit 93d6bd5; scorecard re-verified across all 10
pages: SHIP held at composite 92.2, home S 83.5→84.6.
Where to look¶
- Commit
93d6bd5— the whole slice: canvas colour-normalization fallback inlib/capture-section-backgrounds.js#parseCssColor(rgb fast path kept byte-identical for live Wix captures; oklch/oklab/color()/color-mix resolved via a 1×1 canvas; covers all four call sites including the previously-null_styleRaw.textColorreads), plus both wiki updates. - known-patterns "The symmetric re-capture probe must parse every colour
space OUR lane paints in" — the session's lesson: the blindness was
asymmetric (live = legacy rgb, parsed fine; ours = oklch, all invisible),
so every diff blamed our render and two sessions of debugging ruled out the
wrong side (
@source, D1). Detection rule: a whole class of styling "never landing" on ours + nulls in secondary captured fields = test the probe against our own lane's serialization. - known-issues (updated) — the muted-tone entry and the garvanbay
end-to-end residual #1 closed;
book-an-appointmentupdated to S=37.5 (the fixed instrument exposed a real, accepted divergence: the hand-crafted "Our Services" grid carries a muted band live doesn't have); scorecard latest annotated (site axes unchanged post-fix, home S 84.6). - No deploy, no D1 change — nothing render-side was touched; the fix is entirely in the capture lane. All four validate suites green.
Residual / next priorities¶
- Upstream emdash repro — still to be posted against #1158
(
docs/pipeline/upstream-emdash-1158-repro.md; delete after filing). Operator editability stays blocked until upstream fixes the save race. - WCP regen + patch with the
3b71607pipeline (teaser CTAs, cta bodies, split galleries) — graft pattern, never a blind reseed. - Durable wiki publishing — connect the Pages project to the repo; until then session-end's manual deploy is the mechanism.
- New (small): ours-capture reads hero
scrim=noneon our own render — hero-4 scrims via gradientbackground-image, which the overlay probe doesn't sample; a smaller instance of the same instrument-asymmetry class this session fixed for colours. Pre-existing, unchanged; matters only if scrim round-trip verification is ever wanted. - Earlier residuals unchanged: home/index alias in
scorecard.js's page join, re-match dup-collapse, deployed-admin OTP spot-check, ADR-0009 Slices 5/6,infra/llm-gateway/commit-or-delete (Cathal's call).