Roadmap

Directional roadmap — what's shipped, what's coming next, and where we're going.

This is a directional roadmap, not a commitment. Priorities shift based on user feedback. Want to influence what we build next? Open a GitHub Discussion.

Shipped — v0.3.0

The cost-attribution release. Answers "which workflow, which agent, which customer, which retry was that dollar?" without proxying provider traffic.

SDKs@scopecall/scopecall-js@0.3.0 and scopecall-py@0.3.0

  • sdk.workflow(name) / sdk.agent(name) / sdk.step(name) — three nested context managers (Python) / async-callback helpers (TypeScript) that emit distinct container span kinds on the wire (workflow / agent / step). Nesting is voluntary; the dashboard rolls up cost from LLM calls to whichever ancestor you wrap.
  • customer_id / customerId kwarg on every span constructor — B2B tenant attribution distinct from user_id.
  • attempt_number + retry_reason on record_llm_call() — retry attribution. Surfaces in the Waste Inbox.
  • test=True / test: true (or SCOPECALL_TEST=1 env var) — tags every event with is_test=true so eval / CI / replay traffic stays out of production cost reports.
  • Server-derived cost_source (server_computed / sdk_fallback / unknown_model / container) and pricing_version on every row. Trust signal for the displayed dollar number.

Dashboard

  • Workflow Treemap on Overview — tile area = cost, color = delta vs the prior window. Click to drill in.
  • Workflow detail page — per-agent and per-step cost breakdown with retry-cost and test-traffic callouts. Two-hop join handles both workflow → agent → step → llm and the direct workflow → agent → llm shape.
  • Customers page — per-customer rollup ranked by cost, with attribution-coverage and retry-offender banners.
  • Waste Inbox — deterministic rules (retry burners, model misuse, high-error workflows) ranked by dollar impact.
  • Cost Confidence cardcost_source stacked bar + the unknown-model punch list, so users can fix their pricing table.

API

  • Five new endpoints: /workflow-cost-tree, /workflow-detail, /customer-profitability, /waste-inbox, /cost-confidence.
  • workflow / agent / step / customer_id filters on /traces. Each filter uses the correct SQL shape — workflow is trace-level, step is direct-parent, agent is ancestor (up to two hops). All documented in OpenAPI.

Shipped — v0.1.1

TypeScript SDK@scopecall/scopecall-js@0.1.x

  • OpenAI chat.completions.create — streaming + non-streaming
  • Anthropic messages.create — streaming + non-streaming
  • Vercel AI SDK — generateText / streamText / generateObject / streamObject

Python SDKscopecall-py@0.2.x

  • OpenAI + Anthropic
  • Sync + async, streaming + non-streaming
  • Manual record_llm_call(...) for LangChain / LlamaIndex / custom wrappers
  • contextvars-based trace propagation across await
  • PII redaction (auto + manual paths)
  • FastAPI lifespan support

Self-hosted Docker Compose stack

  • Rust ingest service, Rust processor, Go API, Next.js dashboard
  • ClickHouse 24.3, Postgres 16, Redpanda 23.3, Redis 7
  • Idempotent ClickHouse migration runner

Dashboard

  • Real-time traces view, trace tree, Gantt timeline
  • Cost explorer with cross-dimensional breakdown
  • Flow Map (workflow call graph)
  • Sessions view, trace compare
  • Prompts page (per-version cost/latency/error rate)
  • Alerts (cost-spike / error-rate / p99-latency, Slack channel)
  • Email + password auth, API key management with scopes

Hot-path durability

  • Server-authoritative pricing (processor recomputes cost_usd)
  • Durable processor Kafka offsets across restarts
  • Dead-letter queue with retry on processor failures

Next — v0.3.1

  • Two-way API key scopes in the dashboard UI — let operators mint read-only keys (traces:read without ingest:write) for export scripts and CI jobs. Backend accepts this combination today; v0.3.1 adds the second checkbox + form-state guard so it's reachable without dropping to curl.
  • Google Gemini SDK support (TypeScript).
  • Productized rollup backfill UX — one-click dashboard action over the existing scripts/backfill-llm-metrics-hourly.sh.
  • Waste Inbox lookback alignment so workflow / step spans emitted just before the visible window still attribute their child LLM calls.
  • Workflow-detail by-customer / by-model drill-ins (the agent and step panels are already clickable).

Then — v0.4.x

  • OpenTelemetry GenAI bridge (any OTel-instrumented runtime lights up the dashboard)
  • LiteLLM bridge (one integration covers the long-tail provider list)
  • Configurable alert channels beyond Slack (webhooks, email)
  • Cache hit ratio insights
  • Workflow budget alerts on top of the v0.3 cost-attribution data

v0.5.0 — Framework bridges

  • LangChain native callback handler (Python + TypeScript) — closer integration than the current manual API
  • LlamaIndex native integration (Python)
  • CrewAI / AutoGen / DSPy reach via the OpenTelemetry GenAI bridge

Each framework has its own callback/middleware story, which is why native bridges land here rather than alongside the v0.3 capture path — sdk.record_llm_call(...) already works today as a manual bridge.

Later (no committed date)

  • Cost intelligence: forecasting, anomaly detection, model right-sizing
  • Budget enforcement: hard caps, smart model fallback, pre-flight cost checks
  • Agent debugging: failure mode classification, tool call inspection
  • Multi-agent observability: handoff inspection, coherence detection
  • Plan-vs-execution divergence analysis
  • Evaluation flywheel: trace labeling, LLM-as-judge, few-shot retrieval
  • Community plugin SDK for custom instrumentation

Cloud

A managed ScopeCall Cloud (same software, hosted by us) is planned alongside the self-hosted option. The self-hosted version is open-source under Apache 2.0 and remains a first-class target — not a stripped-down teaser. Cloud monetization comes from operational excellence + enterprise features (SSO, audit logs, SLA), not licensing teeth.