# Changelog

> Released versions of the runstate TypeScript and Python SDKs and what changed in each.

Source: https://docs.getrunstate.com/changelog/

Both SDKs are published as `runstate-sdk` (npm and PyPI), MIT licensed, and versioned together.

```bash
npm install runstate-sdk
pip install runstate-sdk
```

These docs describe version 0.1.1.

## 0.1.1

- **Python:** `MailboxRef.receive()` works. In 0.1.0 it raised `TypeError` on every call; `consume()` was not affected.
- **Both SDKs:** waiting claim and pool acquisitions (`acquire({ wait: true })`, `run()`) now also wait through `CONCURRENCY_LIMITED`, retrying about once a second.
- **Both SDKs:** `CONCURRENCY_LIMITED` and `OPERATIONS_EXHAUSTED` map to `RateLimitError`.
- **TypeScript low-level client:** error codes are no longer collapsed to `UNAVAILABLE` when the code was added to the contract after the client was written (for example `INSUFFICIENT_BUDGET`).

> **Caution: Python 0.1.1 availability**
>
> 0.1.1 is on npm. On PyPI the latest release is still 0.1.0 at the time of writing. If `pip show runstate-sdk` reports 0.1.0, use `consume()` instead of `receive()`, and expect `CONCURRENCY_LIMITED` to raise from claim and pool acquisition instead of being waited through.

## 0.1.0

First public release of both SDKs: runs, claims, work queues and durable tasks, task groups, concurrency pools, shared quotas, work limits, budgets, barriers, timers, events and diagnostics; `AsyncRunstate` and the blocking `Runstate` client in Python; the low-level `createRunstateClient` in TypeScript.
