Skip to content

Latest commit

 

History

History
118 lines (83 loc) · 4.31 KB

File metadata and controls

118 lines (83 loc) · 4.31 KB

v1.3.7 - Signal Deck Enhancements & OG Image Fix

Released: January 31, 2026

Summary

Enhanced Signal Deck with full Bluesky rescan capabilities, improved UX for status management, and fixed a critical bug where talk OG images were incorrectly falling back to YouTube thumbnails.


Features

Signal Deck Improvements

Per-Share Rescan Button

  • Added rescan button (🔄) for Bluesky shares that fetches fresh data from the platform
  • Rescan harvests: post text (saved as Notes), actual posted date, TarotTALKS URL extraction
  • Automatically resolves cardId/talkId from extracted URLs
  • Sets status to "verified" after successful rescan
  • Available in both ShareRow (Shares list) and MentionRow (Mentions inbox)

Status Workflow Enhancements

  • Added descriptive tooltips to all status badges explaining each status
  • Made "posted" status clickable to one-click convert to "verified"
  • Status tooltips: draft, posted, verified, discovered, acknowledged

Platform Auto-Detection

  • NewShareForm now auto-detects platform from post URL
  • Supports: bsky.app → Bluesky, x.com/twitter.com → X, threads.net → Threads, linkedin.com → LinkedIn
  • Shows warning with "Fix it" button when detected platform doesn't match selected

Visual Improvements

  • ShareRow now displays card/talk images based on linked content
  • Shows card image for card shares, talk thumbnail for talk shares
  • Platform badge overlays the content image

Bluesky Service Enhancements

New getFullPostData Function

  • Fetches complete post data: text, createdAt, author info, metrics
  • Used by rescan feature to harvest all post details
  • Added getFullPostDataFromUrl convenience wrapper

Bug Fixes

Talk OG Image Thumbnail Fix (Critical)

Problem: Talk share images on social platforms were showing YouTube thumbnails instead of custom thumbnails stored in the database.

Root Cause: The getThumbnailUrl function prioritized YouTube fallback over non-Supabase URLs, even when a valid thumbnailUrl was stored.

Solution:

  • Simplified thumbnail selection: if thumbnailUrl is set in database, use it
  • Only fall back to YouTube when thumbnailUrl is null/empty
  • Now matches Signal Deck behavior (which shows database thumbnailUrl directly)
  • Added revalidate = 0 to OG image generation to prevent caching stale data

Files Changed:

  • lib/utils/thumbnails.ts - Simplified priority logic
  • app/talks/[slug]/page.tsx - Point to generated OG image instead of raw thumbnail
  • app/talks/[slug]/opengraph-image.tsx - Added revalidate and logging

Developer Experience

Debugging Improvements

Added comprehensive logging throughout thumbnail selection:

  • [Talk OG Image] - Raw data from database
  • [getThumbnailUrl] - Selection logic path taken
  • [isSupabaseStorageUrl] - Supabase URL detection
  • Filter Vercel logs by these prefixes to debug thumbnail issues

Documentation Updates

CLAUDE.md


Files Changed

New/Modified Components

  • components/admin/signal-deck/ShareRow.tsx - Rescan button, status tooltips, content images
  • components/admin/signal-deck/MentionRow.tsx - Rescan button, tooltips
  • components/admin/signal-deck/NewShareForm.tsx - Platform auto-detection

API Routes

  • app/api/admin/social-shares/[id]/rescan/route.ts - Full rescan implementation
  • app/api/admin/mentions/route.ts - Save post text as notes

Services

  • lib/services/bluesky.ts - getFullPostData, getFullPostDataFromUrl
  • lib/utils/thumbnails.ts - Simplified selection logic with logging
  • lib/supabase/server.ts - Added logging to isSupabaseStorageUrl

Pages

  • app/talks/[slug]/page.tsx - Use generated OG image URL
  • app/talks/[slug]/opengraph-image.tsx - Logging, revalidate=0

Documentation

  • CLAUDE.md - External tools section

Testing Notes

After deployment, verify:

  1. Rescan button on Bluesky shares fetches fresh data
  2. Talk OG images show database thumbnail (not YouTube fallback)
  3. Use card validators to refresh cached previews
  4. Check Vercel logs for [getThumbnailUrl] entries if issues persist