Roadmap
2.0.0 published to npm — semver applies strictly (release process). What is next, and how it got here. Scope commitments are firm; dates are not promised.
Now — after 2.0
- First workflow-engine adapter for the
workflowsurface (Q7 — Mastra currently leads the candidate list) - MCP: dynamic
list_changed; elicitation-based confirmation prototype behind a flag (Q4) scopeon the MCP adapter, if a consumer's demand shapes it (Q12)- Community schema-converter adoption for Valibot/ArkType (Q3)
Shipped — 2.0 "Discovery at scale"
Driven by a dashboard host at ~300 capabilities across six tag groups. Breaking, so it is a major (ADR-017); upgrading is one field read.
describetakes ascope({ tags?, ids? }), applied before any discovery policy runs, so a route-scoped catalog stops paying for what it discards. Discovery shaping, never an authority boundary —invokedoes not consult it (SI-2).@orpc-agent/ai-sdkforwards it;filterstill shapes what survives- Breaking:
capabilities.discoveredcarries{ count, surface, digest }instead of the full id list, which at 300 capabilities was ~6 KB on every discovery.audit: { verbose: true }restores it. Migration:data.capabilityIds.lengthbecomesdata.count - Discovery-phase policies evaluate with bounded concurrency (
defaults.policyConcurrency, 16), under a whole-discovery ceiling (defaults.discoveryBudgetMs, 30 s) that fails loudly rather than returning a short catalog
Shipped — 1.1
@orpc-agent/ai-sdksupportsai@6: peer range widened to^5.0.0 || ^6.0.0, one code path and no compat shim, with both majors typechecked and tested in CI. v6's own tool approval (needsApproval) is deliberately left unset — the runtime stays the single approval authority@orpc-agent/mcpre-checks token expiry per request and evicts identities on session close
Shipped — 1.0 "Governance contract"
Runtime-level policies become part of the recorded contract (ADR-016), and the API drops its remaining choices:
defineGovernance({ registry, policies })— the governed surface as one declared value, and the only formcreateAgentRuntimeaccepts. A runtime built from it cannot evaluate a policy list no exported value names, and tooling can read it without a runtime instance- CLI: snapshot v2 records runtime-level policies; removing one is widening. The header qualifies its own count (
0 approval-gated (declared)), and--entryaccepts a governance, a runtime, or a bare registry orpc-agent init— interactive setup;inspectrenders an Ink view in a terminal whilecheckstays plain text with no rendering framework in its path@orpc-agent/corebecomes a peer dependency of the CLI: the requirement is one module instance, not one version — a duplicated copy makes an application's schema converter invisible and fabricates drift- Removed: the
warningsflag, and theregistry/policiespair oncreateAgentRuntime. Each was a second way to say something a configuration choice already says
Shipped — v0.3
@orpc-agent/cli— capability inventory and CI drift gate (orpc-agent inspect | snapshot | check), with committed snapshots dogfooded on both examples (ADR-015). Core:defaultToolNamebecomes public, collapsing three copies into one- Reverses the 0.2 plan's "no CLI" exclusion deliberately; the surface name
clistays reserved for nothing — a future CLI adapter would take the surfaceshell
Shipped — v0.2 "Durability seams"
Driven by the first production consumer (an ~85-capability finance app):
@orpc-agent/postgres— referenceApprovalCoordinator+AuditSinkover a driver-agnostic query seam; DDL as exported strings; the shared coordinator contract suite runs against in-memory, pglite, and a real server incl. a two-connection consumption race (Q8 resolved via ADR-013)- Core: startup footgun warnings, schema-conversion cache invalidation + descriptor isolation (ADR-014)
- MCP:
session.authInfotyped as the SDK'sAuthInfo - Guides: headless invocations, workflow steps, MCP authentication (Better Auth worked example), host-loop approval interop (ai-sdk adapter)
Shipped — v0.1 "Governed core"
The smallest coherent release proving the thesis: define a capability once, expose it through multiple governed surfaces.
@orpc-agent/core— capability metadata + registry, 15-stage runtime, policies, in-memory approvals with input-hash binding, structured errors, audit events, tracing interface, timeout/cancellation, eligibility-gated retries, Zod v4 JSON-Schema conversion@orpc-agent/ai-sdk— AI SDK tools over the runtime (ai@^5 || ^6)@orpc-agent/testing— deterministic governance testing, no LLM required@orpc-agent/opentelemetry— tracing adapter@orpc-agent/mcp— MCP server adapter (final increment; slips to 0.2 rather than delaying the release)examples/customer-support— the reference application (one read flow, one approval-gated write flow, and the full governance suite)
Later — exploratory (no commitment)
- Streaming (event-iterator) capabilities with per-chunk governance semantics (Q11)
- Framework-level rate limits/quotas (Q9)
- Declarative policy input constraints (Q6)
orpc-agent approvals— a second CLI command family for pending-approval review, if demand appears (ADR-015 leaves this open; the decision path must go through the app's coordinator)- Rules engine for the CLI: assertions over new capabilities that have no snapshot baseline to drift from
- Metrics emission; additional adapters (
shell, A2A) — each begins as a design doc against the adapter contract. The surface is namedshell, notcli:@orpc-agent/cliis the developer tool
Non-goals (permanent)
These are boundaries, not backlog (overview):
- Agent loops, planners, prompt management, memory stores
- A workflow engine, scheduler, or job queue of our own
- Bundled databases for approvals or audit
- Authentication/authorization providers
- UI frameworks or hosted dashboards
- Exactly-once execution claims
- Support for non-oRPC procedure systems in core
How this roadmap changes
Scope moves between tiers only via ADR (for architectural shifts) or maintainer consensus recorded in GOVERNANCE.md. Open questions graduate here when resolved; nothing ships to "Now" while its blocking question is open.
Distributed runtimes — 5.0
Implemented: native oRPC governed gateway, portable descriptors/browser-safe clients, remote AI SDK composition, contextual presentation metadata, Postgres invocation journal, correlated approval continuation, static Zod bundling and request-scoped audit drain. See distributed integration. Cloud process recovery, host run ownership and domain effect reconciliation remain application integration work.
Related: migrating 1.x → 2.0 · open design questions · decision records.