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/customerIdkwarg on every span constructor — B2B tenant attribution distinct fromuser_id.attempt_number+retry_reasononrecord_llm_call()— retry attribution. Surfaces in the Waste Inbox.test=True/test: true(orSCOPECALL_TEST=1env var) — tags every event withis_test=trueso eval / CI / replay traffic stays out of production cost reports.- Server-derived
cost_source(server_computed/sdk_fallback/unknown_model/container) andpricing_versionon 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 → llmand the directworkflow → agent → llmshape. - 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 card —
cost_sourcestacked 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_idfilters 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 SDK — scopecall-py@0.2.x
- OpenAI + Anthropic
- Sync + async, streaming + non-streaming
- Manual
record_llm_call(...)for LangChain / LlamaIndex / custom wrappers contextvars-based trace propagation acrossawait- 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:readwithoutingest: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.