# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] ### Changed - **BREAKING:** Normalized SQL schema to snake_case convention - Tables: `blob` → `blobs`, `record_blob` → `record_blobs` - Columns: `mimeType` → `mime_type`, `createdAt` → `created_at`, `blobCid` → `blob_cid`, `recordUri` → `record_uri` - Existing Durable Objects require storage reset ## [0.1.0] - 2025-01-07 Initial experimental release. ### Added - **Repo operations:** createRecord, getRecord, putRecord, deleteRecord, applyWrites, listRecords - **Sync endpoints:** getRepo (CAR export), subscribeRepos (WebSocket firehose), getLatestCommit - **Authentication:** createSession, getSession, refreshSession with JWT tokens - **Blob storage:** uploadBlob, getBlob, listBlobs with R2 backend - MIME type sniffing (JPEG, PNG, GIF, WebP, MP4, AVIF, HEIC) - Automatic orphaned blob cleanup via DO alarms - Blob-record association tracking - **Identity:** Handle resolution, PLC directory registration - **Federation:** Relay notification (requestCrawl), AppView proxy for app.bsky.* endpoints - **Infrastructure:** - Merkle Search Tree (MST) for repo structure - DAG-CBOR encoding with CID generation - P-256 ECDSA signing via Web Crypto - TypeScript checking via JSDoc annotations - Setup script for key generation and PLC registration