# Changelog

All notable changes to the `earthscale` client package are documented here.

## 0.16.0 (Unreleased)

### New Features

* **Dataset listing now supports filtering.** `list_datasets()` accepts `name`, `tags`, `bbox`, `created_after`, `created_before`, and `limit` parameters to narrow results. All filters use AND logic.
* **New `iter_datasets()` method** for iterating over large result sets with automatic cursor-based pagination. This is the recommended way to list datasets.
* **New `PaginatedListDatasetResponse` model** for cursor-based pagination, exposed at the top level.

### Breaking Changes

* **Tag filtering now uses repeated `tag` query params** instead of a single comma-separated `tags` param. Tag keys and values containing colons are escaped with `\:`, and literal backslashes with `\\`. The Python client handles escaping automatically.

### Changes

* `ListDatasetResponse` now includes an `updated_at` field.
* `list_datasets(limit=...)` and `iter_datasets(page_size=...)` now raise `ValueError` if the value is outside the 1–1000 range.

### Fixes

* Fixed `ListDatasetResponse.tags` docstring (was incorrectly labeled as "labels").

## 0.15.1

### New Features

* Support `tags` on datasets as key-value pairs, deprecating `labels`.
* Add `AddDatasetRequest.tags` field; `labels` is now deprecated.
* Add `AddDatasetResponse.dataset_version_id` field.
* Pretty-print client models using JSON in IPython environments.

### Fixes

* Fix type handling in client for doc generation.
* Nicer error handling for forbidden errors.

## 0.15.0

### New Features

* OAuth login flow with auto-detected free port.
* Log which servers are used on client init.

### Fixes

* Fix a type warning in the CLI.

## 0.14.2

### New Features

* Add `pixel_info_url` to `TileServer` response.

### Fixes

* Correctly pass in credentials file.

## 0.14.0

### New Features

* Add proxy support in client.

### Changes

* Improve client docstrings.
