Changelog

What we've shipped recently.

Slope ships every few days. We track everything that lands in production here — new features, improvements, bug fixes that matter to users.

new

Phase 2 complete — Multi-provider AI Visibility + tier gating

  • Added Gemini probe adapter with Google Search grounding (citations come from groundingMetadata).
  • Added Claude probe adapter with regex-based URL citation extraction.
  • ai_visibility_probe worker now fans out across every configured provider in one run.
  • AI Visibility gated to Growth+ plan with full-page upgrade card for lower tiers.
  • Trend sparkline added to the AI Visibility KPI card (inline SVG, no chart lib dep).
  • Competitor extraction improved — domain canonicalization, possessive matching, position tracking.
new

Sprint 25 — Bulk ops + audit log

  • POST /opportunities/bulk endpoint — approve/ignore/reset_to_new up to 200 opportunities at once.
  • Audit log core + Agency-tier-only /audit-log endpoint. Instrumented invites, role changes, integration connects, opportunity status changes.
  • Bulk-action bar on Opportunities page (multi-select checkboxes).
  • AuditLogPage in app with action labels + plan-upgrade card when below Agency tier.
new

Sprint 23 + 24 — Notifications + Impact measurement

  • Notification preferences (weekly_digest, quota_warnings, task_impact_summary) per user per org.
  • Weekly digest worker — Mondays 14:00 UTC, emails top 5 new opportunities to subscribed members.
  • Impact measurement worker — for tasks closed 14+ days ago, queries GSC for clicks/impressions/position delta before vs after.
  • Impact badges on TasksPage rows (up/down arrow + clicks% delta).
  • Daily sync orchestrator now also enqueues per-org impact measurement passes.
fixed

Critical worker registry bug

  • workers/__init__.py was only importing 3 of 11 worker modules — gsc_sync, ga4_sync, opportunity_detector, etc. were silently never registered.
  • All 11 worker types now wired. First-time job dispatch will actually work end-to-end.
new

Sync now button + custom domains

  • POST /sync-now per-project endpoint — on-demand fan-out of gsc_sync + ga4_sync + discover_urls.
  • Sync now button on Project Detail page (disabled while jobs in flight).
  • Custom domains live: app.slope.to, slope.to, www.slope.to (Amplify + Cloudflare DNS).
  • SES domain verified for slope.to + Cognito switched to send signup/reset emails from noreply@slope.to.
new

Phase 1 launch — Autonomous SEO Operations MVP

  • 22 sprints worth of work: full backend, full SPA, 14 API routers, 11 worker types, 7 opportunity rule families.
  • GSC + GA4 OAuth (one click, both scopes), GitHub App, Stripe billing, members + invitations, opportunity detection + GitHub issue automation, embeddings + clustering.
  • Phase 2 sprint 1 also shipped: AI Visibility prompts + Perplexity probes + R7 rule.