# Capstan changelog

## 2026-10-29 · Replays now compare against the last 90 days (v2.14)

Areas: Replays

Pick 30, 60 or 90 days of past cases, and filter a replay to one topic before you approve it.

Replays used to look back 30 days. That was enough for busy queues, and too little for jobs that run weekly: four Mondays isn't much to judge an agent on.

You can now replay an agent on **30, 60 or 90 days** of past cases. Longer windows take longer to run and cost the same per case, so the run shows its estimate before it starts.

## Approve topic by topic

Replays already grouped cases by topic. You can now **filter a replay to one topic**, read every case in it, and approve that topic on its own. The agent then handles approved topics and hands the rest to people, until you approve those too.

Replays are on Team, Business and Enterprise.

Also this week:

- Monitor: Traces load 40% faster on runs with more than 50 steps.
- Integrations: Zendesk actions now include adding internal notes.
- API: GET /v1/replays/{id} returns per-topic totals.

## 2026-10-15 · Approve steps from Microsoft Teams (v2.13)

Areas: Approvals, Integrations

Approval requests arrive as Teams cards with the draft attached. Edit in place, then approve.

Approvals were in Slack and email. Many teams live in **Microsoft Teams**, so approvals now arrive there as cards.

The card shows what the agent wants to do, the draft it wrote, and who else was asked. **Edit** opens the draft in the card; **Approve** carries the run on; **Not now** stops it and tells the agent's owner.

## Who gets asked

Approvers are chosen per step, as before. If a step asks a group, the first answer counts and the card updates for everyone else.

Approvals in Teams are on Team, Business and Enterprise.

Also this week:

- Approvals: Reminders after 2 hours when an approval is still waiting.
- Build: Steps can be reordered by keyboard (Alt + arrow keys).

## 2026-10-02 · Python SDK 1.0 (v2.12)

Areas: API

Run agents, stream steps and answer approvals from Python 3.10 and up. Async client included.

The Python SDK leaves beta. It covers everything the API does: start runs, stream their steps, answer approvals, and start replays.

```python
from capstan import Capstan

capstan = Capstan(api_key=os.environ["CAPSTAN_KEY"])
run = capstan.agents.run("churn-digest", input={"week": "2026-W44"})

for step in run.steps():
    print(step.status, step.text)
```

There's an `AsyncCapstan` client for asyncio, typed responses throughout, and retries with backoff on network errors. Install it with `pip install capstan`.

Also this week:

- API: Webhooks are signed with a timestamp to stop replays of old events.

## 2026-09-18 · Budgets per team (v2.11)

Areas: Monitor, Approvals

Set a weekly limit for a whole team as well as for each agent. The first limit reached stops the run.

Each agent already had a weekly budget. On Business and Enterprise you can now set one for a **team** too: Support can spend $200 a week across all its agents, however many there are.

When either limit is reached, the run stops where it is, nothing half-done is sent, and the owner gets the trace and what was left to do.

Also this week:

- Monitor: Cost per run now includes tool calls billed by your providers.
- Integrations: New QuickBooks action to create a journal note (asks first).

## 2026-09-04 · The Capstan MCP server (v2.10)

Areas: API, Integrations

Claude, Cursor and other MCP clients can list your agents, start runs and read traces, with the key's own scopes.

Your AI tools can now run Capstan agents. Add the server to any MCP client:

```json
{ "mcpServers": { "capstan": { "url": "https://mcp.capstan.dev" } } }
```

The client gets four tools: `list_agents`, `run_agent`, `get_run` and `decide_approval`. They use the same key as the API, so a key that can't approve can't approve through MCP either.

Also this week:

- Build: Describe a job in any of 12 languages; steps are written in the same one.

## 2026-08-21 · Turn any API into a tool with an OpenAPI file (v2.9)

Areas: Integrations, Build

Upload an OpenAPI file and pick which endpoints only read and which must ask first. Two minutes, no code.

Capstan has 120 integrations. Your own backend isn't one of them, so now you can add it.

Upload an **OpenAPI file** or point Capstan at its URL. Every endpoint becomes a tool, marked read-only or asks-first by its method: `GET` reads, everything else asks. Change any of them before you save.

Custom tools are on Team, Business and Enterprise.

Also this week:

- Monitor: Failed runs list the exact request that failed, with the response.

## 2026-08-07 · Search across every run (v2.8)

Areas: Monitor

Find runs by agent, tool, customer or error, and export the results to your warehouse.

Traces were easy to read one at a time and hard to search. Run search now looks across every run in the workspace: **by agent, by tool, by customer, by error, by cost**.

Save a search to watch it, or export the results as CSV or straight to Snowflake and BigQuery on Business.

Also this week:

- Approvals: Approval emails now include the full draft, not a link to it.
