fix(copy): truthful catalog figures and privacy/Honey wording (claim integrity) - #233
Open
BSalaeddin wants to merge 1 commit into
Open
BSalaeddin wants to merge 1 commit into
BSalaeddin wants to merge 1 commit into
Conversation
This was referenced Sep 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Claim integrity — truthful catalog figures, privacy and Honey wording
Executes the claim inventory at
C:\Users\alaed\Documents\Github\caramel-artifact\seo-2026-09-11\claim-inventory.md(109 claims: 66 TRUE / 13 FALSE / 9 STALE / 21 UNVERIFIABLE, live data pulled 2026-09-11 UTC). Fleet rule as in BioFlow #216: text-only, layout-preserving edits — no component restructuring, no new sections, no design changes, no new dependencies. Each edit is the smallest wording change that makes the sentence true; the FAQ data structure and the FAQPage JSON-LD generation are untouched (strings only, so visible text and JSON-LD stay verbatim-equal — pinned bytests/unit/faq-section.test.tsx).The two catalog figures now used everywhere: 4,000+ stores (floor 4,314
/coupons/<store>URLs in the prod sitemap) and 100,000+ coupon codes (floor 107,827 =GET /api/coupons?limit=1→total). Both rounded DOWN. The 2,954 auto-apply configs are never called "3,000+"./api/coupons/stats(11,328, a valid-only trust census) is never used as a catalog size.Edits (app copy + metadata)
src/components/FaqSection.tsx/api/coupons/statson 2026-07-28 before the census became valid-only; live visible total 107,827 / 4,314 storessrc/components/FaqSection.tsxwxt.config.ts:83-85badge sends every visited https domain on tab switch;background.js:84-86bearer on every call;report/route.ts:142-143storesuserIdsrc/components/WhyNot.tsxVIDEO_TITLE"The Truth About Honey" → "Exposing the Honey Influencer Scam" (aria-label "Play video: …")vc4yL3YTwWk(MegaLag)src/components/WhyNot.tsxsrc/components/WhyNot.tsxsrc/components/WhyNot.tsxsrc/components/WhyNot.tsxsrc/components/WhyNot.tsxPrivacyPolicy.tsx:70-71discloses GA / Hotjar / Sentrysrc/components/WhyNot.tsxREADME.md:98)src/components/OpenSourceSection.tsxsrc/components/OpenSourceSection.tsxsrc/components/OpenSourceSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/FeaturesSection.tsxsrc/components/PricingSection.tsxsrc/components/PricingSection.tsxsrc/components/PricingSection.tsxsrc/lib/heroStats.ts(+ comments inHeroTicketScene.tsx)3000→4000("4,000+ Supported Stores", DOM fallback + 3D scene; same digit count so the scene's dynamic offsets are unaffected)src/components/SupportedSection.tsxstore-detect.js:414-426)src/components/coupons/coupons-section.tsxvisibleCouponsWherewhich includespending/retry("Unverified" percoupons.ts:113-114); per-coupon badge keptsrc/app/(marketing)/coupons/page.tsxstatus='valid'src/app/(marketing)/coupons/[store]/page.tsxrobots:lines untouched for seo/index-policy)src/app/(marketing)/coupons/[store]/page.tsxreport/route.ts:75,142-143persistsuserIdsrc/app/(marketing)/sources/page.tsx/api/sources→data: [], page renders "No sources found."src/app/llms.txt/route.tssrc/app/llms.txt/route.tsEdits (repo docs)
README.mdREADME.mdtabs, activeTab, storage, identity, alarms+host_permissions https://*/*README.mdcoupon-runner.js:1024)Not changed (checked, no figures present):
src/app/layout.tsx,public/manifest.json,apps/caramel-extension/wxt.config.tsmanifest name/description,.githubworkflow comments (internal, historical user counts).apps/caramel-extension/background.js:63"2670 stores" is a stale payload-size comment, not public copy — left alone.Tests
Updated to the new wording:
tests/unit/faq-section.test.tsx— number pin nowover 100,000 coupon codes/more than 4,000 online storese2e/pages.spec.ts— /coupons H1 regex/today's coupon codes/ie2e/home.spec.ts— feature card headingFast & LightweightAdded:
e2e/seo-regression.spec.ts— new test "home raw HTML quotes only the reconciled catalog figures": raw server HTML must contain4,000+andover 100,000 coupon codes across more than 4,000 online stores, and must NOT contain139,000or3,000+. Deployment-safe (static copy, holds in both e2e contexts).tests/unit/coupons-index-page.test.ts,coupons-store-page.test.ts,coupons-section.test.tsxand the extension suites pin none of the changed strings — verified by grep, no changes needed.Verification (local, turbo
--force, fresh worktreeC:\wt-caramel-claims)CI covers:
checks-app.yml(lint / oxlint / prettier / knip / type-check / unit / e2e-pr hermetic incl. the new seo-regression pin) andchecks-extension.yml(extension unit suite). The e2e-push deployed context will run the same pin against dev.grabcaramel.com after merge.Owner questions (outside this PR)
/api/sources→[], renders "No sources found."). The copy is now softened, but decide: populate thesourcestable from the ingest pipeline, or noindex/sourcesuntil it has rows.PrivacyPolicy.tsx, effective date 2026-07-28): PR1 collection list omits the badge domain lookup, checkout page/cart text, coupon outcomes, sign-in details and optional savings sync (all declared to Mozilla); PR5 Sentry replay runs withmaskAllText: false. Legal doc with an effective date — not edited here; decide on disclosure wording vs. a badge toggle / masking, then bump the date.@CaramelOfficialtwittersite/creatorinpricing/page.tsxandcoupons/page.tsx— does the X account exist? Not inbrandLinks.ts; remove the fields if not.support/page.tsx) — kept; confirm someone watches the feedback inbox.FeaturesSection.tsx) — kept; the inventory's rewrite ("Every change lands through a public pull request on GitHub") is more than a one-phrase change. Say the word and it goes in.