# Changelog

What changed in Kestrel, newest first.

## 28 October 2026

### Evals run before every pull request

The eval gate is now on for every workspace. Each diff runs build, lint, types, tests, our evals and a second-model review, in order, before a pull request opens. [Read how it works](/review/eval-gate).

- A failing diff goes back to the agent with the failure attached, up to three times.
- Runs that can't pass end as `needs_review`, with the failure in the trace.

## 14 October 2026

### Snapshots

Take a snapshot of a sandbox and start any number of runs from it. Good for seeded databases and warm build caches. [Persistence & snapshots](/sandbox/persistence).

### Faster sandboxes

Median start time is down from 2.4 s to 0.8 s.

## 30 September 2026

### Model routing

Each step is now scored and sent to the smallest model that can do it. Token cost per run fell by about two thirds in our own repos. [Model routing](/agents/routing).

### Python SDK 1.0

`pip install kestrel`, with sync and async clients. [Python SDK](/sdk/python).

## 9 September 2026

### Shared memory on Team

What one person's run learns about a repo now helps every run in the workspace. [Agent memory](/agents/memory).
