Changelog
Changelog
What we're building and shipping.
Pre-launch · wave 28
2026-04-26- NewTerms of Service and Privacy Policy shipped with full GDPR Art. 13 + CCPA disclosures and a complete sub-processor table
- NewGDPR self-serve: data export (Art. 20) and account deletion (Art. 17) wired into Settings
- NewStripe self-cancel via Customer Portal — required by Stripe ToS, EU "easy cancellation," and CA SB-313
- NewTransactional email via Resend: welcome, trial-ending T-2 days, payment-failed
- NewTrial-reminder cron at 09:00 UTC daily with idempotent send tracking
- ImprovedBranded 404 / error / loading pages and a shared empty-state component
- ImprovedAI-driven onboarding audit (gpt-4o-mini, structured JSON output) replaces the canned template every user used to receive
- ImprovedPublic-by-default middleware so marketing and legal pages stop redirecting unauth visitors to sign-in
- ImprovedCI now runs Playwright e2e against a pgvector Postgres service alongside the existing lint + typecheck + Vitest jobs
Pre-launch · wave 5 — security audit
2026-04-25- ImprovedTelegram webhook now verifies `X-Telegram-Bot-Api-Secret-Token`; fails closed in production
- ImprovedSSRF protection on link-metadata fetcher: hostname blocklist plus manual one-hop redirect revalidation
- ImprovedCORS allow-list for the Chrome extension (chrome-extension://, moz-extension://, linkedin/twitter/x.com)
- NewSECURITY.md published with threat model, controls table, and vulnerability-reporting flow
Pre-launch · wave 4 — production-readiness
2026-04-24- NewApify cost guard: niche-shared cache (30-min TTL) + canonical 10-niche resolver, hitting the $0.03–0.10/user/day target
- NewEdge-level rate limits per route (generate, daily-juice, drafts, etc.) with 15-min abuse cooldown
- New`/api/health` now pings Postgres, verifies pgvector, and validates required envs — returns 503 on any failure
- NewGitHub Actions CI: lint + typecheck + Prisma validate + Next build with a real pgvector Postgres service
Pre-launch · waves 1–3 — core surface live
2026-04-23- NewStreaming `/api/generate/stream` wired end-to-end: Clerk auth → trial gate → hybrid retrieval → anti-slop dictionary → Bulb 2nd-pass virality scoring → save Draft
- NewHybrid retrieval (pgvector semantic + structured filters + recency boost) powers every generation
- NewChrome Extension v1 saves clips via signed extension tokens; bulk-select in feeds
- NewDaily Juice agent: Perplexity trends → OpenAI render → per-niche cache; cron refresh every 6h
- NewRejection-learning loop: dismissed drafts feed back into avoidedPhrases on the user's voice profile