A/B Test Mid-Cycle Status Brief — sentinel-hero-cta-test

Both variants on sentinel-hero-cta-test are collecting clean event data now — Variant B's tracking was broken at launch and has been fixed. As of today: Variant A has roughly 500 impressions and 15 conversions; Variant B has roughly 485 impressions and 12 conversions (live counts always available via GET /api/ab-events). Expect another 2-3 weeks of traffic before the result is statistically meaningful, so no winner call yet. Infrastructure is solid: UTM capture on impressions and event_type tracking on conversions (hero_cta_click, waitlist_signup, demo_signup) are stable — no missing rows. None of this needs owner action right now beyond patience.

A/B Test Landing Page CTA

Released two CTA variants on the landing page hero: Variant A reads "Save My Spot" and Variant B reads "Catch Bugs Before Users Do." Traffic is split evenly to measure which drives higher waitlist conversion.

Sentinel Demo Page

Shipped an interactive demo page at /demo that shows live commit feeds, real-time static analysis, and alert dispatch. Includes an optional tooltip tour to guide first-time visitors through the product experience.

Telemetry System

Every push, PR, analysis run, and alert dispatch is now recorded in the telemetry_events table. The /api/telemetry endpoint exposes repos connected, bugs detected per day, alerts sent, and alert open rate — giving the team full visibility into product usage.

GitHub + GitLab Webhook Integrations

Sentinel now receives push and pull request events from both GitHub and GitLab. Each event triggers static analysis and the results are dispatched via Slack if SLACK_WEBHOOK_URL is configured, or stored in the alerts table for later retrieval.

Alert System with DB Persistence

Static analysis findings are now persisted to the alerts table and emitted via Slack webhook when SLACK_WEBHOOK_URL is set. New endpoints: GET /api/alerts and GET /api/alerts/:id (authenticated via x-polsa-api-token header). Pool singleton consolidated into db/index.js.

Promoted A/B Test Winner — {{winner_label}}

Variant {{winner}} ({{winner_label}}) won sentinel-hero-cta-test with a +{{lift_pct}}% relative lift (+{{absolute_lift_pp}}pp absolute) over Variant {{loser}} ({{loser_impressions}} impressions / {{loser_conversions}} conversions = {{loser_rate}} vs {{winner_impressions}} / {{winner_conversions}} = {{winner_rate}}). Confidence {{confidence_pct}}% (p = {{p_value}}) over {{test_run_days}} days. The winning copy "{{winner_label}}" is now the permanent hero CTA on the landing page; the variant split in server.js has been removed. Next review on {{next_review_date}}.