---
title: Changelog
path: changelog
status: published
---

# Changelog

User-visible changes to ScaiAtlas and the Python SDK.

## Python SDK

### 0.1.2

Pagination & filter alignment with the registry API.

- **Pagination now works.** List and search calls send `page_size` (the server's
  parameter) and parse the server's `{data, page, page_size, total, total_pages}`
  envelope. Previously the client sent `per_page` and looked for `items`/`pagination`,
  so paginated calls silently returned empty pages against the real API.
- `search.models(...)` takes a single `tag` filter plus `sort`
  (`updated`\|`created`\|`name`\|`downloads`, default `updated`) and `order`
  (`asc`\|`desc`, default `desc`).
- Removed the unused `status` filter from `versions.list(...)` (the API doesn't
  support it).
- The Python surface is unchanged — `per_page` kwargs, `PaginatedResponse.items`, and
  `.pagination` (`has_next`/`has_prev`) all behave as before; only the wire protocol
  and response parsing were corrected.

### 0.1.1

Schema-alignment release — brings the SDK in line with the live registry API. This
is a **breaking** change relative to 0.1.0 for the affected calls.

**Namespaces**
- `Namespace` now exposes `visibility` (`public`\|`tenant`\|`private`) and `owner_tenant_id`; the old `type` and `owner_id` fields are gone.
- `namespaces.create(...)` takes `visibility=` instead of `type=`.
- `NamespaceMember` restructured to `{id, user, group, role, granted_by, granted_at}` with `UserSummary`/`GroupSummary`.
- `search.namespaces(...)` no longer takes a `type` filter.

**Models**
- `type` is now a **required** keyword on `models.create(...)` and spans the full 11-value model-type vocabulary (`llm`, `embedding`, `image_generation`, `stt`, `tts`, `multimodal`, `vision_language`, `audio_language`, `video_language`, `image_to_image`, `audio_to_audio`).
- Added `license`, `capabilities`, `modalities`, and `metadata`; download counter is now `download_count`.
- Models no longer carry a `visibility` field (visibility lives on the namespace); `models.list`/`search.models` dropped the `visibility` filter.

**Versions**
- `versions.create(...)` / `versions.update(...)` now use `release_notes` and `requirements` (plus `quantization`, `files`) instead of `description`/`metadata`.
- `Version` exposes `model_id`, semver parts, `checksum_sha256`, and `published_at`; `VersionFile` gained `name`/`sha256` aliases.

**Variants**
- `variants.create(...)` now takes `variant_name=` and a constrained `format` (`safetensors`\|`pytorch`\|`gguf`\|`onnx`\|`other`); `description`/`metadata` removed.
- `Variant` exposes `version_id`, `is_primary`, and `status`.

**Uploads**
- `upload.version(...)` accepts `release_notes` / `requirements` in place of `description` / `metadata`.

Download the artifacts from the [ScaiLabs downloads page](https://www.scailabs.ai/downloads).

### 0.1.0

Initial release: sync + async clients, namespace/model/version/variant resources,
resumable upload/download, search, and admin operations.
