snapshots.gf.cx R2 push — 2026-06-14

DAILY HYGIENE · · detail report · check snapshots_r2_push

Verdict: 🔴 RED

17 surface(s) have a BROKEN LATEST entry — visible as a broken featured card on snapshots.gf.cx: antifragile-gf, crm-gf-cx, cv-gf-cx, dash-reports, data-gf-cx, data-sourced, growth-gf-cx, happiness-gf-cx, pa-gf-cx, patterns-gf-cx, radar-gf-cx, sandbox-fal, sandbox-gf-cx, sandbox-one-pager, services-gf-cx, status-gf-cx, status-transfer-windows.

Delta-results

Metric Value
surfaces [{‘slug’: ‘antifragile-gf’, ‘total_entries’: 11, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘antifragile-gf_2026-06-13_0f59c41.jpg’, ‘antifragile-gf_2026-06-14_0f59c41.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘antifragile-gf_2026-06-14_0f59c41.jpg’}, {‘slug’: ‘crm-gf-cx’, ‘total_entries’: 4, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘crm-gf-cx_2026-06-13_110659.jpg’, ‘crm-gf-cx_2026-06-14_110135.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘crm-gf-cx_2026-06-14_110135.jpg’}, {‘slug’: ‘cv-gf-cx’, ‘total_entries’: 4, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘cv-gf-cx_2026-06-13_110758.jpg’, ‘cv-gf-cx_2026-06-14_110146.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘cv-gf-cx_2026-06-14_110146.jpg’}, {‘slug’: ‘dash-gf-cx’, ‘total_entries’: 42, ‘in_window’: 4, ‘missing_r2’: 2, ‘missing_examples’: [‘dash-gf-cx_2026-06-13_110008.jpg’, ‘dash-gf-cx_2026-06-14_110009.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: False, ‘latest_filename’: ‘dash-gf-cx_2026-06-14_123047.jpg’}, {‘slug’: ‘dash-reports’, ‘total_entries’: 68, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘dash-reports_2026-06-13_f07215c.jpg’, ‘dash-reports_2026-06-14_f07215c.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘dash-reports_2026-06-14_f07215c.jpg’}, {‘slug’: ‘data-gf-cx’, ‘total_entries’: 28, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘data-gf-cx_2026-06-13_df04686.jpg’, ‘data-gf-cx_2026-06-14_df04686.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘data-gf-cx_2026-06-14_df04686.jpg’}, {‘slug’: ‘data-sourced’, ‘total_entries’: 26, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘data-sourced_2026-06-13_df04686.jpg’, ‘data-sourced_2026-06-14_df04686.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘data-sourced_2026-06-14_df04686.jpg’}, {‘slug’: ‘growth-gf-cx’, ‘total_entries’: 11, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘growth-gf-cx_2026-06-13_110637.jpg’, ‘growth-gf-cx_2026-06-14_110127.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘growth-gf-cx_2026-06-14_110127.jpg’}, {‘slug’: ‘happiness-gf-cx’, ‘total_entries’: 37, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘happiness-gf-cx_2026-06-13_468c267.jpg’, ‘happiness-gf-cx_2026-06-14_468c267.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘happiness-gf-cx_2026-06-14_468c267.jpg’}, {‘slug’: ‘pa-gf-cx’, ‘total_entries’: 21, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘pa-gf-cx_2026-06-13_110244.jpg’, ‘pa-gf-cx_2026-06-14_110040.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘pa-gf-cx_2026-06-14_110040.jpg’}, {‘slug’: ‘patterns-gf-cx’, ‘total_entries’: 39, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘patterns-gf-cx_2026-06-13_9c650b3.jpg’, ‘patterns-gf-cx_2026-06-14_9c650b3.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘patterns-gf-cx_2026-06-14_9c650b3.jpg’}, {‘slug’: ‘radar-gf-cx’, ‘total_entries’: 4, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘radar-gf-cx_2026-06-13_110727.jpg’, ‘radar-gf-cx_2026-06-14_110141.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘radar-gf-cx_2026-06-14_110141.jpg’}, {‘slug’: ‘sandbox-fal’, ‘total_entries’: 7, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘sandbox-fal_2026-06-13_110552.jpg’, ‘sandbox-fal_2026-06-14_110115.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘sandbox-fal_2026-06-14_110115.jpg’}, {‘slug’: ‘sandbox-gf-cx’, ‘total_entries’: 8, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘sandbox-gf-cx_2026-06-13_110524.jpg’, ‘sandbox-gf-cx_2026-06-14_110109.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘sandbox-gf-cx_2026-06-14_110109.jpg’}, {‘slug’: ‘sandbox-one-pager’, ‘total_entries’: 2, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘sandbox-one-pager_2026-06-13_110615.jpg’, ‘sandbox-one-pager_2026-06-14_110121.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘sandbox-one-pager_2026-06-14_110121.jpg’}, {‘slug’: ‘services-gf-cx’, ‘total_entries’: 1, ‘in_window’: 1, ‘missing_r2’: 1, ‘missing_examples’: [‘services-gf-cx_2026-06-14_110152.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘services-gf-cx_2026-06-14_110152.jpg’}, {‘slug’: ‘status-gf-cx’, ‘total_entries’: 254, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘status-gf-cx_2026-06-13_1a1c19f.jpg’, ‘status-gf-cx_2026-06-14_1a1c19f.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘status-gf-cx_2026-06-14_1a1c19f.jpg’}, {‘slug’: ‘status-transfer-windows’, ‘total_entries’: 23, ‘in_window’: 2, ‘missing_r2’: 2, ‘missing_examples’: [‘status-transfer-windows_2026-06-13_1a1c19f.jpg’, ‘status-transfer-windows_2026-06-14_1a1c19f.jpg’], ‘broken_url_count’: 0, ‘latest_broken’: True, ‘latest_filename’: ‘status-transfer-windows_2026-06-14_1a1c19f.jpg’}]
total_missing_r2 35
total_broken_url 0
latest_broken_surfaces [‘antifragile-gf’, ‘crm-gf-cx’, ‘cv-gf-cx’, ‘dash-reports’, ‘data-gf-cx’, ‘data-sourced’, ‘growth-gf-cx’, ‘happiness-gf-cx’, ‘pa-gf-cx’, ‘patterns-gf-cx’, ‘radar-gf-cx’, ‘sandbox-fal’, ‘sandbox-gf-cx’, ‘sandbox-one-pager’, ‘services-gf-cx’, ‘status-gf-cx’, ‘status-transfer-windows’]

Why this tripwire exists

Catches the silent R2 upload failure where surface_snapshot.py captures the local JPEG successfully but wrangler r2 object put fails because launchd isn’t carrying CLOUDFLARE_API_TOKEN. Added 2026-06-05 after dash-gf-cx_2026-06-05_110006.jpg rendered as a broken featured card on snapshots.gf.cx (local 297 KB on disk, R2 URL 404). RED when any surface’s LATEST entry has no r2_url (= visible broken card) or ≥3 entries across portfolio are missing within 48h. Backfill heal: surface_snapshot.py --backfill-r2.


Generated by dare_daily_hygiene.py · check snapshots_r2_push · 2026-06-14 · authoritative click-through for the dash.dare.co.uk Site-Health card.

Source: dare_snapshots_r2_push_2026-06-14.md · Rendered