playground.kaireonai.com.
For the forward-looking view, see the roadmap.
2026-04-17 — Action Insights + Reporting Platform
Four coordinated phases shipped as a single milestone: close analytics gaps, make alerts actually fire, ship a full report builder and scheduler, and deliver a C-suite executive dashboard with Export + Save-as-Report across every view.Pilot deployment posture. This release ships as manual-only
automation. The alert evaluator, report scheduler, and scheduled
report runner all run through
/api/cron/tick, but CRON_TOKEN and AWS
EventBridge are intentionally not wired during pilot to avoid
runaway LLM / notification cost. Run Now buttons, Export buttons,
ad-hoc notification sends, and on-demand alert evaluation all work
unconditionally. See
EventBridge Setup for the optional
wiring path, and the roadmap for the pilot guardrails we
plan to ship before enabling automation by default.Phase 01 — Analytics Foundation
New analytical primitives that power every downstream surface in this milestone.- New
dashboard-datacaseselection_frequency— per-offereligibleCount,scoredCount,selectedCount,selectionRate,avgRank, andrankDistribution[]. AcceptschannelId,categoryId,decisionFlowId,segmentIdfilters. - New
dashboard-datacaseanomaly_candidates— compares current vs. baseline period across acceptance rate, revenue, and degraded scoring rate; classifies severity (info / warning / critical) from z-score + absolute percent change. - New
dashboard-datacasewhy_not_ranked— aggregate misses per offer:scoredTooLow,filteredByContactPolicy,filteredByQualification, andbeatenBy(top-5 competing offers). - Segment dimension added to
acceptance_rate,offer_performance,offer_performance_grouped,channel_effectiveness,daily_trend,revenue_trend. - Enriched
DecisionTraceJSON shapes — structuredrejectionReason,rankBefore/rankAfteron scoring results. - Cross-decision narrative helpers in
src/lib/ai/intelligence/decision-explainer.ts:explainOfferUnderperformance,explainSegmentCoverage,explainAnomaly.
Phase 02 — Notification Providers + AlertRule Execution
Pluggable notification system and live alert evaluation.NotificationProviderinterface + registry with Slack, Microsoft Teams, outbound webhook, and Ops-Email (SES) adapters.- New notifications tab in
/settings/integrations— add / test / enable / disable / delete destinations. - Encrypted credential storage in
PlatformSettingvault (AES-256-GCM); GET endpoints return redacted configs. AlertRuleevaluator — compares observed vs. threshold overwindowMinutes, derives severity, fans out to every destination inchannels, respectscooldownMinutes.- New settings page
/settings/alerts— CRUD for alert rules. - New API surface:
GET|POST|PATCH|DELETE /api/v1/notifications/providersPOST /api/v1/notifications/providers/:id/testPOST /api/v1/notifications/sendGET|POST|PATCH|DELETE /api/v1/alert-rulesPOST /api/cron/tick(token-authenticated; intended caller is an external scheduler such as AWS EventBridge).
Phase 03 — Report Builder + Scheduler
User-configurable reports with LLM narration, four output formats, and scheduled delivery through Phase 02 providers.- New Prisma models
ReportTemplate,ReportSchedule,ReportRun(additive migration; no changes to existing models). - Report data-source registry — 10 built-in sources (
offer_performance,channel_effectiveness,selection_frequency,anomaly_candidates,why_not_ranked,decision_traces_summary,funnel,revenue_trend,daily_trend,budget_burn). Extension point: drop a new file insrc/lib/reports/data-sources/and register it. - Report format registry — built-in PDF (via
@react-pdf/renderer), CSV, Markdown, HTML. - LLM narrative engine (
src/lib/reports/narrator.ts) — uses tenant AI provider; produces executive summary + per-section narratives + key takeaways; caps input at ~5000 tokens worth of rows with explicit truncation signals. - Report runner (
src/lib/reports/runner.ts) — loads template, runs sources, calls narrator, renders formats, createsReportRun, dispatches to destinations. - Full API surface:
GET|POST /api/v1/reports/templates,GET|PATCH|DELETE /api/v1/reports/templates/[id]POST /api/v1/reports/templates/[id]/preview(transient render, no persistence)POST /api/v1/reports/templates/[id]/run-now(immediate run; works without the cron)GET|POST /api/v1/reports/schedules,PATCH|DELETE /api/v1/reports/schedules/[id]GET /api/v1/reports/runs,GET /api/v1/reports/runs/[id]GET /api/v1/reports/runs/[id]/artifacts/[format]
/settings/reportsbuilder UI — compose sources, pick formats/narrative, schedule + destinations, live preview, runs history drawer./api/cron/tickextended to also process due report schedules; response JSON gainsreportsEvaluated,reportsRan,reportErrors.
Phase 04 — Executive Dashboard + Share-as-Report
C-suite-ready view and one-click sharing across every dashboard.- New page
/dashboards/executive— LLM-narrated weekly summary, six KPI cards with period-over-period deltas and sparklines, anomaly feed (last 7 days), segment × offer heatmap, and quick-links to operational dashboards. - Reusable dashboard components:
PeriodDelta— headline + Δ% vs. prior period + sparkline.AnomalyFeed— severity pill / metric / delta / explain button.SegmentOfferHeatmap— top-10 × top-10 selection rate grid.ExportMenu— PDF / CSV / Markdown / HTML dropdown (uses/api/v1/reports/previewunder the hood; no cron required).SaveAsReportButton— modal pre-filled from the current view; creates aReportTemplate+ReportSchedulein one click.
- Export + Save-as-Report wired into every dashboard — Business, Operations, Model Health, Data Health, Attribution (in addition to Executive).
- Backend support for period-over-period (
summary_with_comparison,model_auc_summary_with_prev, and sparklines on core metrics).
Earlier changes
Earlier changes are tracked in commit history — see the platform repo. Notable recent work prior to this milestone:- Mar–Apr 2026 — Docs remediation and sample-data corrections (connector count corrected to 24, transform count to 15, API response shapes aligned end-to-end with code).
- Apr 2026 — Repo open-sourced under a single “Initial open source release” commit. CI and CodeQL workflows temporarily disabled pending the public repo cut-over.
- Apr 2026 — API Explorer auto-creates an API key on first visit to the playground for streamlined onboarding.