You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(tools): pin the block catalog's rendered text to English
The showcase read as German to a German viewer. It is not: every string the
catalog sends is English, and what the product owner saw is Slack rendering
its own chrome in the reader's locale. "Morgen 7:00 Uhr" is the `<!date^…>`
token we deliberately send so each reader gets the time in their own timezone,
and "Button für <label>" wraps our English button labels in Slack's word for
"Button". Hardcoding English over either would break every other locale, so
neither is touched.
What is now pinned is the half we control. The sweep walks all three states a
reader can reach — page 1, page 2 before confirming, page 2 after confirming —
collects every human-readable string in the payload `renderSlackMessage` hands
to Slack, and rejects German diacritics and a bounded word deny-list. Keys
Slack keys off rather than draws are skipped, so an `action_id` cannot mask a
finding or invent one.
Three things keep it honest. The harvest is floored per state, because a sweep
over an empty harvest passes for free. Named strings from headings, container
titles, table cells, chart labels and task titles must be in reach, so the
walker cannot silently reach only the surface. And the detector is tested both
ways: it fires on "Zeitzone", "Morgen 7:00 Uhr" and "Kanal auswählen", and
stays quiet on "submit", "the tags we found" and "45 minutes" — the English
that merely contains those letters. Injecting German into a container title, a
page-2 label and a context note fails all three states with the path named.
Dates and numbers are checked separately, because German conventions survive an
all-English vocabulary: no `14.08.2026`, no decimal comma, the one hardcoded
date ISO, and the date token's fallback ISO too.
Live-verified against #bot-test: page 1 and page 2 with the confirmation both
delivered whole, and the readback carries no German of ours.
0 commit comments