Auto-indexing service and GraphQL API for AT Protocol Records quickslice.slices.network/
atproto gleam graphql
1# Changelog 2 3All notable changes to this project will be documented in this file. 4 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8## v0.20.0 9 10### Added 11- Add moderation system with labels, reports, and user preferences 12 - Label definitions with severity levels (takedown, alert, inform) 13 - Apply/negate labels on records and accounts via admin API 14 - Automatic takedown filtering from all queries 15 - Self-labels support (author-applied labels merged with moderator labels) 16 - `labels` field exposed on all record types 17 - User-submitted reports with reason types 18 - Admin report review and resolution workflow 19 - Per-user label visibility preferences (ignore, show, warn, hide) 20 - Connection pagination for admin labels and reports queries 21- Add union input type support for GraphQL mutations 22- Add moderation documentation guide 23 24## v0.19.0 25 26### Added 27- Add viewer state fields that show the authenticated user's relationship to records 28 - `viewer{Collection}Via{Field}` fields for AT-URI references (favorites, likes) 29 - `viewer{Collection}Via{Field}` fields for DID references (follows) 30 - Server extracts viewer DID from auth token automatically 31 32## v0.18.1 33 34### Fixed 35- Fix notification pagination cursor decoding for 2-part rkey|uri format 36 37## v0.18.0 38 39### Added 40- Add `notifications` GraphQL query for cross-collection DID mention search 41- Add `notificationCreated` GraphQL subscription for real-time notifications 42- Auto-generate `RecordCollection` enum from registered lexicons 43- Auto-generate `NotificationRecord` union type from record types 44- Add `rkey` generated column for TID-based chronological notification sorting 45- Add User-Agent header to all outbound HTTP requests 46 47### Changed 48- Upgrade swell to 2.1.3 (fixes NonNull-wrapped union type resolution) 49 50## v0.17.5 51 52### Fixed 53- Publish pubsub events after GraphQL mutations for immediate WebSocket subscription updates 54 55## quickslice-client-js v0.3.0 56 57### Added 58- Add storage namespace isolation for multi-app support 59 - Storage keys prefixed with 8-char SHA-256 hash of clientId 60 - IndexedDB database name includes namespace 61 - Lock keys include namespace 62 63### Breaking Changes 64- Existing users will need to re-login once after update 65 66## quickslice-client-js v0.2.0 67 68### Added 69- Add `scope` parameter to `QuicksliceClientOptions` for setting default OAuth scope 70- Add `scope` option to `loginWithRedirect()` for per-login scope override 71 72## v0.17.4 73 74### Fixed 75- Fix "Invalid refresh token" error caused by session iteration drift after ATP token refresh 76 77## v0.17.3 78 79### Fixed 80- Add `sub` claim to OAuth token response for client SDK user identification 81 82## v0.17.2 83 84### Fixed 85- Fix reverse joins not available through forward join *Resolved fields (swell 2.1.2) 86 87## v0.17.1 88 89### Added 90- Add ARM64 (linux/arm64) Docker image support 91 92## v0.17.0 93 94### Added 95- Add redirectUri option to QuicksliceClient 96- Make lexicon import declarative (wipe-and-replace) 97- Add multi-database support (PostgreSQL and SQLite) 98 - Add unified Executor type for database abstraction 99 - Add SQLite executor with PRAGMA setup 100 - Add PostgreSQL executor with pog driver 101 - Add unified connection module with DATABASE_URL detection 102- Add dbmate schema migrations for SQLite and PostgreSQL 103- Add Makefile for database operations 104- Add GIN index on record.json for efficient JSONB queries 105- Add dbmate and auto-migrations to Docker build 106- Add docker entrypoint script for auto-migrations 107 108### Fixed 109- Complete AT Protocol token refresh implementation 110- Transform BlobInput to AT Protocol format in create/update mutations 111- Use all lexicons for ref validation in create/update mutations 112- Fix quickslice client exports 113 114### Changed 115- Extract car/ into standalone atproto_car package 116- Reorganize lexicon GraphQL into modular structure 117- Reorganize admin GraphQL schema into modular structure 118- Reorganize database helpers into proper layers 119- Move graphql_ws into graphql/ws module 120- Split settings page into section modules 121- Remove unused dependencies, handlers, and CLI commands 122- Update honk to v1.2 123- Migrate all repositories to Executor pattern (config, OAuth, records, pagination) 124- Update where_clause to support database dialects 125- Remove Gleam-based migration system in favor of dbmate 126- Update server startup to use Executor 127- Cache Gleam build in CI to speed up native dependency compilation 128 129## v0.16.0 130 131### Added 132- Add secure public OAuth flow with DPoP and quickslice-client-js SDK 133 134### Fixed 135- Pass OAuth scopes through without filtering in client metadata 136 137### Changed 138- Update docker-compose 139- Add editorconfig and format examples HTML 140 141## v0.15.1 142 143### Fixed 144- Pass OAuth scopes through without filtering in client metadata 145 146## v0.15.0 147 148### Added 149- Add isNull filter support for ref fields in where clauses 150- Improve GraphQL type generation for lexicons 151- Add statusphere HTML example and viewer query 152- Add OAuth scope validation and client type support 153- Add Model Context Protocol (MCP) server 154- Refactor admin DID handling and add Settings.adminDids field 155- Migrate environment variables to database config table 156- Add PLC_DIRECTORY_URL env var override for bootstrap 157- Handle OAuth errors with proper redirects 158- Sync actor records on first login 159 160### Fixed 161- Encode non-UTF-8 binary data as $bytes in JSON 162- Resolve strongRef refs in nested object types 163- Resolve nested refs within others object types 164- Show reset alert in danger zone section of settings 165- Correct test expectation for invalid scope error handling 166 167### Changed 168- Implement nested forward join resolution for strongRef fields 169- Remove /example folder, move docker-compose to root 170- Move docs/plans to dev-docs/plans 171- Update settings 172 173### Documentation 174- Remove deprecated env vars from deployment guide