Product Updates
parse Slack Block Kit markers for Publish/Skip — and creative lessons feedback loop from Slack grades
parse Slack Block Kit markers for Publish/Skip · creative lessons feedback loop from Slack grades · rename Product Updates to Product Updates
Here’s what’s new for shoppers (August 12, 2026). Short notes — no version numbers.
Highlights
New creative lessons feedback loop from Slack grades
Distill human Slack FAIL/PASS eval grades into a shop-scoped `creative_lessons` research document and inject `{creativeLessons}` into art-director + framework-strategist prompts on the next `generateMarketingAssets` run.
Improved rename Product Updates to Product Updates
Renames the customer-facing **Product Updates** label to **Product Updates** (locales, storefront string bundles, theme editor labels, Slack/cron titles).
Improved label News nav as Product Updates
Shopify blog title is now **Product Updates** (handle stays `news`).
Improvements
- Slack draft review now includes the summary dek + full Highlights/Improvements/Fixes body in Block Kit **and** fallback `text` (not title/link only).
- Subscribe form dual-tags `shipping-log,product-updates` (Phase 3 Liquid).
- Remove duplicate `card__content` and 50-char title truncation on article cards.
- We added deterministic `stripCatalogDisplayTitleVariantNoise` / `normalizeCatalogDisplayTitle` after LLM enhance and title rewrite.
- We added PostHog as an `analytics_event` fan-out platform (batch to `POSTHOG_HOST_PUBLIC` / Web App `115836`) so server events like `offer_submitted` and `purchase` reach PostHog.
Fixes
- Skip/Publish buttons failed silently: `conversations.replies` returns only the short fallback `text`, while the article marker lived in Block Kit section mrkdwn (HTML-escaped as `<!-- … -->`).
- Wednesday cron drafts now use shopper-facing blurbs from `releaseNote` / PR Summary bullets (no more `From #NNN` stubs) and benefit-first series titles.
- Filter sold-out products out of the PDP **You may also like** grid (Shopify related recommendations and `collections.all` fallback/top-up).
- Documents H1 as display/hero vs H2 as Figma Heading L/M/S (32/24/20 at 1280/768/<768) in `buyr-typography.scss`.
- Align Cursor OAuth Connect with MCP Authorization + RFC 6749/6750/9207: invalid Bearers return **401** with `WWW-Authenticate` (`invalid_token`, `resource_metadata`, `scope`).
- Accept optional RFC 6749 `scope`, validate against AS `scopes_supported`, redirect `invalid_scope` for bad tokens.
- Restore Dawn’s dual `card__content` on blog article cards so `card--standard` titles/links are visible and clickable on `/blogs/news`.
- Replace Dawn square `.field` / `.button` chrome on Product Updates subscribe with Buyr pill input + green CTA tokens.
- Lock only `analytics_platform_queue` rows during flush claim (`FOR UPDATE OF apq`) so concurrent GA4/PostHog flushes no longer SKIP LOCKED each other on the shared `analytics_event`.
- Match the offer drawer close control to other mobile drawers (36×36 hit target + SVG icon).