HappyView
v2.11.7
Released 2026-07-17
Bug Fixes
- inherit_auth now properly transfers auth from XRPC script to jobs (541c4a9)
v2.11.6
Released 2026-07-16
Bug Fixes
- add missing space write APIs (0c84ff6)
- enforce allowedCollections when creating records in a space (4db67ab)
v2.11.5
Released 2026-07-15
Bug Fixes
- display all available permissions when creating API keys (b30952c)
v2.11.4
Released 2026-07-09
Bug Fixes
- escape metacharacters in
find_blob_author_did(a089929) - remove user drop from e2e setup (e3a82a0)
- revert to root user in Dockerfile (8328c73)
- verify CIDs (a3233cc)
v2.11.3
Released 2026-07-08
Bug Fixes
v2.11.2
Released 2026-07-08
Bug Fixes
- add replay protection to dpop proofs (2348c5c)
- better handling for empty TOKEN_ENCRYPTION_KEY (2a11841)
- implement revocation for space credentials (10037f6)
- issue space credentials for
iss, not for the caller (f016508) - prevent
listReposfrom leaking space participant lists (0d2d829) - prevent error details from leaking to external users (5a7fa4d)
- prevent lockouts from failed super admin transfer (6dc6dc6)
- revoke member credentials before removing them from a space (f62ccfd)
- Run Docker image as non-root user (3657056)
- update deps (862b36d)
v2.11.1
Released 2026-07-07
Bug Fixes
- ensure superadmin-created admin API keys respect scopes (af9a4b1)
- prevent
read_selffrom escalating during access merge (19f4199) - prevent CORS from reflecting credentials to arbitrary origins (0ad78af)
- prevent db.raw access to sensitive tables (815843f)
- prevent identity spoofing via /oauth/sessions (1e4b42a)
- prevent use of default session secret (0d288df)
- prevent victim record overwrite (28cf563)
- require auth on space notification endpoints (c12a9e3)
- validate JWT aud in middleware (9e17097)
v2.11.0
Released 2026-07-07
Bug Fixes
- add better validation to spaces impl (a28cebc)
- fix Playwright tests (9befd0b)
- out-of-order migrations (for real this time) (60a4cd6)
Features
v2.10.2
Released 2026-06-30
Bug Fixes
- out-of-order migrations (for real this time) (eef213e)
v2.10.1
Released 2026-06-30
Bug Fixes
- out-of-order migrations (044c03f)
v2.10.0
Released 2026-06-30
Bug Fixes
- add better reporting and proper resume on backfills (bdd9bc9)
- add better retry logic for backfills (d4ae6a7)
- add permissions to the internal API (87a19e9)
- add permissions to the internal API (a119510)
- add reauth button for service identity (a2907d9)
- add reauth button for service identity (c72c398)
- add reauth button for service identity (6b3e797)
- add success and dead-letter logging to label scripts (c6d7bca)
- address copilot feedback (bc135cd)
- allow docker containers to execute HappyView binaries (d1da97b)
- allow log verbosity toggle to override env var (fe191ce)
- allow sheets to be much larger (2b379cc)
- allow sheets to be much larger (efd6140)
- better handling for PDS errors (0ac3e2c)
- better icons for stages (c633f09)
- better pool size accounting when using sqlite (e023d39)
- build SDKs even if base client has no changes (b3f2dad)
- bulk insert in discovery, seed records on resume, dedupe retry helper, add cancel tests (4e74bcd)
- chunk bulk inserts for sqlite, use rows_affected for counts, faster cancel checks, users page a11y (2947a90)
- clamp backfill concurrency values (de42a7f)
- cleanup broken sessions (7c4ad56)
- cleanup derelict items after successful auth (6c76088)
- dead-letters: admin endpoints span both legacy + new tables (e720b2b)
- delegate to backend for network lexicon resolution (606c752), closes #49
- display sync warning after refresh (17a5f03)
- display sync warning after refresh (e599a1f)
- display sync warning after refresh (2833ab3)
- dont block space creds on client key check (6108edd)
- dont refresh tokens on 4xx status codes (ca5b6a5)
- dont use use timestamptz in migrations (Ill remember that... one day) (24320ba)
- dynamic cookie security handling and harden tests for service proxies (9732a21)
- dynamic cookie security handling and harden tests for service proxies (d609358)
- dynamic cookie security handling and harden tests for service proxies (584eeeb)
- expose approved oauth scopes to clients (0a5b826)
- expose oauth scopes via the SDKs (ae69736)
- filter nesting was allowed to 6 levels instead of 5 (59b9d5b)
- fix base path not being respected by trailing slash redirects (2d1d60d)
- generate missing IDs for dead letters (671a753), closes #20
- get max connections from Postgres instead of current connections (79e794c)
- handle reauthenticating to service entry accounts (2c83781)
- handle reauthenticating to service entry accounts (3234b9c)
- handle reauthenticating to service entry accounts (feac3d0)
- handle the scope format returned from Bluesky PDS (2066c7f)
- harden backfill cancel idempotency, SQL injection guard, DID retry cap, and row a11y (92c8a98)
- harden the setup wizard (a210849)
- harden the setup wizard (ed663f6)
- harden the setup wizard (13c855b)
- issues with backfill stage/status separation and progress tracking (6da4ac8)
- make backfill progress headings more accessible (4e80754)
- make the service entry dashboard more user friendly (c5111c7)
- make the service entry dashboard more user friendly (78d097f)
- make the service entry dashboard more user friendly (6e0d59e)
- move record info into sheets (d129d26)
- move user permission management into sheets (e79b9f1), closes #23
- move user permission management into sheets (1d8b400), closes #23
- only count successful PDS resolutions, cap retry-after, update backfill docs (f53e545)
- port service entry design optimisations to other pages (1485f4b)
- port service entry design optimisations to other pages (bba3a20)
- port service entry design optimisations to other pages (8d8b92e)
- post-conflict resolution cleanup (b4676f1)
- prevent backfill jobs from locking locking out pause/cancellation (92e0a21)
- prevent base path collision (4ae8c29)
- prevent concurrency settings from being set to invalid values (c5b4b87)
- prevent creation of API clients that would break HappyView core client (cd10300)
- prevent dead letters from being created without an ID (50a3786), closes #20
- prevent errors with IPv6 addresses when building loopback clients (23e858b)
- prevent false match rewrites when a base path is in use (2a9bc80)
- prevent opening "discovering trepos stage" from locking the ui thread (13e2e63)
- prevent reprocessing of sse (c56bc77)
- prevent unauthenticated users from being redirected to setup (fe3529b)
- prevent unauthenticated users from being redirected to setup (66413a7)
- prevent unauthenticated users from being redirected to setup (98af6e4)
- prevent unauthorized privilege escalation (4f97576)
- rate-limit unauthenticated procedure requests before rejecting (79ea8ef)
- reduce backfill db contention and sse event flooding for pds discovery and record fetching during backfill (9a3b93d)
- reject JWT at exact expiry second (aadf092)
- remove broken timestamping (908efca)
- remove broken timestamping (b9ba42d)
- remove broken timestamping (3cbe22e)
- remove cleanup delay caused by tick eater (aa5e842)
- remove clippy suppression (4db01f0)
- remove counts from records dropdowns (6be8848)
- remove duplicate exports in api.ts from merge (a4f990f)
- remove forced HappyView redirect URI from API client creation (849f097)
- remove oauth redirect hop, and add explicit redirect for the root url (59cbd39)
- remove prefix typo from db.query filter generation (230b4d4)
- remove public record aggregation from permissioned spaces (55cf1b6)
- remove public record aggregation from permissioned spaces (34c630c)
- remove public record aggregation from permissioned spaces (55afaaf)
- remove route dupes (12241ab)
- remove superfluous early exit on invalid session token (pds concern, not happyview concern) (c274314)
- replace the base path sentinel in next.js text files (5e128a4)
- require client key for rate limiting on all XRPC routes (8c578de)
- reset backfill ui when flushing details (a83a4fa)
- restore
granted_atdefault in migrations (b4759e9) - restore missing log events for verbose logging (d52b31b)
- restore plc concurrency (ffdd110)
- restore SDK scopes types after bad conflict resolution (44986ab)
- restrict Bearer space credentials to space XRPC routes (2598b58)
- return 404 when dismissing a nonexistent dead letter (909f6f5)
- scopes types in oauth-client sdk after bad conflict resolution (d49033e)
- sdk: support the
kidparam from@atproto/jwk-webcrypto(8a09489) - separate backfill db connection pool from main app pool (dfa0d38)
- update column type in backfill migration (3618d9f)
- update scopes type (635bcd6)
- update the base path rewrite to skip Nexts basePath config (8470d66)
- use correct permission IDs in dashboard (cf4a984), closes #24
- use correct permission IDs in dashboard (a37a254), closes #24
- use cursors for pagination in spaces endpoints (7bb7eb6)
- use dpop thumbprints to enable multi-device auth (28f7fa6)
- use NULL instead of empty string for local-only record CID (55e65f7)
- use stateRef pattern in ScriptForm to avoid exhaustive-deps suppression (c8e5d5c)
- use the correct connection pool for record upserts (81a63c8)
- use the correct cursors when paginating spaces (8b65ff6)
- virtualize backfill details and move event stream into a worker (c741e75)
Features
- add
filtertodb.query(8b1ae86) - add backfill concurrency settings (67d3e35)
- add blob upload and download utilities (44ad24c)
- add collection column to dead_letter_scripts so we can ditch second-level filtering (64b1031)
- add control for experiments to the dashboard (6adb5ee)
- add control for experiments to the dashboard (de7a94e)
- add control for experiments to the dashboard (3d3d7c7)
- add more detailed information to backfill UI (5d891b9)
- add new TID functions (523e19f), closes #16
- add oauth-client-node SDK (488a6df)
- add suffix filter to GET /admin/scripts and use it in lexicon detail (5eda38c)
- add support for nexted syntax in field selectors (4f2e027)
- add support for service proxying (d5fa751)
- add support for service proxying (86d915c)
- add support for service proxying (d16ca01)
- add support for session hooks (e1a6b00)
- allow backfill jobs to be paused and resumed (25084fb)
- allow backfills to be cancelled (953c786)
- allow the base path to be configured (ee8e541)
- dashboard: scripts grouped by trigger family + lexicon targeting panel (678da37)
- increase backfill record batch inserts (9238884)
- make backfill collection discovery concurrent (231a734)
- make verbose event logs configurable (2d7f51e)
- migrate legacy script/index_hook data to scripts table and drop columns (1a37d14)
- parallelize PDS resolution and record retrieval during backfills (a480799)
- permissioned spaces implementation (693d678)
- permissioned spaces implementation (6b3d542)
- publish node sdk (705c575)
- recommend restart when backfill concurrency settings dont match existing connection pool size (30b97ef)
- refactor permissioned spaces to better align with Dan's implementation (7eb4a03)
- refactor permissioned spaces to better align with Dan's implementation (16c3c60)
- scripts: promote log() to write into event_logs (fb9dfaa)
- scripts: trigger-keyed scripts subsystem (fe4f84f)
- update JS SDKs to more closely match their @atproto cousins (77c2083)
- update JS SDKs to more closely match their @atproto cousins (357a5d3)
- update JS SDKs to more closely match their @atproto cousins (df717e9)
- update to latest permissioned data spec (f3875b2)
- xrpc-proxy: add settings to control the XRPC proxy (63f22d6)
- xrpc-proxy: add settings to control the XRPC proxy (a89d00f)
v2.9.2
Released 2026-05-27
Bug Fixes
- dont use use timestamptz in migrations (Ill remember that... one day) (b131010)
v2.9.1
Released 2026-05-27
Bug Fixes
- restore
granted_atdefault in migrations (2b6ca58)
v2.9.0
Released 2026-05-27
Bug Fixes
- add success and dead-letter logging to label scripts (c74e317)
- allow docker containers to execute HappyView binaries (9265641)
- allow log verbosity toggle to override env var (e8268c4)
- better pool size accounting when using sqlite (3a0fb9c)
- clamp backfill concurrency values (9c2847a)
- dead-letters: admin endpoints span both legacy + new tables (4a576ea)
- filter nesting was allowed to 6 levels instead of 5 (698c099)
- get max connections from Postgres instead of current connections (66b4804)
- make backfill progress headings more accessible (f83f150)
- post-conflict resolution cleanup (02e6e1a)
- prevent backfill jobs from locking locking out pause/cancellation (62adab0)
- prevent concurrency settings from being set to invalid values (3d31877)
- prevent opening "discovering trepos stage" from locking the ui thread (016b0e5)
- prevent reprocessing of sse (ce68c66)
- reduce backfill db contention and sse event flooding for pds discovery and record fetching during backfill (ec860a5)
- remove cleanup delay caused by tick eater (bd745ae)
- remove clippy suppression (6a34d5f)
- remove counts from records dropdowns (dd6d9ae)
- remove prefix typo from db.query filter generation (cd411d6)
- remove superfluous early exit on invalid session token (pds concern, not happyview concern) (bc06766)
- reset backfill ui when flushing details (1cf8f75)
- restore missing log events for verbose logging (d38d05d)
- restore plc concurrency (3aa10b5)
- return 404 when dismissing a nonexistent dead letter (280a837)
- sdk: support the
kidparam from@atproto/jwk-webcrypto(e12f526) - separate backfill db connection pool from main app pool (c14a168)
- use dpop thumbprints to enable multi-device auth (454d239)
- use NULL instead of empty string for local-only record CID (21952d7)
- use stateRef pattern in ScriptForm to avoid exhaustive-deps suppression (4bcb0b1)
- use the correct connection pool for record upserts (22f3ba9)
- virtualize backfill details and move event stream into a worker (3e33527)
Features
- add
filtertodb.query(18a01fd) - add backfill concurrency settings (f5ab1b4)
- add collection column to dead_letter_scripts so we can ditch second-level filtering (7283c21)
- add more detailed information to backfill UI (66fe12a)
- add suffix filter to GET /admin/scripts and use it in lexicon detail (527aed3)
- add support for nexted syntax in field selectors (950594b)
- allow backfill jobs to be paused and resumed (bd65caf)
- dashboard: scripts grouped by trigger family + lexicon targeting panel (735e104)
- increase backfill record batch inserts (7ff501a)
- make backfill collection discovery concurrent (060cba3)
- make verbose event logs configurable (4856579)
- migrate legacy script/index_hook data to scripts table and drop columns (44cdc21)
- parallelize PDS resolution and record retrieval during backfills (8f21474)
- recommend restart when backfill concurrency settings dont match existing connection pool size (b0d382b)
- scripts: promote log() to write into event_logs (673de09)
- scripts: trigger-keyed scripts subsystem (0fd7601)
v2.8.1
Released 2026-05-19
Bug Fixes
v2.8.0
Released 2026-05-14
Bug Fixes
- add better reporting and proper resume on backfills (33b56e5)
- add better retry logic for backfills (a751352)
- add permissions to the internal API (39d9465)
- add permissions to the internal API (2b8ec1c)
- allow sheets to be much larger (dced566)
- allow sheets to be much larger (7f49a77)
- better icons for stages (47ee0b0)
- build SDKs even if base client has no changes (f86de63)
- bulk insert in discovery, seed records on resume, dedupe retry helper, add cancel tests (274ab01)
- chunk bulk inserts for sqlite, use rows_affected for counts, faster cancel checks, users page a11y (f25ade7)
- harden backfill cancel idempotency, SQL injection guard, DID retry cap, and row a11y (25f0955)
- issues with backfill stage/status separation and progress tracking (54d8e28)
- move user permission management into sheets (7e6a1f1), closes #23
- move user permission management into sheets (32942fb), closes #23
- only count successful PDS resolutions, cap retry-after, update backfill docs (cb3797e)
- update column type in backfill migration (81c4ea8)
- use correct permission IDs in dashboard (b258408), closes #24
- use correct permission IDs in dashboard (66c792f), closes #24
- use cursors for pagination in spaces endpoints (3e6c561)
Features
- allow backfills to be cancelled (5a3a4b9)
v2.7.0
Released 2026-05-13
Bug Fixes
- generate missing IDs for dead letters (174b6ef), closes #20
- move record info into sheets (b814b1c)
- prevent dead letters from being created without an ID (ea4a340), closes #20
Features
- publish node sdk (d81e23c)
v2.6.0
Released 2026-05-12
Bug Fixes
- cleanup broken sessions (8840ac0)
- cleanup derelict items after successful auth (9fe1989)
- dont block space creds on client key check (07c6065)
- fix base path not being respected by trailing slash redirects (fba918e)
- prevent base path collision (4f5a8ef)
- prevent creation of API clients that would break HappyView core client (3ab5e7e)
- prevent errors with IPv6 addresses when building loopback clients (df77c02)
- prevent false match rewrites when a base path is in use (73078bf)
- prevent unauthorized privilege escalation (942a520)
- rate-limit unauthenticated procedure requests before rejecting (abd9e3d)
- reject JWT at exact expiry second (27f9cf8)
- remove duplicate exports in api.ts from merge (deffbd7)
- remove forced HappyView redirect URI from API client creation (572ca51)
- remove oauth redirect hop, and add explicit redirect for the root url (fdb6fac)
- remove public record aggregation from permissioned spaces (91684f3)
- remove route dupes (ec0f624)
- replace the base path sentinel in next.js text files (33028b1)
- require client key for rate limiting on all XRPC routes (671db5a)
- restore SDK scopes types after bad conflict resolution (2003680)
- restrict Bearer space credentials to space XRPC routes (d6ae5cd)
- scopes types in oauth-client sdk after bad conflict resolution (fecc410)
- update scopes type (992e6e0)
- use the correct cursors when paginating spaces (11fda6f)
Features
- add control for experiments to the dashboard (b7bca04)
- add new TID functions (1f51965), closes #16
- add oauth-client-node SDK (4ea257c)
- add support for session hooks (538d033)
- allow the base path to be configured (a23efe6)
- permissioned spaces implementation (4ca2bd8)
- refactor permissioned spaces to better align with Dan's implementation (6db92e0)
- update JS SDKs to more closely match their @atproto cousins (1731533)
- xrpc-proxy: add settings to control the XRPC proxy (267ab7a)
v2.5.2
Released 2026-05-08
Bug Fixes
- better handling for PDS errors (7863b43)
- expose approved oauth scopes to clients (d49b6f5)
- expose oauth scopes via the SDKs (bbcddd0)
- update the base path rewrite to skip Nexts basePath config (23227a1)
v2.5.1
Released 2026-05-07
Bug Fixes
- dont refresh tokens on 4xx status codes (cde70f7)
v2.5.0 — v2.5.0 - The Permissioned Data Release
Released 2026-05-05
Bug Fixes
- remove public record aggregation from permissioned spaces (9ee009f)
Features
- add control for experiments to the dashboard (83df252)
- add support for account write delegation (9026232)
- permissioned spaces implementation (17cc659)
- put permissioned spaces behind an experimental flag (6b666d7)
- update JS SDKs to more closely match their @atproto cousins (7b87c36)
- xrpc-proxy: add settings to control the XRPC proxy (53f63da)
v2.4.1
Released 2026-05-03
Bug Fixes
- add atproto/lex headers to prevent CORS errors (760e0aa)
v2.4.0
Released 2026-04-28
Bug Fixes
- ci: temp disable ATCR pushes (8ed28e5)
Features
- allow first party API clients to child API clients (cdb69c4)
- dashboard: warn users before they use
transition:generic(7d4c44a) - oauth: move third party api client management into built-in XRPCs (fde532d)
v2.3.1
Released 2026-04-27
Bug Fixes
- auth: better handling for allowed scopes during oauth (b27b883)
v2.3.0
Released 2026-04-26
Features
- login: add handle autocomplete (4ee385b)
v2.2.0
Released 2026-04-25
Bug Fixes
- db: convert dead letter resolved_at to TEXT in Postgres setups (deb4aee)
Features
- sdk: allow client to configure clientId (e76acbe)
v2.1.1
Released 2026-04-23
Bug Fixes
- sdk: add gh links to packages (718075a)
v2.1.0
Released 2026-04-23
Bug Fixes
- remove linked accounts page (abe1c04)
Features
- dashboard: add UI for managing dead letters (0345f0b)
v2.0.1
Released 2026-04-22
Bug Fixes
- ci: remove ATCR from publish step (f58d189)
v2.0.0
Released 2026-04-22
Bug Fixes
- add automatic handling for incompatible db.raw (8a13fdf)
- add CORS reflection for auth requests (e813713)
- allow HappyView redirect cookie to be read appropriately (b69c59f)
- allow session cookies to work cross origin (494cb05)
- auth: prevent unauthorized users from seeing the dashboard (fcb3ac2)
- backfill all collections when no collection is selected during backfill creation (5cd2e01)
- coerce query params based on lexicon schema (38bd0d3)
- convert plugin config to text column (dade035)
- convert plugin timestamp columns (9d190cb)
- copy migrations in image (593d361)
- create a dummy bin for the build step (7741c8f)
- dashboard: fix broken interactivity on collection combobox (5cbfc3c)
- database column type mismatch (3932db0)
- delete auth redirect cookie before redirecting (2dd8b19)
- delete auth redirect cookie before redirecting (00d6b8f)
- display the correct version on the about page (e6504fa)
- ditch redirect cookies in favor of storing redirect info in the db (52caa37)
- dont skip HappyView in the external auth callbackloop (210b326)
- ensure handles are always forced to lowercase during dashboard auth (785b00f)
- ensure oauth cookies are correctly removed (7dc2443)
- event-log: prevent double filtering (cf7a227)
- fix auth tests (0036280)
- http resolution for labeler websocket connections (405e61a)
- issue in redirect state capture (9d95cee)
- lint errors (1436f4c)
- lint issues (de48479)
- lint issues (760f50a)
- make sure auth is passed when necessary in lua scripts (cdde018)
- missed a variable ref (fc34c9c)
- pin to debian bookworm, otherwise we have an issue with glibc version (a9a62f0)
- prevent code blocks from overflowing dialog containers (0618e96)
- prevent errors on plugin page when user hasn't set up encryption tokens (41aa70a)
- prevent permission redirects before permissions are known (2b73757)
- prevent record backfill from blocking startup (b502295)
- remove sqlite db from git (134ae00)
- remove user swap (deaa25a)
- resolve proper endpoints for labelers (8e6575e)
- restore reading scopes from redirect uri (8e01945)
- return the correct host data for plugin secrets (937fa4c)
- sdk: prevent CI crash if versions are already deployed (3c4a6d0)
- sdk: take advantage of prior art on crypto from bsky (7df0576)
- separate scopes on the api client page (0bc0f95)
- switch from /oauth/client-metadata.json to /oauth-client-metadata.json (b94f90f)
- switch Tap to sqlite by default (ab7f97b)
- sync plugin and host body types (fd25cb2)
- timestamp comparisons when using Postgres (4bd8b2f)
- update dashboard to use new internal auth (68a1123)
- update primary domain if PUBLIC_URL changes (5e93653)
- update types for rate limits (ab909d3)
- use async calls to get host secrets (753a3af)
- xrpc: fix XRPC writes to use the new auth system (ed5434f)
Features
- add about page for debugging (00e92b3)
- add API clients (3cd960b)
- add attestation support to atproto api (fbd65b1)
- add backfill and realtime streaming directly to HappyView (no more Tap dependency) (0bf605e)
- add builtin oauth, removing AIP dependency (14abcda)
- add config for oauth screen values (0777d8c)
- add configurable rate limiting (ca65897)
- add js sdks (3fd4645)
- add labelers to the dashboard (4ee83d8)
- add Lua module for atproto (a34fb0d)
- add missing HappyView Lua APIs to autocomplete and hover docs (14a1dae)
- add oauth config ui (6f09a58)
- add proper cursors and a separate index for backfill (d9d0544)
- add rate limiting (ec9f55a), closes #3
- add rate limiting + config (7c47bcf)
- add safe subset of Lua's table (d18eca4)
- add support for API clients (435737a)
- add support for arbitrary oauth scopes (22fddeb)
- add support for labelers (b8e6caa)
- add support for multiple domains (b5400c9)
- add support for params to procedures (fda2118)
- add support for plugin manifests and configuration via the dashboard (acc735e)
- add support for redirect uri on auth (1f590ef)
- add support for sqlite (0ba593c)
- add support for upgrading plugins (0bf0673)
- add the lex-agent sdk (9481601)
- add user permissions (89e3925)
- add xrpc libs for Lua (d45bf70)
- allow admin to change logo/document title for the dashboard (b4b5534)
- allow plugins to be loaded dynamically (9653984)
- automate generation of attestatioon signing keys (3b0d335)
- complete plugin sync pipeline with auth, tokens, and PDS writes (7cf33cf)
- dashboard: allow API clients to be created without rate limits (72d1d71)
- display plugin logs in event logs ui (847706a)
- display user handles in users page (47209bd)
- external auth infra (be081fd)
- include success status and error messages (368b969)
- indicate plugins that still need config (6dce092)
- make db connection pool size configurable (f128034)
- move dashboard under the
/dashboardroute (81e74be) - move user management into Settings (4012f47)
- reorganize the nav (587ff4c)
- switch to DPoP auth (98bccce)
- switch to sqlite as the default (5868b52)
BREAKING CHANGES
- Scripts should now use cursors instead of offsets.
v1.12.0
Released 2026-03-12
Bug Fixes
- add additional debug logging for Tap connections (fb807f2)
- proper parsing for array query params (8f1146a)
- return the avatar ref from bsky getProfile (391ab19)
- use ResponsiveDialog from DiceUI (fd54d3b)
Features
- add more structure to event logs (6506ff2)
- add request and response data to success events in event log (6aed219)
- allow query XRPCs to receive auth (14beec3)
- improved error logging for scripts (938efc0)
- process Tap events concurrently (28a1057)
- remove read-only restriction from db.raw (5f71d40)
- run index hooks before storing records to enable record bypass and manipulation (518bfc7)
v1.11.0
Released 2026-03-06
Features
v1.10.0
Released 2026-03-05
Bug Fixes
- add support for
did:webwhen resolving DIDs (1bc5114)
Features
- resolve and proxy unrecognized XRPCs (ee43d05)
v1.9.0
Released 2026-03-05
Bug Fixes
- add
envtable so lua script validation passes (4b45161) - backfill create test failed without an existing lexicon (4f7a6a0)
- backfill create test failed without an existing lexicon (again?) (cf10723)
- client error on event logs (2ee0589)
- make sure Tap collections are up-to-date on reconnect (38f89e7)
- match design to other tables pages (8f6fe4e)
- prevent logo from clipping (cf7cadb)
- prevent validation error when attempting to concat with env vars in lua scripts (349234e)
Features
- add
httpmodule for Lua scripts (4eb108c) - add event logs to the dashboard (8477dd3)
- add event_logs migration (0df2fc4)
- add index hook scripts (f8cf24d)
- add Lua ENV vars (7190018)
- add support for sorting to the
dbmodule (6c91bab) - event logs (76627d2)
- index hooks (db44e97)
v1.8.0
Released 2026-02-27
Features
- add
db.backlinksfor filtering results based on backlinks (0a682c9) - add
db.rawfor complex queries (read-only) (c347718)
v1.7.1
Released 2026-02-27
Bug Fixes
- database URLs were busted for local dev (a59d70b)
v1.7.0
Released 2026-02-27
Bug Fixes
- force records from
dbto serialize to arrays (66cc7af)
Features
- add
toarray()so users can force a Lua table to serialize to an array (6827ceb) - enable more complex database operations with
db.search()(7bcb5aa)
v1.6.2
Released 2026-02-26
Bug Fixes
- use original auth scheme instead of hardcoded dpop (14252b2)
v1.6.1
Released 2026-02-24
Bug Fixes
- dynamic page routes were broken (a09ce1b)
v1.6.0
Released 2026-02-24
Bug Fixes
- backfill now loads previously deleted records (75dcd8c)
- show collections on Records page even if they have no records (5eab462)
Features
- add "View Records" buttons to lexicons (a9db22c)
- add bulk collection record deletion to the API (3f4833a)
- add bulk collection record deletion to the dashboard (310f3f8)
- allow records to be deleted from the dashboard (e7000a1)
- allow records to be deleted via the API (417f60a)
v1.5.1
Released 2026-02-24
Bug Fixes
- remove backfill switch for query and procedure lexicons (e8c3ec7)
v1.5.0
Released 2026-02-24
Bug Fixes
- prevent rogue records from being stored (26d8400)
- records page now properly lists collections in dropdown (c7d2c44)
- wrap dynamic page with a server component to fix build (a2e4a32)
Features
- add column visibility and better scrolling to records table (2d37ca8)
- add custom processing scripts to procedure and query lexicons (6db74fc)
- add dark mode (6e35616)
- add Docusaurus site and GitHub Pages deploy workflow (5b25d27)
- add proper backfill stats tracking (08989b1)
- additional Lua completions and docs (55a510d)
- merge network and local lexicons (ed7af39)
- use data table with dynamic columns for records page (3111322)
- use Shiki for code blocks (461a2fa)
v1.4.3
Released 2026-02-17
Bug Fixes
- enable trailing slash for static export compatibility (80afc2d)
v1.4.2
Released 2026-02-16
Bug Fixes
- improve AIP proxy error logging and cache Rust deps in Docker (cd1d843)
v1.4.1
Released 2026-02-16
Bug Fixes
- add AIP_PUBLIC_URL for frontend-facing AIP address (ae9f023)
v1.4.0
Released 2026-02-16
Features
- add AIP reverse proxy and runtime config endpoint (c7fb89d)
v1.3.0
Released 2026-02-16
Bug Fixes
- fix dpop resolution for dashboard login (b7c7bbb)
- update backfill e2e test for synchronous handler (1adc65e)
Features
- add admin login page with token auth (bff9876)
- add admins management page (3259868)
- add ATProto OAuth login via handle (16379e5)
- add backfill jobs page (5db4bdc)
- add dashboard navigation with sidebar layout (7643c9b)
- add lexicons CRUD page (d6e4f62)
- add network lexicons page (4d882f4)
- add records browsing page to admin dashboard (994d7cb)
- consolidate docker compose to single postgres instance (5a8863d)
- replace Jetstream and backfill with Tap (dbd2233)
- scaffold web admin app with static file serving (b1977b4)
- switch to AIP OAuth with PKCE and improve lexicon UX (374a2a1)
v1.2.0
Released 2026-02-14
Features
- add convention-based action field for procedure lexicons (1b879c2)
v1.1.0
Released 2026-02-14
Features
v1.0.2
Released 2026-02-14
Bug Fixes
- clear existing admins before adding did column (bc54913)
v1.0.1
Released 2026-02-13
Bug Fixes
- remove unused did field from AdminAuth (0a5657d)
v1.0.0
Released 2026-02-13
Bug Fixes
- resolve clippy warnings and formatting issues (77b3b39)
Features
- add backfill system for historical record discovery and indexing (15e8ffd)
- add Dockerfile, docker-compose, and CI workflow (7c5e7b8)
- add game record XRPC endpoints with DPoP auth (66f097f)
- add Jetstream listener and record indexing with sqlx migrations (8352043)
- add lexicon storage and admin API (94dbfaa)
- add listGames query endpoint with cursor-based pagination (a0ec4b5)
- add unauthenticated getGame query endpoint (1983251)
- add user profile endpoint with AIP userinfo auth (76754e9)
- catch-all XRPC router replaces hardcoded game routes (b763b26)
- dynamic Jetstream subscription driven by lexicon registry (74b0e24)
- index records on create/put, add created_at column (445c862)
- initial server with health endpoint and JWT auth (db5ba0b)
- multi-admin system with API key management and bootstrap (7628cf9)
- parallel multi-arch docker builds with manifest append (a587461)
- read getGame and listGames from database index instead of PDS (5c6713e)