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