Changelog
v3.0.0-alpha.45
Section titled “v3.0.0-alpha.45”Pre-release 2026-10-30
Bug Fixes
Section titled “Bug Fixes”- keep a release comment failure from failing the release (166743c)
v3.0.0-alpha.44
Section titled “v3.0.0-alpha.44”Pre-release 2026-10-30
Bug Fixes
Section titled “Bug Fixes”- accept space and permission-set lexicons, and soften three rules (d8a8b67)
- accept the empty object a pds answers to a plc signature request (cc63d4e)
- catch the atrium-oauth panic on a refused token exchange (eea0cdd)
- compile a plugin’s module when it is installed (4ffd0a0)
- count the session cookie only on the instance’s own pages (35261f6)
- delete only what reconcile can prove gone and still unchanged (226807b)
- dial jetstream’s tls with webpki-roots 1 and drop the 0.26 shim (97a0c52)
- fence a job’s progress and status writes and stop a run that lost its lease (ff2e069)
- give each job run its own lease, and stop a migration that was asked to (7f1dfee)
- hold running jobs under a lease so one instance’s restart leaves another’s alone (39f3e05)
- keep each sign-in on the key it started with, and switch at once when nothing signs (1db62f6)
- keep keys typed into the script editor while a render is behind (6d89ca6)
- number the pending client keys migration so it can’t collide with other open migrations (9bcb1bb)
- publish a rotated OAuth key before it signs, and serve the instance’s keys by jwks_uri (4d72f4e)
- put the caller’s email behind its own capability (1d31a76), closes Hi#risk
- read collections from happyview’s own schema in hv_collection_id (5bab5ac)
- send the lexicon detail telemetry asks for, and count custom setting keys (e8f082c)
- ship happyview-codemod in the docker image (413f4e2)
- skip the delete hook for a record changed since reconcile read it (1ebc64e)
- stop a telemetry preview recording the version it previews (a62398d)
- stop reading a script’s http response at its size cap and bound its time (1dbf129)
- stop warning about an anonymous request’s client key (68d2973)
- treat a cross-site xrpc request’s session cookie as anonymous (b8ee326)
- warn about [instance] on a deploy only for keys that differ from the instance’s (c893f1b)
- warn rather than refuse to boot on a lexicon the spec checks reject (7f315dd)
- warn when a delete hook cannot keep a claimed record (27b985c)
- web: keep long api client scopes out from under the row actions (39cfa45)
Features
Section titled “Features”- add a record view raw sql can read one collection through (597feae)
- let a backfill executor note its jobs and describe its collections (c8933d9)
- let a plugin read the caller’s account from their PDS (60edb94)
- reconcile a collection’s records with its accounts’ PDSes (052f87d)
- say that an accepted subscription lexicon is not served (5793ec9)
- toggle whether a lexicon is indexed from its page (66bc8ce)
- turn off wasm gc, typed function references and the component model (7726607)
- validate an uploaded lexicon against the spec, per field (b0a1565)
- web: show connecting and unreachable states while the dashboard loads its config (5e07c9e)
Performance Improvements
Section titled “Performance Improvements”- reuse catalogue entries for projects that have not moved (d78bbe2)
v2.17.0-beta.6
Section titled “v2.17.0-beta.6”Pre-release 2026-10-30
Bug Fixes
Section titled “Bug Fixes”- update wasmtime to 36.0.20 for rustsec-2026-0424 (1a7784f)
v3.0.0-alpha.43
Section titled “v3.0.0-alpha.43”Pre-release 2026-10-30
Bug Fixes
Section titled “Bug Fixes”- let cors credential a listed integration origin (880d36b)
- refuse cross-site requests that carry the session cookie (d05d824)
- refuse service-auth tokens on the admin api (01e2bab)
- update wasmtime to 49.0.5 for four rustsec advisories (dc5d180)
v3.0.0-alpha.42
Section titled “v3.0.0-alpha.42”Pre-release 2026-10-30
Features
Section titled “Features”- add javascript and typescript starter scripts (dd09071)
- list the languages a script can be written in (f7c25b0)
- pick a new script’s language in the dashboard (823ea16)
v3.0.0-alpha.41
Section titled “v3.0.0-alpha.41”Pre-release 2026-10-30
Bug Fixes
Section titled “Bug Fixes”- checkpoint the sqlite wal once it passes a size (6c97414)
Features
Section titled “Features”- let a hosting platform make telemetry mandatory (21f4e20)
v3.0.0-alpha.40
Section titled “v3.0.0-alpha.40”Pre-release 2026-10-29
Features
Section titled “Features”- let only the platform change domains on a platform-managed instance (c311e18)
v3.0.0-alpha.39
Section titled “v3.0.0-alpha.39”Pre-release 2026-10-28
Bug Fixes
Section titled “Bug Fixes”- store a new domain lowercased and keep a failed primary sync from stopping boot (37cf265)
v3.0.0-alpha.38
Section titled “v3.0.0-alpha.38”Pre-release 2026-10-28
Bug Fixes
Section titled “Bug Fixes”- check if-match before unpacking and stop warning about plugin tables on deploy (7d232c7)
- serve a dynamic route’s payload for an id the export never saw (e3fc896)
Features
Section titled “Features”- deploy a project bundle through the admin api (f130a8b)
- let apps granted dev.happyview.adminFull use the admin api (caf07de)
v3.0.0-alpha.37
Section titled “v3.0.0-alpha.37”Pre-release 2026-10-28
Bug Fixes
Section titled “Bug Fixes”- key software.release version fixtures with a dot (29498e6)
- switch the primary domain to PUBLIC_URL when it is already listed (ca3ee49)
v2.17.0-beta.5
Section titled “v2.17.0-beta.5”Pre-release 2026-10-28
Bug Fixes
Section titled “Bug Fixes”- catch the atrium-oauth panic on a refused token exchange (79fc7de)
- read and send a space repo’s digest as data alongside hash (e909f47)
v2.17.0-beta.4
Section titled “v2.17.0-beta.4”Pre-release 2026-10-27
Bug Fixes
Section titled “Bug Fixes”- drop wasmtime’s zstd cache and update crypto-bigint past its advisory (e38d35a)
v3.0.0-alpha.36
Section titled “v3.0.0-alpha.36”Pre-release 2026-10-27
Bug Fixes
Section titled “Bug Fixes”- install catalog plugins from their manifest url (9c8de85)
Features
Section titled “Features”- install default plugins on first boot (9c2f2e0)
v3.0.0-alpha.35
Section titled “v3.0.0-alpha.35”Pre-release 2026-10-27
Bug Fixes
Section titled “Bug Fixes”- run each job on its own thread so a busy one cannot starve the other workers (027fb32)
v3.0.0-alpha.34
Section titled “v3.0.0-alpha.34”Pre-release 2026-10-27
Features
Section titled “Features”- add an admin counts route for hosts (21b7a2c)
- add an optional get_declarations export for interpreters (fa7de85)
- add happyview check —json for editors (3b648d1)
- add happyview types to write editor declarations (930dcd0)
- complete scripts in the dashboard from the interpreter’s declarations (5df2b45)
- convert lexicons into declaration types (9ecfc1f)
- describe ctx and event shapes for declarations (055a778)
- give plugin api surfaces a type grammar (1ae874d)
- keep editor types current from happyview dev (2cc797d)
- parse plugin api surfaces into typed surfaces (ded3995)
- refuse a library whose api surface does not parse (5b6ea0a)
- serve the instance’s editor declarations to the dashboard (dee0a8b)
v3.0.0-alpha.33
Section titled “v3.0.0-alpha.33”Pre-release 2026-10-27
Bug Fixes
Section titled “Bug Fixes”- deps: update zstd past its advisories and drop wasmtime’s unused cache (c4a739e)
v3.0.0-alpha.32
Section titled “v3.0.0-alpha.32”Pre-release 2026-10-26
Bug Fixes
Section titled “Bug Fixes”- accept only the registry’s tracks as a plugin channel (1e1915b)
- ask for capability consent when updating or switching a plugin’s channel (87c8394)
- bound registry responses and keep the catalogue through a failed read (7560969)
- deps: update crypto-bigint and ctutils and triage the advisory in crypto-bigint 0.5 (7cb3d03)
- never attach a plugin a concurrent pass already flagged (a7d60c1)
- offer updates only to plugins that follow a registry project (844e3de)
- offer url installs only newer versions and track every installed registry project (549f2eb)
- refuse a registry artifact whose cid can’t be checked (4c43eb5)
- refuse an install when the channel moved after its preview (7b38c61)
Features
Section titled “Features”- attach plugins installed from github to their registry projects (964d74b)
- install a plugin from the registry by cid (100098b)
- install and update plugins by their registry project and channel (e29e930)
- install plugins by channel and show their lifecycle in the dashboard (e6fd23a)
- read registry plugin entries from happyview.toml (f0f654b)
- read the plugin catalogue from the software.release registry (2f22f6b)
v2.17.0-beta.3
Section titled “v2.17.0-beta.3”Pre-release 2026-10-25
Bug Fixes
Section titled “Bug Fixes”- serve a commit synced from a mac-authenticated host instead of failing (5e12ca7)
- update rustls, webpki, wasmtime and ctutils past their advisories (5cbb544)
- verify space commits from hosts that authenticate them with a mac (ffe5a9a)
Features
Section titled “Features”- derive the shared secret and mac that authenticate a space commit (3854555)
- let a request through an oauth session send a header and read one back (b895c89)
v3.0.0-alpha.31
Section titled “v3.0.0-alpha.31”Pre-release 2026-10-25
Bug Fixes
Section titled “Bug Fixes”- deps: update crypto-bigint and ctutils and triage the advisory in crypto-bigint 0.5 (03ed522)
- keep a lexicon’s indexed setting when a re-upload leaves it out (808c845)
- set indexed on the testkit’s query lexicon write (c83593d)
- show unindexed collections to operators and refuse test triggers that can’t fire (e0d7f69)
- skip events for a collection installed without indexing (e032929)
Features
Section titled “Features”- let a project install a lexicon without indexing it (044adb5)
- let a record lexicon be installed without being indexed (8cb8ca9)
- set whether a lexicon is indexed from the admin api (3b01d04)
- show and set whether a lexicon is indexed in the dashboard (43aba19)
v3.0.0-alpha.30
Section titled “v3.0.0-alpha.30”Pre-release 2026-10-25
Bug Fixes
Section titled “Bug Fixes”- update ctutils and crypto-bigint past their timing advisories (47023e7)
v3.0.0-alpha.29
Section titled “v3.0.0-alpha.29”Pre-release 2026-10-23
Bug Fixes
Section titled “Bug Fixes”- classify raw record view reads conservatively (be36462)
- refuse record view queries with more than 1000 ctes in one with (d746fa1)
- refuse record view reads the read-only gate cannot vouch for (72299a7)
- run raw writes through the record views locally (f4149b0)
- run routed postgres reads in a read-only transaction (70d404b)
- run table queries of the record views on the raw read route (96197df)
- walk each cte body once (abed4a1)
Features
Section titled “Features”- let record storage offer a raw read route (5dfc430)
- run raw reads of record views on the raw read route (028c80e)
- tell which relations a raw query reads (38be805)
v3.0.0-alpha.28
Section titled “v3.0.0-alpha.28”Pre-release 2026-10-22
Bug Fixes
Section titled “Bug Fixes”- answer 503 for admin stats while claimed storage is down (2d8eca2)
- bound the shared plugin modules by their total size (9eb51a4)
- compile plugins off the async runtime and reuse them (503db8b)
- keep a local count failure a 500 on admin stats (1d9b9e6)
- report a backfill as running as soon as it starts (1f97de9)
- serialize a compiled plugin module once (a49da52)
Features
Section titled “Features”- answer 503 for script reads and index writes when claimed storage is down (5876f4c)
- let record storage answer collection counts (abca8fc)
- let record storage say whether it holds an account (324faf3)
v3.0.0-alpha.27
Section titled “v3.0.0-alpha.27”Pre-release 2026-10-21
Bug Fixes
Section titled “Bug Fixes”- ask the attached account for the lexicon schema scope (be8f0c7)
- compare publish attempt times as dates (7b7b2d9)
- give a scope’s value the full width on narrow screens (ddb8bc5)
- give publishing warnings their own token (808a481)
- give the detail panel’s unpublish an outline (1094c9f)
- give the unavailable bulk publish button its reason (a3319eb)
- judge a linked repo’s publishing scope by what the pds granted (074a9e1)
- judge the instance account by the scope it was granted (16f08b3)
- keep an applied scope preset focusable (4441cd0)
- keep publish status visible on narrow screens (12ceb6d)
- let an unpublish win over a reconcile already in progress (3133362)
- log a repeated publish failure once (2bfef2e)
- make an applied scope preset legible in dark mode (2beb98c)
- make publishing status reasons reachable without a pointer (d40e4aa)
- move the publishing link out of the lexicons toolbar (9ede588)
- need linked repo access to aim a default at one (e70cc04)
- order the lexicon publishing migrations after alpha’s (e1affa2)
- publish more than 500 pending lexicons in batches (b50ba59)
- re-check a lexicon’s dns only when its authority changes (6ed93f2)
- reconcile after a default is deleted (4c7e049)
- refuse a default for a linked repo removed mid-request (7b74fe1)
- reword the publishing server messages and drop the availability endpoint (2420d77)
- save a default whose linked repo was removed (f17f85f)
- show a linked repo the viewer cannot see only as a linked repo (7470858)
- show a linked repo’s did once when it has no handle (d4b4262)
- show only a lexicon and its actions on narrow screens (0d0446e)
- style an applied scope preset as a selected chip (276b9ab)
- update rustls-webpki and webpki-roots for their new advisories (73167c2)
- update wasmtime to 49.0.4 for its two new advisories (4039ffb)
Features
Section titled “Features”- add the lexicon publishing admin api (300d398)
- check a lexicon’s dns from its publishing panel (fd9f0bb)
- keep an unpublished lexicon out of auto-publish (a33f2fb)
- list published records whose lexicon is gone (6b7a1e3)
- list published records whose lexicon is gone on the publishing page (410c6c8)
- manage lexicon publishing defaults from the dashboard (43d7631)
- match lexicon publishing rules and compute publish status (f0113ad)
- move lexicon publishing under system and keep it closed until usable (8045368)
- offer a lexicon publishing scope when linking a repo (99c76ef)
- publish lexicons to the attached account or a linked repo (9006386)
- report whether publishing is usable and check one lexicon’s dns (fb93bbe)
- rework the lexicon publishing dashboard around rules and setup (b089cb5)
- show a withdrawn lexicon in the dashboard (ab924db)
- show and change a lexicon’s publish status (a0714dd)
- store lexicon publishing rules and publications (900ee9f)
v3.0.0-alpha.26
Section titled “v3.0.0-alpha.26”Pre-release 2026-10-21
Bug Fixes
Section titled “Bug Fixes”- update rustls-webpki and webpki-roots for their new advisories (709df13)
- update wasmtime to 49.0.4 for its two new advisories (e5c4f34)
v3.0.0-alpha.25
Section titled “v3.0.0-alpha.25”Pre-release 2026-10-20
Bug Fixes
Section titled “Bug Fixes”- stop a library call that never answers in a test run (5a84e86)
v3.0.0-alpha.24
Section titled “v3.0.0-alpha.24”Pre-release 2026-10-19
Bug Fixes
Section titled “Bug Fixes”- apply a retried claimed delta only to the version it was made from (b3be126)
- cache the provider crates’ manifests in the docker build (66c1c47)
- clear a deleted record’s delta unconditionally (bbae889)
- close each conformance case’s pool when the case ends (1b5ebc2)
- count a claimed record’s applied delta as a change in a batch (2c9b468)
- guard the test helpers and check the claimed path in conformance (a4b3274)
- refuse providers built for another contract version (6fe94c6)
- remove a failed-open record when its retried hook skips it (6f18550)
- report a backfill when the jetstream source is unbound (18a341c)
- report claimed batch changes from the one ingest path (463c76d)
- route executor collections consistently and fail panicking executors (77e90af)
- split ingest runs by origin (280d855)
Features
Section titled “Features”- add the record provider contract crate (bb9616d)
- boot through happyview::run with pluggable providers (cf562df)
- let a pds validate a record only when it can by default (5f36090)
- let other providers compose the jetstream source (b860d29)
- route claimed collections to an external record storage (d2bdd6a)
- run a source’s own migrations in their own table (2c16e16)
v3.0.0-alpha.23
Section titled “v3.0.0-alpha.23”Pre-release 2026-10-19
Bug Fixes
Section titled “Bug Fixes”- let the muted surface show through a highlighted code block (da3021b)
Features
Section titled “Features”- highlight the code in a plugin’s published markdown (650b520)
v3.0.0-alpha.22
Section titled “v3.0.0-alpha.22”Pre-release 2026-10-17
Bug Fixes
Section titled “Bug Fixes”- badge only the official publisher’s plugins in the catalogue (513366a)
Features
Section titled “Features”- let a plugin carry a banner and say what it is on every surface (d0e4724)
- rebuild the plugins surface around a ledger, a catalogue and one plugin page (0e2001a)
v3.0.0-alpha.21
Section titled “v3.0.0-alpha.21”Pre-release 2026-10-16
Bug Fixes
Section titled “Bug Fixes”- read the registry catalogue a package at a time instead of trusting latestVersion (8723f62)
v3.0.0-alpha.20
Section titled “v3.0.0-alpha.20”Pre-release 2026-10-16
Bug Fixes
Section titled “Bug Fixes”- bound block decompression memory by the cap (ca1ffb8)
- collect written dids only in a block retry (ff54b0b)
- count only archive outages towards the replay halt (a621b21)
- count project lexicons in telemetry (cea30de)
- crawl by default in the compose files (1d1e43b)
- crawl when the archive wants a key and none is set (8155a20)
- give each segment part its own retry budget (8274878)
- give the archive client its own read timeout (8c3eaa1)
- give up on a gap replay plan after 30 seconds (36216a3)
- harden the archive client against stalled and broken bodies (35ada9d)
- hide delete for lexicons declared in happyview.toml (c0fd8ef)
- keep replay record totals across runs and refuse unreadable sweeps (9fec980)
- let a failed replay job resume where it stopped (0dcc2f2)
- move the replay migration past alpha’s plugin publisher migration (ab5d8a2)
- never resume an account replay without its accounts (f7a9d63)
- offer only crawl for account backfills in the dashboard (468389e)
- pace replay to the archive’s byte quota instead of failing on 429s (b2c8868)
- replay the account markers of what a block retry wrote (7eefd6d)
- report every run’s replay bytes when a replay completes (71612e4)
- run a backfill job once when two resumes race (c653ddf)
- stop a replay before it skips a block it cannot record (194556d)
- stop gap replay looping on a refused tip and create gap jobs with their floor (22d4447)
Features
Section titled “Features”- add replay backfill settings and job columns (0c38012)
- add the jetstream archive client (0a99465)
- always crawl account backfills (ff2dfcb)
- apply replayed account and sync markers as of their own time (6a553cc)
- backfill by replaying the jetstream archive (801f17c)
- crawl by default (013b3bf)
- decode dag-cbor records into atproto json (6d18c1d)
- fold replayed archive events into the record store (3bcee7b)
- read jetstream archive segments (5a79856)
- replay a jetstream gap from the archive instead of skipping it (182b02d)
- retry failed archive blocks (109ea86)
- show replay backfills on the dashboard (ca2501a)
- sweep replay markers over the archive’s uncompacted tail only (fd96169)
- turn archive rows into jetstream events (8abf2e3)
v3.0.0-alpha.19
Section titled “v3.0.0-alpha.19”Pre-release 2026-10-15
Bug Fixes
Section titled “Bug Fixes”- hold the space for a whole write so concurrent writes neither fail nor deadlock (f724ba0)
- let a racing writer create an author’s repo state once (5c6ba26)
- take the write lock up front in the space repairs (7d8aa55)
- update wasmtime past its thirteen new advisories (3a65126)
v3.0.0-alpha.18
Section titled “v3.0.0-alpha.18”Pre-release 2026-10-14
Bug Fixes
Section titled “Bug Fixes”- answer a module panic only when the guest trapped, and cap its report (30ff248)
- bound a job fired from a test run (eda70ec)
- bound the prepared cache and forget a script’s old artifact (e51752c)
- clear a network lexicon’s authority when it is saved by hand (c329699)
- compile project modules off the runtime workers and name unreadable builds (3cab946)
- forget every library call when a module run returns (7380c52)
- install the update the publisher check approved (db9240e)
- keep first sign-in from bootstrapping an admin when a superadmin is configured (910d466)
- keep the check database open for the whole run (11233ca)
- keep the running configuration when a happyview.toml edit is refused (0410e63)
- let dev finish a setup it was interrupted in (6dd7c30)
- note a shadowed lexicon and keep project scripts from saving (4710b30)
- refuse a codemod apply on a project script before checking its language (eee7f25)
- refuse a module written in another language (4af6101)
- refuse an invalid superadmin did and read every setting through one lookup (28197e9)
- refuse delegateDid on a procedure without dpop instead of writing it into the record (e4fd227)
- refuse malformed error mocks (9726c33)
- report unreadable project files and lexicon ids that differ only by case (04a69d0)
- run test files under the configured script limits and stop a dropped run’s files (ff42263)
- say a jetstream setting edit needs a restart (7d72d1a)
- serialise lexicon catalog writes and repair unreadable network rows at boot (855adac)
- share the dashboard fallback and check the embedded copy carries the base path marker (862cca3)
- show the full build hash and an unrecorded handler in the module panel (30d212c)
- start a script module’s fuel after its input is written (160fd3b)
- stop copying migrations into the image (a2a6648)
- stop the dev watcher rebuilding on its own reads (bfad704)
- strip a script env file’s bom and never log its lines (d80b4d0)
- update rustls past its four new advisories (7d14b87)
- warn when a script’s outbound xrpc list cannot be read (61fa2ef)
- watch src again when it is recreated (5b943a6)
Features
Section titled “Features”- add a layered script catalog (e46d008)
- add handler attributes and export! for script modules (111ddad)
- add happyview check (da28bea)
- add happyview dev (2b623dd)
- add happyview-script’s executor and handler context (379cc5a)
- add the happyview test command (7dbbc26)
- add the module_resolve wrapper to the plugin SDK (5ddeada)
- add the project snapshot types and catalog vocabulary (baf323c)
- add the script:test capability and the test script kind to the host (9895b72)
- add the test script kind and the test runner wire types to the sdk (3051537)
- answer a test run’s repo writes from an in-process pds (d1b55ab)
- apply a happyview.toml edit while dev runs (c9c5d9f)
- badge the official publisher’s plugins and let the catalogue be turned off (a58f5fb)
- build a project snapshot from src (edba221)
- build and dispatch compiled script modules from the project snapshot (9d202f6)
- build the project at boot and refuse to start when it fails (7fde1e7)
- calibrate module fuel against the lua interpreter (f6373dd)
- carry prepared artifacts and module resolution on the plugin wire (13fcbf6)
- default a dev instance’s settings beneath the project file (0a7e51e)
- embed the dashboard in release builds (6e37098)
- fire every trigger family from a test file (c011aec)
- generate dev instance secrets once per project (d6fd481)
- give a test run its own state and a database per test file (578dbbb)
- install a project snapshot (fb5798c)
- keep a dashboard script’s artifact when it is saved (6a65026)
- layer happyview.toml under the environment through one lookup (7df3911)
- let a guest report its panic as a script error (4b0578b)
- let a test file report results and read what it observed (5720969)
- let instance settings fall back to happyview.toml (200c854)
- let interpreters claim project file extensions (77b734c)
- let interpreters resolve a project’s modules through the host (698ed19)
- let scripts read variables from an env file (20cdcbc)
- let the plugin directory be configured and gate automatic backfills (ac2e6db)
- load compiled script modules into project script entries (d7b7b4b)
- load happyview.toml from HAPPYVIEW_PROJECT at boot (7da9b76)
- load project lexicons with their overrides (93361fb)
- map job and label files to triggers (4cff59e)
- map lexicon-directory paths to triggers (9ecc246)
- mirror the job type rules in the script form (65cec9c)
- mock library namespaces with data in a test run (3d6b4a5)
- name the project file a script error comes from (d5a855d)
- parse happyview.toml into ProjectConfig (b977168)
- pin each script run to one project snapshot (fb7e3e5)
- prepare scripts through the interpreter and stamp the artifact (cf9a539)
- prepare the project snapshot and check its imports (ded3883)
- print what a dev build changed and what it warns about (e1c9dc5)
- read a script module’s handler and interface sections (51da04d)
- read script descriptions from a leading comment (b8a9449)
- rebuild the project snapshot on save (46d0f0f)
- refuse a second interpreter claiming an installed extension (f60237d)
- refuse admin lexicon writes a project file owns (9efcac5)
- refuse admin script writes a project file owns (f67218c)
- rerun affected test files on change with —watch (45aae53)
- reserve a final .test segment in job types (97a45dc)
- resolve forged identities in a test run without the network (c33dc58)
- resolve relative module specifiers against a project snapshot (dbd597d)
- run scripts from their prepared artifacts (c22b442)
- seed the configured superadmin at boot (9ccea63)
- set up a dev instance without the setup wizard (6ce86f7)
- show compiled module handlers read-only in the dashboard (13a6fd4)
- show project lexicons and scripts read-only in the dashboard (33f0b81)
- stamp interpreter builds and cache prepared dashboard scripts (e09ca87)
- start a project’s declared backfills once (b8725be)
- subscribe to the labelers happyview.toml declares (4e053fb)
- track the network lexicons happyview.toml declares (34f1716)
- validate happyview.toml values at the line they are written (b826e81)
- walk a project’s src tree (10bed6a)
- write lexicon rows and memory through one catalog (25112fb)
v3.0.0-alpha.17
Section titled “v3.0.0-alpha.17”Pre-release 2026-10-13
Bug Fixes
Section titled “Bug Fixes”- carry bytes across the plugin boundary as base64 (d33577a)
- give no_std plugins an allocator that frees (43378ff)
- grant a plugin fuel for the data the host hands it (2c89ae5)
v3.0.0-alpha.16
Section titled “v3.0.0-alpha.16”Pre-release 2026-10-13
Bug Fixes
Section titled “Bug Fixes”- answer an invalid record cursor with a 400 (27ee7ed)
- bound dictionary training and recompression by bytes (8090347)
- count selected rows in a purge batch and keep refs writes in the store (29e7139)
- harden the sqlite codec functions and drop the timestamptz helpers (205cf1f)
- keep booting when the post-swap reclaim fails (0d731d1)
- keep legacy ref collections through the copy (46018a5)
- keep oversized record bodies raw (6a181b7)
- name what blocks the record upgrade and log the user indexes it drops (01f09a3)
- never empty the compact record tables after another boot swapped them (5e2ba3f)
- reclaim sqlite space after the record swap in checkpointed chunks (60e28f0)
- run one dictionary retrain at a time and answer a second with 409 (80b0b5c)
- run the postgres record upgrade on the migration lock’s connection (8eae4b9)
- seek record pages to their cursor with a row-value keyset (c61ea47)
- walk legacy refs by row value and refuse blank uris (d14bec0)
- warn when every reclaim checkpoint is busy and pin the reclaim tests (6959e1c)
- write plugin index records through the shared record store (58a26d8)
Features
Section titled “Features”- add compatibility views over the compact record tables (c5cd381)
- add interned record tables and enforce sqlite foreign keys (ed20794)
- add sql codecs for compact records on both backends (e234f01)
- add the compact record codecs (b275283)
- compress sqlite record bodies with per-collection zstd dictionaries (2ae4c86)
- copy and verify legacy records into the compact tables (913158d)
- route every record read through the record store (06e4c05)
- route every record write through one record store (c3c55f8)
- store records in the compact format and swap the legacy tables at boot (d93e431)
- train record dictionaries and recompress bodies in the background (ffae81d)
v3.0.0-alpha.15
Section titled “v3.0.0-alpha.15”Pre-release 2026-10-12
Bug Fixes
Section titled “Bug Fixes”- ask an account’s pds before purging it (a9da5f9)
- cap jetstream frames and the dictionary body while reading (11bacd5)
- check only deletions with the account’s pds and cap its answer (50be9ee)
- classify jetstream apply errors and skip invalid commits (127f173)
- clear the jetstream worker status when the pool stops (924b4a8)
- drop a jetstream seq saved before the time cursor (b22af47)
- keep jetstream cursors through unexplained refusals and renumbered seqs (c939e7b)
- keep the case of a jetstream path prefix (bfddd6d)
- keep the jetstream seq when the later time cursor is unusable (b93ab9a)
- let the tombstone migrations run again after a rollback (aff8cbb)
- lock tombstone keys in hash order and keep revs on unversioned upserts (31080ed)
- lowercase the jetstream host and warn on bad compression and worker settings (9bb0ca4)
- resume from the tip when jetstream renumbers under a time cursor (ee1ef6f)
- resume jetstream past dispatched events and test per-did order (14ca559)
- resume renumbered jetstream seqs by witnessed time and keep tip gaps (773d5fa)
- retry unavailable jetstream events until they apply and stop workers on drop (17e7c39)
- tombstone a recordless delete while a backfill is cancelling (42b25f8)
- tombstone unversioned deletes at the deleted row’s rev (2065382)
- tombstone, purge and lock only for records this instance holds (e8dd553)
Features
Section titled “Features”- add record revs and record and account tombstones (d9ad5be)
- apply jetstream events per did in order behind an applied watermark (5a55a9e)
- consume jetstream v2 with ordered workers and an applied cursor (d71f91e)
- keep backfill pages from resurrecting deleted records (f4a3945)
- order jetstream record writes by rev and tombstone deletes (b266f8c)
- parse jetstream v2 and v1 frames and decode zstd frames (22371ca)
- purge deleted accounts and resynced repos from jetstream (3896fc8)
- read jetstream protocol, compression and worker settings (f96e017)
- recover from jetstream refusals, rotated dictionaries and lost cursors (44ed560)
- run locally-managed cloudflare tunnels from a credentials file (1926142)
- show the jetstream consumer’s status to admins (b4b03ca)
v3.0.0-alpha.14
Section titled “v3.0.0-alpha.14”Pre-release 2026-10-10
Bug Fixes
Section titled “Bug Fixes”- retry a wal checkpoint that loses the checkpoint lock (bb69568)
v3.0.0-alpha.13
Section titled “v3.0.0-alpha.13”Pre-release 2026-10-10
Bug Fixes
Section titled “Bug Fixes”- clear indexed_at on local edits so the jetstream echo re-stamps them (34c3901)
- close the checkpoint connection if the checkpoint is cancelled (ae3b0e6)
- dedupe and chunk a backfill records page before upserting it (b30a1fc)
- delete backfill details in batches and serve pds summary counters in 64 bits (4b40260)
- dispatch backfill units waiting on a busy pds worker without new arrivals (556df7a)
- index records by collection for the default listing order (7e1a554)
- keep indexed_at on index_put and correct the provenance docs (fa9d537)
- keep the plc cooldown on backfill cache hits and record why a job paused itself (b57a7d5)
- lock a pds’s stats before its job when counting late records (52d149f)
- page the backfill resolver and rebuild record refs only once (c7f8df2)
- pass the new storage settings through the production compose files (e92da02)
- pause a backfill that ends with units queued and stop relay waits on pause (779f654)
- record that a refs rebuild started before its first page and restore on_resolved docs (bf77184)
- report long migration waits and require repairable concurrent index builds (7e769e8)
- resolve each backfill did once per run and count pds stats in 64 bits (f6a0dab)
- run sqlite at synchronous=normal with fewer backfill connections (5d9c492)
- saturate backfill job counters and fail runs whose completions keep failing (efdae8a)
- write each backfill page in one transaction and cache labeler subscriptions (f8df039)
- write each jetstream record and its refs in one transaction (97aed54)
Features
Section titled “Features”- bound the backfill work queue (4de5df8)
- checkpoint the sqlite wal on a schedule (cf6c65e)
- expire resolved dead letters (0f4cf65)
- serve backfill detail from the bounded queue (a21b51a)
- show a release its notes in the update preview (40c70d7)
v3.0.0-alpha.12
Section titled “v3.0.0-alpha.12”Pre-release 2026-10-10
Features
Section titled “Features”- list every release, and let both catalogue sources be redirected (e6d51f1)
- read the plugin catalogue from the registry (7f63327)
v3.0.0-alpha.11
Section titled “v3.0.0-alpha.11”Pre-release 2026-10-10
Features
Section titled “Features”- give guests enough native stack for an interpreter’s own limit to fire (0714eb9)
v3.0.0-alpha.10
Section titled “v3.0.0-alpha.10”Pre-release 2026-10-10
Features
Section titled “Features”- let plugins run library calls concurrently (8d2e82b)
- start and wait on library calls from the sdk (1b018d4)
v3.0.0-alpha.9
Section titled “v3.0.0-alpha.9”Pre-release 2026-10-10
Features
Section titled “Features”- resolve a handle or did from a plugin (d8df489)
v3.0.0-alpha.8
Section titled “v3.0.0-alpha.8”Pre-release 2026-10-10
Bug Fixes
Section titled “Bug Fixes”- read a query-string plus as a space (5463060)
v3.0.0-alpha.7
Section titled “v3.0.0-alpha.7”Pre-release 2026-10-10
Bug Fixes
Section titled “Bug Fixes”- answer a declared lexicon error at 400 (008f2bf)
v3.0.0-alpha.6
Section titled “v3.0.0-alpha.6”Pre-release 2026-10-09
Bug Fixes
Section titled “Bug Fixes”- answer a byte method’s structured failure as json (32fb05e)
v3.0.0-alpha.5
Section titled “v3.0.0-alpha.5”Pre-release 2026-10-08
Features
Section titled “Features”- add a blob table keyed by content CID (6bdcb18)
- answer with bytes when a lexicon’s output encoding says to (e9a9df0)
- let plugins store and read blobs (be06931)
- take a byte body when a lexicon’s input encoding says to (2070645)
v3.0.0-alpha.4
Section titled “v3.0.0-alpha.4”Pre-release 2026-10-08
Features
Section titled “Features”v2.17.0-beta.2
Section titled “v2.17.0-beta.2”Pre-release 2026-10-08
Bug Fixes
Section titled “Bug Fixes”- answer 502 when identity resolution may succeed on retry (6ed3467)
- batch ended-grant cleanup and index grant expiry (a449752)
- check the space inspector switch before loading the space (8ab3fb3)
- close space moderation while the inspector is off (8e259be)
- delete ended access grants on the protected retention schedule (48a291c)
- describe spaces:manage-records as reserved (d1e18c0)
- fail closed on space access audit writes and page grant reads (5f5b79d)
- find blob authors once instead of once per account grant (c6945df)
- hold protected events per grant and follow a keep-everything retention (90898a6)
- hold protected retention at the oldest stored grant and fail closed (b75d92e)
- include spaces an account only belongs to (b491a13)
- index grant reads and resolve a space’s covering grant on the server (a1f857c)
- keep grant records while grants are active and honor keep-everything retention (243a061)
- log one revocation per grant and cap the grant length at a year (366237c)
- log retention changes only when the effective value changes (73b4acd)
- match account grants for space authors who aren’t members (287db59)
- read audited settings under a lock inside their write transaction (23c6c1f)
- resolve account grants on the server and let inspect holders read status (8ee3be2)
- restore the blob author lookup’s doc comment (663ce14)
- sweep ended grants first and index the retention hold (a72e53d)
- tighten access grant revocation and lookup (03a1947)
- web: cache only invalid identities and clear records on grant change (a8d4d02)
- web: drop space record responses from a superseded grant (8ab1737)
- web: ignore grant lookups that finish after newer grant state (7e4fb65)
- web: keep loaded config when a refresh fails (c6d885f)
- web: key access grants to their target and throttle account lookups (5b65e57)
- web: leave unset protected retention blank instead of saving 365 (da584dc)
- web: load covering grants from the server and drop stale account data (3678e23)
- web: prefer a space grant over account grants on a space page (a950fdb)
- web: refresh and report access grant state (dade0e7)
- web: reset the author filter per grant and retry transient lookups (29870eb)
- web: retry failed identity lookups and reset paging per grant (c8aaad6)
- web: say access logs follow retention rather than never expire (f998295)
- web: show grant ids and read records, and spell out grant scope (cbab0f5)
- web: show when a grant’s reads fail to load (5ecb93a)
- web: wait for space members before matching access grants (15a4761)
- write audited setting changes and their events together (72960b2)
Features
Section titled “Features”- add account-scoped space moderation routes (6822372)
- add space access grants (7c47ced)
- add the spaces:inspect permission (a3d0932)
- gate the space inspector behind an instance setting (8104652)
- keep space access events on their own retention schedule (f4ce85a)
- link access grant events to their grant (cc38831)
- protect space access events from manual purges (142daee)
- require an access grant to read space contents (2e51a61)
- return the profile avatar from identity resolution (ae92fea)
- run locally-managed cloudflare tunnels from a credentials file (0fde7e3)
- web: add space inspector settings (ecf55ae)
- web: add the account view for space moderation (197eef3)
- web: list reads under their grant in the event log (8d833ce)
- web: request and expire space access grants in the dashboard (be1c28c)
- web: show avatars and invalid handles in the space inspector (c7f8b93)
- web: show handles instead of DIDs in the space inspector (29831d7)
v2.17.0-beta.1
Section titled “v2.17.0-beta.1”Pre-release 2026-10-07
Bug Fixes
Section titled “Bug Fixes”- allow only space admins to list members (d5d56e8)
- block network lexicon add until the nsid resolves (01d836e)
- handle backfill on network lexicon add (39d449d)
- keep a primary domain if it disappears mid-switch (975ff54)
- let super admins read spaces with getSpace (4119d87)
- only log script.executed when verbose event logging is on (f967630), closes #113
- refuse the platform key everywhere it isn’t allowed (a0e97c2)
- refuse to delete the last domain (8d32268)
- show backfill switch when resolved lexicon is type record (3b81d4b)
- web: keep backfill dialog actions and account suggestions on screen (72987d1)
Features
Section titled “Features”- add admin endpoints for moderating spaces (393cf18)
- add PLATFORM_API_KEY_HASH and JOB_WORKER_CONCURRENCY config (a357aad)
- authenticate a managed-hosting platform key (b55d571)
- let the platform key set the super user (a151ec0)
- run several job workers at once (3a21e27)
- show when a hosting platform manages the instance (d0a3f44)
- web: add spaces moderation pages to the dashboard (0c36f5b)
v3.0.0-alpha.3
Section titled “v3.0.0-alpha.3”Pre-release 2026-10-07
Bug Fixes
Section titled “Bug Fixes”- allow only space admins to list members (d5d56e8)
- block network lexicon add until the nsid resolves (01d836e)
- handle backfill on network lexicon add (39d449d)
- keep a primary domain if it disappears mid-switch (975ff54)
- let super admins read spaces with getSpace (4119d87)
- only log script.executed when verbose event logging is on (f967630), closes #113
- refuse the platform key everywhere it isn’t allowed (a0e97c2)
- refuse to delete the last domain (8d32268)
- show backfill switch when resolved lexicon is type record (3b81d4b)
- web: keep backfill dialog actions and account suggestions on screen (72987d1)
Features
Section titled “Features”- add admin endpoints for moderating spaces (393cf18)
- add PLATFORM_API_KEY_HASH and JOB_WORKER_CONCURRENCY config (a357aad)
- authenticate a managed-hosting platform key (b55d571)
- let the platform key set the super user (a151ec0)
- run several job workers at once (3a21e27)
- show when a hosting platform manages the instance (d0a3f44)
- web: add spaces moderation pages to the dashboard (0c36f5b)
v3.0.0-alpha.2
Section titled “v3.0.0-alpha.2”Pre-release 2026-10-06
Bug Fixes
Section titled “Bug Fixes”- resolve a workspace dependency down the channel chain (728dc55)
v3.0.0-alpha.1
Section titled “v3.0.0-alpha.1”Pre-release 2026-10-06
- feat!: run scripts in an interpreter plugin (e916df7)
Bug Fixes
Section titled “Bug Fixes”- bind table filters by type (750e259)
- build the interpreter fixture in the playwright job (d0a1882)
- build the plugin fixtures from one list and bump wasmtime to 49.0.2 (3d79ea1)
- correct record filters and sorts on Postgres (1b961c4)
- dead-letter a missing interpreter without retrying (e200906)
- enforce the script instruction limit and report error lines (bcdd76c)
- expire labels and plugin key-value entries on Postgres (d1f53bb)
- record the error kind in dead-letter rows (6462eb6)
- return a correlation id for host-origin script failures (45d7edb)
- route the script kind through the trigger lookup (dd5b715)
- skip scripts whose language has no interpreter (550949b)
- stub the codemod bin in the Dockerfile and bump wasmtime to 49.0.1 (658742f)
- switch to record envelopes for PDS reads (a760721)
- wire up external auth token refresh (68d0d18)
Features
Section titled “Features”- add functionality to support happyview.atproto library (a358ace)
- add functionality to support happyview.linked-repos and happyview.jobs libraries (f2a030f)
- add functionality to support happyview.spaces library (ccd5d3d)
- add internal.json library (79124d3)
- add interpreter lookup and script input builder (a94bdcc)
- add plugin SDK crate (2f72c29)
- add script limits to instance settings (4677450)
- add support for
network:request:definedas a plugin capability (670ec9c) - add support for caller capabilities to the plugin SDK (9983007)
- add support for interpreter plugins (76faa06)
- add support for the new db plugins (536e227)
- add tid, time, and logging as built-in libraries (dd99edd)
- add v2 -> v3 codemod CLI (83d055d)
- expose codemod thru admin API and dashboard (8ca8f71)
- give space access independent read and write booleans (f21df77)
- name a space’s type spaceType on the plugin surface (ba0fef2)
- new infrastructure for plugins v2 (e7f2312)
- preserve some additional v2 functionality during codemod (f1eaee4)
- put mlua behind a non-default lua-reference feature (f90b880)
- refuse scripts whose language has no interpreter (83339cc)
- refuse to save scripts that use removed globals (2b5c0be)
- remove the v2 Lua globals (0fa638f)
- run job scripts through the interpreter (1f8ace8)
- run record-event and label scripts through the interpreter (0ea1f3e)
- run XRPC scripts through the interpreter (2393261)
- update auth plugins for manifest v2 (671f823)
- update editor templates for v3 (7c2b1cc)
- validate saved scripts through the interpreter (421b44d)
BREAKING CHANGES
Section titled “BREAKING CHANGES”- Scripts no longer run inside HappyView. A script runs in an interpreter plugin, and HappyView ships none, so a fresh or upgraded instance can neither save nor run a script until one is installed. Boot warns when none is. Until then a save is refused with a 400, an XRPC query or procedure answers 503, a record or label event is dead-lettered on the first attempt and let through, and a job fails. The Lua interpreter has no published release yet, so installing one means building it from the plugins repository.
- Plugin manifests must declare api_version “2” and their capabilities. One at “1” is refused at load for every plugin type, so a v2 auth plugin is absent until it is republished — check the boot log.
- The v2 script globals are gone; a stored script keeps working until it reads one, and the codemod rewrites it. The instruction limit is now enforced, where v2 installed its hook on the wrong thread and never fired it, alongside a new 10-second wall clock and a 64 MiB per-run memory ceiling. Jobs are exempt from the first two. A script that quietly ran long in v2 can fail in v3.
- Dead-letter and job error columns lead with the failure’s category where v2 wrote a host stage prefix, and an unrecognised script_type is a 400 rather than a 422. A library record read answers an envelope rather than a flat row; the public XRPC query routes keep their flat shape. A space’s type is spaceType on the plugin and script surfaces. A default build compiles no Lua at all.
- v2 globals are removed See packages/docs/content/docs/guides/upgrading-to-v3.md.
Signed-off-by: Trezy tre@trezy.com
v2.17.0-dev.2
Section titled “v2.17.0-dev.2”Pre-release 2026-10-05
Bug Fixes
Section titled “Bug Fixes”- block network lexicon add until the nsid resolves (01d836e)
- handle backfill on network lexicon add (39d449d)
- show backfill switch when resolved lexicon is type record (3b81d4b)
v2.17.0-dev.1
Section titled “v2.17.0-dev.1”Pre-release 2026-10-05
Bug Fixes
Section titled “Bug Fixes”- let super admins read spaces with getSpace (4119d87)
Features
Section titled “Features”- add admin endpoints for moderating spaces (393cf18)
- web: add spaces moderation pages to the dashboard (0c36f5b)
v2.16.1-dev.1
Section titled “v2.16.1-dev.1”Pre-release 2026-10-05
Bug Fixes
Section titled “Bug Fixes”- allow only space admins to list members (d5d56e8)
v2.16.0
Section titled “v2.16.0”Released 2026-10-02
Bug Fixes
Section titled “Bug Fixes”- accept spaceType when creating a space (e4e54a6)
- accept write notifications from the writer’s repo host (1cc7d63)
- address 2 security vulnerabilities (RUSTSEC-2026-0316 and RUSTSEC-2026-0253) (467d850)
- check read access before minting member-list space credentials (a478768)
- collect expired labels on both backends (169200f)
- convert JSONB columns to TEXT to prevent postgres breakage (c69ae41)
- enforce space credential lifetime limits (7e2cdc2)
- honour the single space policy older clients send (f214424)
- issue space credentials for ten minutes (38e0e7c)
- keep an invite’s read and write access independent (b0b1c0e)
- keep serving addMember for clients that predate putMember (454c33f)
- look a record up by external id on Postgres (2ea0553)
- name the repo revision repoRev in write notifications (c98b291)
- name unknown spaces and accept bare space host audiences in notifyWrite (087b1fe)
- notify registered syncers of writes from every author (56fa75f)
- notify registered syncers when a space is deleted (e7f1db8)
- page listRepos by space revision (3f36ad1)
- reach managing apps through their service entry (00804ea)
- read a plugin’s key-value store on Postgres (9e52d9f)
- refuse delegation tokens that were already exchanged (127e32a)
- reject service auth tokens bound to a different method (a1dd8bf)
- reject write notifications from writers the space does not admit (b55e6e8)
- return the delegation token as token (3e84165)
- revoke space credentials when a member loses read access (805b4ab)
- sign space credentials, service auth, and commits with low-S signatures (a1d97bd)
- surface a label sweep that could not run (ec56ed7)
- use correct page name for record/label scripts page (f674c75)
- use the lexicon’s names for space credential errors (cb35b6e)
Features
Section titled “Features”- accept space credentials with HTTP message signatures (9333382)
- add includeValues option to listRecords (3a75a76)
- add put_member to the Lua spaces API (ba918ac)
- advertise HappyView as a space host in its DID document (c693ac4)
- bind space credentials to the key that signs for them (c5a55f1)
- filter listSpaces by spaceType (07f0e30)
- forward write notifications to syncers as notifyWrite calls (145ba64)
- make HappyView the authority for spaces it creates (674331d)
- register syncers for write notifications by service identifier (0c8afee)
- sequence space updates with a space-wide revision (31c6182)
- serve listRepos from the space writer set (0079d6f)
- sign space credentials with the instance space key (3095e11)
- sweep native space repos for writes whose notification was lost (d608a16)
- tell native repo hosts when space credentials are revoked (a0dd8ed)
- verify HTTP message signatures for space credentials (1e41e61)
v2.16.0-dev.5
Section titled “v2.16.0-dev.5”Pre-release 2026-10-01
Bug Fixes
Section titled “Bug Fixes”- name the repo revision repoRev in write notifications (c98b291)
- page listRepos by space revision (3f36ad1)
v2.16.0-dev.4
Section titled “v2.16.0-dev.4”Pre-release 2026-09-30
Bug Fixes
Section titled “Bug Fixes”- collect expired labels on both backends (169200f)
- keep an invite’s read and write access independent (b0b1c0e)
- look a record up by external id on Postgres (2ea0553)
- read a plugin’s key-value store on Postgres (9e52d9f)
- surface a label sweep that could not run (ec56ed7)
v2.16.0-dev.3
Section titled “v2.16.0-dev.3”Pre-release 2026-09-30
Bug Fixes
Section titled “Bug Fixes”- address 2 security vulnerabilities (RUSTSEC-2026-0316 and RUSTSEC-2026-0253) (467d850)
v2.16.0-dev.2
Section titled “v2.16.0-dev.2”Pre-release 2026-09-30
Bug Fixes
Section titled “Bug Fixes”- accept write notifications from the writer’s repo host (1cc7d63)
- check read access before minting member-list space credentials (a478768)
- convert JSONB columns to TEXT to prevent postgres breakage (c69ae41)
- honour the single space policy older clients send (f214424)
- issue space credentials for ten minutes (38e0e7c)
- keep serving addMember for clients that predate putMember (454c33f)
- notify registered syncers of writes from every author (56fa75f)
- notify registered syncers when a space is deleted (e7f1db8)
- reach managing apps through their service entry (00804ea)
- refuse delegation tokens that were already exchanged (127e32a)
- reject service auth tokens bound to a different method (a1dd8bf)
- reject write notifications from writers the space does not admit (b55e6e8)
- revoke space credentials when a member loses read access (805b4ab)
Features
Section titled “Features”- accept space credentials with HTTP message signatures (9333382)
- add put_member to the Lua spaces API (ba918ac)
- advertise HappyView as a space host in its DID document (c693ac4)
- bind space credentials to the key that signs for them (c5a55f1)
- forward write notifications to syncers as notifyWrite calls (145ba64)
- make HappyView the authority for spaces it creates (674331d)
- register syncers for write notifications by service identifier (0c8afee)
- sequence space updates with a space-wide revision (31c6182)
- serve listRepos from the space writer set (0079d6f)
- sign space credentials with the instance space key (3095e11)
- sweep native space repos for writes whose notification was lost (d608a16)
- tell native repo hosts when space credentials are revoked (a0dd8ed)
- verify HTTP message signatures for space credentials (1e41e61)
v2.16.0-dev.1
Section titled “v2.16.0-dev.1”Pre-release 2026-09-23
Features
Section titled “Features”- add includeValues option to listRecords (3a75a76)
v2.15.0
Section titled “v2.15.0”Released 2026-09-18
Bug Fixes
Section titled “Bug Fixes”- add api client duplication (b7ee257), closes #101
- address interop changes (a2f347e)
- better editor navigation (1d5bd97), closes #76
- better formatting for linked repo auth pre-page (9c373f6)
- oauth-client-browser: accept DIDs in login methods (157628b), closes #89
- oauth-client-browser: add dop headers to
prepareLogin(aebf39c), closes #90 - prevent account-level labels from being deleted (ed57089), closes #87
- read self authority in space scopes as the session’s user (bdbb71b)
- resolve PDS endpoints through the configured PLC directory (6ae9d5d)
- resolve security advisories (f28c862)
- resolve security advisories (d1f113e)
- resolve security advisories (9133c91)
- send repo and omit a null swapRecord when forwarding space writes (b727b9a)
Features
Section titled “Features”- add support for multi-did backfill (fc2c56b), closes #75
- align atproto spaces with the alpha spec (b1d0b1f)
- dashboard: add typeahead for network lexicon NSIDs (powrred by lexicon.garden) (646b0f2)
- migrate space data to PDSes that support spaces (9f63bb0)
v2.15.0-dev.7
Section titled “v2.15.0-dev.7”Pre-release 2026-09-16
Bug Fixes
Section titled “Bug Fixes”- better formatting for linked repo auth pre-page (9c373f6)
- oauth-client-browser: accept DIDs in login methods (157628b), closes #89
- oauth-client-browser: add dop headers to
prepareLogin(aebf39c), closes #90
v2.15.0-dev.6
Section titled “v2.15.0-dev.6”Pre-release 2026-09-15
Bug Fixes
Section titled “Bug Fixes”- better editor navigation (1d5bd97), closes #76
- prevent account-level labels from being deleted (ed57089), closes #87
v2.15.0-dev.5
Section titled “v2.15.0-dev.5”Pre-release 2026-09-15
Features
Section titled “Features”v2.15.0-dev.4
Section titled “v2.15.0-dev.4”Pre-release 2026-09-15
Features
Section titled “Features”- dashboard: add typeahead for network lexicon NSIDs (powrred by lexicon.garden) (646b0f2)
v2.15.0-dev.3
Section titled “v2.15.0-dev.3”Pre-release 2026-09-15
Bug Fixes
Section titled “Bug Fixes”- resolve security advisories (d1f113e)
v2.15.0-dev.2
Section titled “v2.15.0-dev.2”Pre-release 2026-09-15
Bug Fixes
Section titled “Bug Fixes”- read self authority in space scopes as the session’s user (bdbb71b)
- resolve PDS endpoints through the configured PLC directory (6ae9d5d)
- send repo and omit a null swapRecord when forwarding space writes (b727b9a)
v2.15.0-dev.1
Section titled “v2.15.0-dev.1”Pre-release 2026-09-15
Bug Fixes
Section titled “Bug Fixes”Features
Section titled “Features”- align atproto spaces with the alpha spec (b1d0b1f)
- migrate space data to PDSes that support spaces (9f63bb0)
v2.14.2
Section titled “v2.14.2”Released 2026-09-10
Bug Fixes
Section titled “Bug Fixes”- add flag indicating whether the client is confidential (94773a3)
- leverage the confidential client flag from HappyView (4142df1)
v2.14.2-dev.1
Section titled “v2.14.2-dev.1”Pre-release 2026-09-10
Bug Fixes
Section titled “Bug Fixes”- add flag indicating whether the client is confidential (94773a3)
- leverage the confidential client flag from HappyView (4142df1)
v2.14.1
Section titled “v2.14.1”Released 2026-09-10
Bug Fixes
Section titled “Bug Fixes”- add client assertion minting to the SDKs (4a870d2)
- allow public api clients to mint client assertions (a95accd)
- prompt existing operators to enable telemetry (8888753)
- unify app version resolution (df64522)
- use correct version in telemetry (22ec141)
v2.14.1-dev.4
Section titled “v2.14.1-dev.4”Pre-release 2026-09-10
Bug Fixes
Section titled “Bug Fixes”- add client assertion minting to the SDKs (4a870d2)
v2.14.1-dev.3
Section titled “v2.14.1-dev.3”Pre-release 2026-09-10
Bug Fixes
Section titled “Bug Fixes”- allow public api clients to mint client assertions (a95accd)
v2.14.1-dev.2
Section titled “v2.14.1-dev.2”Pre-release 2026-09-10
Bug Fixes
Section titled “Bug Fixes”v2.14.1-dev.1
Section titled “v2.14.1-dev.1”Pre-release 2026-09-04
Bug Fixes
Section titled “Bug Fixes”- unify app version resolution (df64522)
v2.14.0
Section titled “v2.14.0”Released 2026-09-03
Bug Fixes
Section titled “Bug Fixes”- clean up lint issues in dashboard (bf2745c)
- ensure dpop keys are included with auth requests (2588cd5)
- move sdk builds to github runners to maintain provenance for trusted publishing (3564574)
- prevent race condition causing sessions to be destroyed when many session requests are made rapidly (82af2d2)
- retire previous sessions before registering new one (0d6f3bf)
- revoke sessions with the PDS when they’re destroyed (71a2147)
- use correct keys in metrics tests (b762464)
- use trusted publishing for npm packages (626aa70)
Features
Section titled “Features”- add confidential session support to SDKs (3fd7f6b)
- add opt-in telemetry (eb46b55)
- allow jwks rotation without breaking active sessions (52c9b91)
- allow JWKSs to be revoked (16184f0)
- update HappyView internal clients to use confidential sessions (ccc6e71)
- use confidential sessions for API clients (dc1ddd9)
v2.14.0-dev.3
Section titled “v2.14.0-dev.3”Pre-release 2026-09-03
Bug Fixes
Section titled “Bug Fixes”- move sdk builds to github runners to maintain provenance for trusted publishing (3564574)
v2.14.0-dev.2
Section titled “v2.14.0-dev.2”Pre-release 2026-09-02
Bug Fixes
Section titled “Bug Fixes”Features
Section titled “Features”- add opt-in telemetry (eb46b55)
v2.14.0-dev.1
Section titled “v2.14.0-dev.1”Pre-release 2026-09-01
Bug Fixes
Section titled “Bug Fixes”- clean up lint issues in dashboard (bf2745c)
- prevent race condition causing sessions to be destroyed when many session requests are made rapidly (82af2d2)
- retire previous sessions before registering new one (0d6f3bf)
- revoke sessions with the PDS when they’re destroyed (71a2147)
Features
Section titled “Features”- add confidential session support to SDKs (3fd7f6b)
- allow jwks rotation without breaking active sessions (52c9b91)
- allow JWKSs to be revoked (16184f0)
- update HappyView internal clients to use confidential sessions (ccc6e71)
- use confidential sessions for API clients (dc1ddd9)
v2.13.2-dev.1
Section titled “v2.13.2-dev.1”Pre-release 2026-08-25
Bug Fixes
Section titled “Bug Fixes”- ensure dpop keys are included with auth requests (2588cd5)
v2.13.1
Section titled “v2.13.1”Released 2026-08-21
Bug Fixes
Section titled “Bug Fixes”- create backfill job when adding a lexicon with backfill: true (7f824b2)
- handle xrpc proxy correctly (7bc0d16)
- onboarding docs urls (b568f5a)
- prevent creating a lexicon without an ID (011cc41), closes #86
- prevent post-save dirty guard from firing on save (c6f9402)
- resolve did when adding a user by handle (0c9598f), closes #85
- update h2 crate to resolve a security advisory (6ae74eb)
v2.13.1-dev.4
Section titled “v2.13.1-dev.4”Pre-release 2026-08-20
Bug Fixes
Section titled “Bug Fixes”- onboarding docs urls (b568f5a)
- prevent post-save dirty guard from firing on save (c6f9402)
- resolve did when adding a user by handle (0c9598f), closes #85
v2.13.1-dev.3
Section titled “v2.13.1-dev.3”Pre-release 2026-08-19
Bug Fixes
Section titled “Bug Fixes”v2.13.1-dev.2
Section titled “v2.13.1-dev.2”Pre-release 2026-08-19
Bug Fixes
Section titled “Bug Fixes”- create backfill job when adding a lexicon with backfill: true (7f824b2)
- update h2 crate to resolve a security advisory (6ae74eb)
v2.13.1-dev.1
Section titled “v2.13.1-dev.1”Pre-release 2026-08-18
Bug Fixes
Section titled “Bug Fixes”- handle xrpc proxy correctly (7bc0d16)
v2.13.0
Section titled “v2.13.0”Released 2026-08-15
Bug Fixes
Section titled “Bug Fixes”- match official spec for nsid validation (cb632fe)
Features
Section titled “Features”- abstract js nsid validation to new package (6290d83)
v2.13.0-dev.1
Section titled “v2.13.0-dev.1”Pre-release 2026-08-15
Bug Fixes
Section titled “Bug Fixes”- match official spec for nsid validation (cb632fe)
Features
Section titled “Features”- abstract js nsid validation to new package (6290d83)
v2.12.1
Section titled “v2.12.1”Released 2026-08-13
Bug Fixes
Section titled “Bug Fixes”v2.12.1-dev.1
Section titled “v2.12.1-dev.1”Pre-release 2026-08-11
Bug Fixes
Section titled “Bug Fixes”- allow event logs to be purged (0d0ef01)
v2.12.0
Section titled “v2.12.0”Released 2026-08-05
Bug Fixes
Section titled “Bug Fixes”- give appropriate errors when trying to write to an unauthorized repo (2764f1d)
- inherit_auth no longer stalls background jobs when using SQLite (be45502)
- prevent an error that causes logout to fail under some circumstances (d2fdaa2)
- prevent backfill deadlocks (5d840f3)
- prevent jetstream deletes from being skipped when a lexicon has no custom script (fe97420), closes #80
- prevent proper CBOR encoding from invalidating existing attestations (ee49db2)
- run cid backfill automatically (bf4517c)
- stop updating
indexed_atbefore changes come from the network (74f5c56) - support unpadded base64 in bytes fields (0ed1ce3)
- update deps to eliminate security gaps (51ff857)
- use real CIDs for space content (1e3b5a7)
- verify_signature now raises instead of returning false when it cant check a signature (1e0ef58)
Features
Section titled “Features”- add better error reporting for backfills (bf2844e)
- add support for linked repos (a96c3fd)
- big scope builder improvements (aa6d308)
- update permissioned spaces to match Dans dev diary 7 (99ee756)
v2.12.0-dev.8
Section titled “v2.12.0-dev.8”Pre-release 2026-08-05
Bug Fixes
Section titled “Bug Fixes”- prevent backfill deadlocks (5d840f3)
Features
Section titled “Features”- add better error reporting for backfills (bf2844e)
v2.12.0-dev.7
Section titled “v2.12.0-dev.7”Pre-release 2026-08-03
Bug Fixes
Section titled “Bug Fixes”- update deps to eliminate security gaps (51ff857)
v2.12.0-dev.6
Section titled “v2.12.0-dev.6”Pre-release 2026-08-03
Bug Fixes
Section titled “Bug Fixes”- prevent jetstream deletes from being skipped when a lexicon has no custom script (fe97420), closes #80
v2.12.0-dev.5
Section titled “v2.12.0-dev.5”Pre-release 2026-08-03
Bug Fixes
Section titled “Bug Fixes”- give appropriate errors when trying to write to an unauthorized repo (2764f1d)
- prevent an error that causes logout to fail under some circumstances (d2fdaa2)
- support unpadded base64 in bytes fields (0ed1ce3)
- verify_signature now raises instead of returning false when it cant check a signature (1e0ef58)
Features
Section titled “Features”- big scope builder improvements (aa6d308)
v2.12.0-dev.4
Section titled “v2.12.0-dev.4”Pre-release 2026-08-02
Bug Fixes
Section titled “Bug Fixes”- stop updating
indexed_atbefore changes come from the network (74f5c56)
v2.12.0-dev.3
Section titled “v2.12.0-dev.3”Pre-release 2026-07-31
Bug Fixes
Section titled “Bug Fixes”- inherit_auth no longer stalls background jobs when using SQLite (be45502)
Features
Section titled “Features”- add support for linked repos (a96c3fd)
v2.12.0-dev.2
Section titled “v2.12.0-dev.2”Pre-release 2026-07-25
Bug Fixes
Section titled “Bug Fixes”- run cid backfill automatically (bf4517c)
v2.12.0-dev.1
Section titled “v2.12.0-dev.1”Pre-release 2026-07-21
Bug Fixes
Section titled “Bug Fixes”- prevent proper CBOR encoding from invalidating existing attestations (ee49db2)
- use real CIDs for space content (1e3b5a7)
Features
Section titled “Features”- update permissioned spaces to match Dans dev diary 7 (99ee756)
v2.11.8
Section titled “v2.11.8”Released 2026-07-18
Bug Fixes
Section titled “Bug Fixes”- add independent logging for jobs (6035c55)
v2.11.7
Section titled “v2.11.7”Released 2026-07-17
Bug Fixes
Section titled “Bug Fixes”- inherit_auth now properly transfers auth from XRPC script to jobs (541c4a9)
v2.11.6
Section titled “v2.11.6”Released 2026-07-16
Bug Fixes
Section titled “Bug Fixes”- add missing space write APIs (0c84ff6)
- enforce allowedCollections when creating records in a space (4db67ab)
v2.11.5
Section titled “v2.11.5”Released 2026-07-15
Bug Fixes
Section titled “Bug Fixes”- display all available permissions when creating API keys (b30952c)
v2.11.4
Section titled “v2.11.4”Released 2026-07-09
Bug Fixes
Section titled “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
Section titled “v2.11.3”Released 2026-07-08
Bug Fixes
Section titled “Bug Fixes”v2.11.2
Section titled “v2.11.2”Released 2026-07-08
Bug Fixes
Section titled “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
Section titled “v2.11.1”Released 2026-07-07
Bug Fixes
Section titled “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
Section titled “v2.11.0”Released 2026-07-07
Bug Fixes
Section titled “Bug Fixes”- add better validation to spaces impl (a28cebc)
- fix Playwright tests (9befd0b)
- out-of-order migrations (for real this time) (60a4cd6)
Features
Section titled “Features”v2.11.0-dev.2
Section titled “v2.11.0-dev.2”Pre-release 2026-07-07
Bug Fixes
Section titled “Bug Fixes”- add better validation to spaces impl (f68a43f)
Features
Section titled “Features”- align with final permissioned spaces proposal (a1548f1)
v2.11.0-next.1
Section titled “v2.11.0-next.1”Pre-release 2026-07-05
Bug Fixes
Section titled “Bug Fixes”Features
Section titled “Features”- add support for async jobs (408359f)
v2.11.0-dev.1
Section titled “v2.11.0-dev.1”Pre-release 2026-07-05
Bug Fixes
Section titled “Bug Fixes”Features
Section titled “Features”- add support for async jobs (408359f)
v2.10.2
Section titled “v2.10.2”Released 2026-06-30
Bug Fixes
Section titled “Bug Fixes”- out-of-order migrations (for real this time) (eef213e)
v2.10.1
Section titled “v2.10.1”Released 2026-06-30
Bug Fixes
Section titled “Bug Fixes”- out-of-order migrations (044c03f)
v2.10.0
Section titled “v2.10.0”Released 2026-06-30
Bug Fixes
Section titled “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
Section titled “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.10.0-dev.4
Section titled “v2.10.0-dev.4”Pre-release 2026-06-27
Bug Fixes
Section titled “Bug Fixes”- address copilot feedback (6d20b2c)
Features
Section titled “Features”- update to latest permissioned data spec (c012da5)
v2.10.0-dev.3
Section titled “v2.10.0-dev.3”Pre-release 2026-06-26
Bug Fixes
Section titled “Bug Fixes”- add reauth button for service identity (84c61e0)
- display sync warning after refresh (41d9228)
- dynamic cookie security handling and harden tests for service proxies (61ae149)
- handle reauthenticating to service entry accounts (acb4351)
- harden the setup wizard (266793c)
- make the service entry dashboard more user friendly (1880a15)
- port service entry design optimisations to other pages (a533e40)
- prevent unauthenticated users from being redirected to setup (b2938c5)
- remove broken timestamping (5536357)
Features
Section titled “Features”- add support for service proxying (0e42946)
v2.10.0-dev.2
Section titled “v2.10.0-dev.2”Pre-release 2026-06-26
Bug Fixes
Section titled “Bug Fixes”- add reauth button for service identity (c72c398)
- display sync warning after refresh (e599a1f)
- dynamic cookie security handling and harden tests for service proxies (d609358)
- handle reauthenticating to service entry accounts (3234b9c)
- harden the setup wizard (ed663f6)
- make the service entry dashboard more user friendly (78d097f)
- port service entry design optimisations to other pages (bba3a20)
- prevent unauthenticated users from being redirected to setup (66413a7)
- remove broken timestamping (b9ba42d)
Features
Section titled “Features”- add support for service proxying (86d915c)
v2.10.0-dev.1
Section titled “v2.10.0-dev.1”Pre-release 2026-06-18
Features
Section titled “Features”- add blob upload and download utilities (63addce)
v2.9.3-dev.1
Section titled “v2.9.3-dev.1”Pre-release 2026-06-13
Bug Fixes
Section titled “Bug Fixes”- handle the scope format returned from Bluesky PDS (47eae10)
v2.9.2
Section titled “v2.9.2”Released 2026-05-27
Bug Fixes
Section titled “Bug Fixes”- dont use use timestamptz in migrations (Ill remember that… one day) (b131010)
v2.9.1
Section titled “v2.9.1”Released 2026-05-27
Bug Fixes
Section titled “Bug Fixes”- restore
granted_atdefault in migrations (2b6ca58)
v2.9.0
Section titled “v2.9.0”Released 2026-05-27
Bug Fixes
Section titled “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
Section titled “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.9.0-dev.8
Section titled “v2.9.0-dev.8”Pre-release 2026-05-27
Bug Fixes
Section titled “Bug Fixes”- add success and dead-letter logging to label scripts (c74e317)
- dead-letters: admin endpoints span both legacy + new tables (4a576ea)
- post-conflict resolution cleanup (02e6e1a)
- remove clippy suppression (6a34d5f)
- return 404 when dismissing a nonexistent dead letter (280a837)
- use NULL instead of empty string for local-only record CID (21952d7)
- use stateRef pattern in ScriptForm to avoid exhaustive-deps suppression (4bcb0b1)
Features
Section titled “Features”- add collection column to dead_letter_scripts so we can ditch second-level filtering (7283c21)
- add suffix filter to GET /admin/scripts and use it in lexicon detail (527aed3)
- dashboard: scripts grouped by trigger family + lexicon targeting panel (735e104)
- migrate legacy script/index_hook data to scripts table and drop columns (44cdc21)
- scripts: promote log() to write into event_logs (673de09)
- scripts: trigger-keyed scripts subsystem (0fd7601)
v2.9.0-dev.7
Section titled “v2.9.0-dev.7”Pre-release 2026-05-27
Bug Fixes
Section titled “Bug Fixes”- remove superfluous early exit on invalid session token (pds concern, not happyview concern) (bc06766)
v2.9.0-dev.6
Section titled “v2.9.0-dev.6”Pre-release 2026-05-26
Bug Fixes
Section titled “Bug Fixes”- allow docker containers to execute HappyView binaries (9265641)
v2.9.0-dev.5
Section titled “v2.9.0-dev.5”Pre-release 2026-05-26
Bug Fixes
Section titled “Bug Fixes”- remove prefix typo from db.query filter generation (cd411d6)
v2.9.0-dev.4
Section titled “v2.9.0-dev.4”Pre-release 2026-05-26
Bug Fixes
Section titled “Bug Fixes”- use dpop thumbprints to enable multi-device auth (454d239)
v2.9.0-dev.3
Section titled “v2.9.0-dev.3”Pre-release 2026-05-26
Bug Fixes
Section titled “Bug Fixes”- reduce backfill db contention and sse event flooding for pds discovery and record fetching during backfill (ec860a5)
- sdk: support the
kidparam from@atproto/jwk-webcrypto(e12f526)
v2.9.0-dev.2
Section titled “v2.9.0-dev.2”Pre-release 2026-05-24
Bug Fixes
Section titled “Bug Fixes”- allow log verbosity toggle to override env var (e8268c4)
- better pool size accounting when using sqlite (3a0fb9c)
- clamp backfill concurrency values (9c2847a)
- get max connections from Postgres instead of current connections (66b4804)
- make backfill progress headings more accessible (f83f150)
- 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)
- remove cleanup delay caused by tick eater (bd745ae)
- remove counts from records dropdowns (dd6d9ae)
- reset backfill ui when flushing details (1cf8f75)
- restore missing log events for verbose logging (d38d05d)
- restore plc concurrency (3aa10b5)
- separate backfill db connection pool from main app pool (c14a168)
- use the correct connection pool for record upserts (22f3ba9)
- virtualize backfill details and move event stream into a worker (3e33527)
Features
Section titled “Features”- add backfill concurrency settings (f5ab1b4)
- add more detailed information to backfill UI (66fe12a)
- allow backfill jobs to be paused and resumed (bd65caf)
- increase backfill record batch inserts (7ff501a)
- make backfill collection discovery concurrent (060cba3)
- make verbose event logs configurable (4856579)
- parallelize PDS resolution and record retrieval during backfills (8f21474)
- recommend restart when backfill concurrency settings dont match existing connection pool size (b0d382b)
v2.9.0-dev.1
Section titled “v2.9.0-dev.1”Pre-release 2026-05-21
Bug Fixes
Section titled “Bug Fixes”- filter nesting was allowed to 6 levels instead of 5 (698c099)
Features
Section titled “Features”v2.8.1
Section titled “v2.8.1”Released 2026-05-19
Bug Fixes
Section titled “Bug Fixes”v2.8.1-dev.1
Section titled “v2.8.1-dev.1”Pre-release 2026-05-19
Bug Fixes
Section titled “Bug Fixes”v2.8.0
Section titled “v2.8.0”Released 2026-05-14
Bug Fixes
Section titled “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
Section titled “Features”- allow backfills to be cancelled (5a3a4b9)
v2.8.0-dev.1
Section titled “v2.8.0-dev.1”Pre-release 2026-05-14
Bug Fixes
Section titled “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
Section titled “Features”- allow backfills to be cancelled (5a3a4b9)
v2.6.0-dev.19
Section titled “v2.6.0-dev.19”Pre-release 2026-05-14
Bug Fixes
Section titled “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)
- allow sheets to be much larger (dced566)
- better icons for stages (47ee0b0)
- 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
- 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
Features
Section titled “Features”- allow backfills to be cancelled (5a3a4b9)
v2.6.0-dev.18
Section titled “v2.6.0-dev.18”Pre-release 2026-05-14
Bug Fixes
Section titled “Bug Fixes”- add permissions to the internal API (2b8ec1c)
- allow sheets to be much larger (7f49a77)
- move user permission management into sheets (32942fb), closes #23
- use correct permission IDs in dashboard (66c792f), closes #24
v2.6.0-dev.17
Section titled “v2.6.0-dev.17”Pre-release 2026-05-13
Bug Fixes
Section titled “Bug Fixes”- use cursors for pagination in spaces endpoints (3e6c561)
v2.6.0-dev.16
Section titled “v2.6.0-dev.16”Pre-release 2026-05-13
Bug Fixes
Section titled “Bug Fixes”- build SDKs even if base client has no changes (f86de63)
v2.7.0
Section titled “v2.7.0”Released 2026-05-13
Bug Fixes
Section titled “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
Section titled “Features”- publish node sdk (d81e23c)
v2.6.0-dev.15
Section titled “v2.6.0-dev.15”Pre-release 2026-05-13
Features
Section titled “Features”- publish node sdk (d81e23c)
v2.6.0-dev.14
Section titled “v2.6.0-dev.14”Pre-release 2026-05-12
Bug Fixes
Section titled “Bug Fixes”- generate missing IDs for dead letters (174b6ef), closes #20
- prevent dead letters from being created without an ID (ea4a340), closes #20
v2.6.0-dev.13
Section titled “v2.6.0-dev.13”Pre-release 2026-05-12
Bug Fixes
Section titled “Bug Fixes”- move record info into sheets (b814b1c)
v2.6.0
Section titled “v2.6.0”Released 2026-05-12
Bug Fixes
Section titled “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
Section titled “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.6.0-dev.12
Section titled “v2.6.0-dev.12”Pre-release 2026-05-12
Bug Fixes
Section titled “Bug Fixes”- rate-limit unauthenticated procedure requests before rejecting (abd9e3d)
- reject JWT at exact expiry second (27f9cf8)
- remove forced HappyView redirect URI from API client creation (572ca51)
- require client key for rate limiting on all XRPC routes (671db5a)
- restrict Bearer space credentials to space XRPC routes (d6ae5cd)
Features
Section titled “Features”v2.6.0-dev.11
Section titled “v2.6.0-dev.11”Pre-release 2026-05-11
Bug Fixes
Section titled “Bug Fixes”v2.6.0-dev.10
Section titled “v2.6.0-dev.10”Pre-release 2026-05-11
Bug Fixes
Section titled “Bug Fixes”- prevent creation of API clients that would break HappyView core client (3ab5e7e)
- prevent unauthorized privilege escalation (942a520)
- use the correct cursors when paginating spaces (11fda6f)
v2.6.0-dev.9
Section titled “v2.6.0-dev.9”Pre-release 2026-05-11
Bug Fixes
Section titled “Bug Fixes”- restore SDK scopes types after bad conflict resolution (2003680)
v2.6.0-dev.8
Section titled “v2.6.0-dev.8”Pre-release 2026-05-11
Bug Fixes
Section titled “Bug Fixes”- scopes types in oauth-client sdk after bad conflict resolution (fecc410)
v2.6.0-dev.7
Section titled “v2.6.0-dev.7”Pre-release 2026-05-11
Bug Fixes
Section titled “Bug Fixes”- remove route dupes (02331f8)
Features
Section titled “Features”- refactor permissioned spaces to better align with Dan’s implementation (9c4b3d7)
v2.6.0-dev.6
Section titled “v2.6.0-dev.6”Pre-release 2026-05-11
Features
Section titled “Features”- refactor permissioned spaces to better align with Dan’s implementation (483c17b)
v2.6.0-dev.5
Section titled “v2.6.0-dev.5”Pre-release 2026-05-08
Bug Fixes
Section titled “Bug Fixes”- replace the base path sentinel in next.js text files (d0ade27)
v2.5.2
Section titled “v2.5.2”Released 2026-05-08
Bug Fixes
Section titled “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.6.0-dev.4
Section titled “v2.6.0-dev.4”Pre-release 2026-05-08
Bug Fixes
Section titled “Bug Fixes”- remove oauth redirect hop, and add explicit redirect for the root url (271d270)
v2.6.0-dev.3
Section titled “v2.6.0-dev.3”Pre-release 2026-05-07
Bug Fixes
Section titled “Bug Fixes”- update the base path rewrite to skip Nexts basePath config (23227a1)
v2.6.0-dev.2
Section titled “v2.6.0-dev.2”Pre-release 2026-05-07
Bug Fixes
Section titled “Bug Fixes”- fix base path not being respected by trailing slash redirects (e312da1)
v2.6.0-dev.1
Section titled “v2.6.0-dev.1”Pre-release 2026-05-07
Bug Fixes
Section titled “Bug Fixes”- add atproto/lex headers to prevent CORS errors (f686690)
- linting error (d9e8fc3)
- remove public record aggregation from permissioned spaces (bef4361)
Features
Section titled “Features”- add control for experiments to the dashboard (3af8470)
- add oauth-client-node SDK (dedab18)
- add support for account write delegation (26d57ca)
- add support for session hooks (4b4b883)
- allow the base path to be configured (40df9b1)
- permissioned spaces implementation (190578f)
- put permissioned spaces behind an experimental flag (ed57c93)
- update JS SDKs to more closely match their @atproto cousins (193ba3a)
- xrpc-proxy: add settings to control the XRPC proxy (608e9e7)
v2.5.1
Section titled “v2.5.1”Released 2026-05-07
Bug Fixes
Section titled “Bug Fixes”- dont refresh tokens on 4xx status codes (cde70f7)
v2.5.0-dev.4
Section titled “v2.5.0-dev.4”Pre-release 2026-05-07
Features
Section titled “Features”- add oauth-client-node SDK (dedab18)
- add support for session hooks (4b4b883)
- allow the base path to be configured (40df9b1)
- update JS SDKs to more closely match their @atproto cousins (193ba3a)
v2.5.0 — v2.5.0 - The Permissioned Data Release
Section titled “v2.5.0 — v2.5.0 - The Permissioned Data Release”Released 2026-05-05
Bug Fixes
Section titled “Bug Fixes”- remove public record aggregation from permissioned spaces (9ee009f)
Features
Section titled “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
Section titled “v2.4.1”Released 2026-05-03
Bug Fixes
Section titled “Bug Fixes”- add atproto/lex headers to prevent CORS errors (760e0aa)
v2.5.0-dev.3
Section titled “v2.5.0-dev.3”Pre-release 2026-05-02
Bug Fixes
Section titled “Bug Fixes”- add atproto/lex headers to prevent CORS errors (f686690)
- remove public record aggregation from permissioned spaces (bef4361)
Features
Section titled “Features”- add control for experiments to the dashboard (3af8470)
v2.5.0-dev.2
Section titled “v2.5.0-dev.2”Pre-release 2026-04-30
Features
Section titled “Features”- add support for account write delegation (26d57ca)
- permissioned spaces implementation (190578f)
- put permissioned spaces behind an experimental flag (ed57c93)
v2.5.0-dev.1
Section titled “v2.5.0-dev.1”Pre-release 2026-04-29
Bug Fixes
Section titled “Bug Fixes”- linting error (d9e8fc3)
Features
Section titled “Features”- xrpc-proxy: add settings to control the XRPC proxy (608e9e7)
v2.4.0
Section titled “v2.4.0”Released 2026-04-28
Bug Fixes
Section titled “Bug Fixes”- ci: temp disable ATCR pushes (8ed28e5)
Features
Section titled “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.4.0-dev.3
Section titled “v2.4.0-dev.3”Pre-release 2026-04-28
Bug Fixes
Section titled “Bug Fixes”- ci: temp disable ATCR pushes (8ed28e5)
v2.4.0-dev.2
Section titled “v2.4.0-dev.2”Pre-release 2026-04-28
Features
Section titled “Features”- oauth: move third party api client management into built-in XRPCs (fde532d)
v2.4.0-dev.1
Section titled “v2.4.0-dev.1”Pre-release 2026-04-27
Features
Section titled “Features”- allow first party API clients to child API clients (cdb69c4)
v2.3.1
Section titled “v2.3.1”Released 2026-04-27
Bug Fixes
Section titled “Bug Fixes”- auth: better handling for allowed scopes during oauth (b27b883)
v2.3.0
Section titled “v2.3.0”Released 2026-04-26
Features
Section titled “Features”- login: add handle autocomplete (4ee385b)
v2.2.0
Section titled “v2.2.0”Released 2026-04-25
Bug Fixes
Section titled “Bug Fixes”- db: convert dead letter resolved_at to TEXT in Postgres setups (deb4aee)
Features
Section titled “Features”- sdk: allow client to configure clientId (e76acbe)
v2.1.1
Section titled “v2.1.1”Released 2026-04-23
Bug Fixes
Section titled “Bug Fixes”- sdk: add gh links to packages (718075a)
v2.1.0
Section titled “v2.1.0”Released 2026-04-23
Bug Fixes
Section titled “Bug Fixes”- remove linked accounts page (abe1c04)
Features
Section titled “Features”- dashboard: add UI for managing dead letters (0345f0b)
v2.1.0-dev.2
Section titled “v2.1.0-dev.2”Pre-release 2026-04-22
Bug Fixes
Section titled “Bug Fixes”v2.1.0-dev.1
Section titled “v2.1.0-dev.1”Pre-release 2026-04-22
Features
Section titled “Features”- dashboard: add UI for managing dead letters (0345f0b)
v2.0.1
Section titled “v2.0.1”Released 2026-04-22
Bug Fixes
Section titled “Bug Fixes”- ci: remove ATCR from publish step (f58d189)
v2.0.0
Section titled “v2.0.0”Released 2026-04-22
Bug Fixes
Section titled “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
Section titled “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
Section titled “BREAKING CHANGES”- Scripts should now use cursors instead of offsets.
v2.0.0-dev.54
Section titled “v2.0.0-dev.54”Pre-release 2026-04-21
Bug Fixes
Section titled “Bug Fixes”- sdk: prevent CI crash if versions are already deployed (3c4a6d0)
- update primary domain if PUBLIC_URL changes (5e93653)
v2.0.0-dev.53
Section titled “v2.0.0-dev.53”Pre-release 2026-04-21
Bug Fixes
Section titled “Bug Fixes”- sdk: take advantage of prior art on crypto from bsky (7df0576)
- xrpc: fix XRPC writes to use the new auth system (ed5434f)
Features
Section titled “Features”- dashboard: allow API clients to be created without rate limits (72d1d71)
v2.0.0-dev.52
Section titled “v2.0.0-dev.52”Pre-release 2026-04-20
Bug Fixes
Section titled “Bug Fixes”- auth: prevent unauthorized users from seeing the dashboard (fcb3ac2)
- backfill all collections when no collection is selected during backfill creation (5cd2e01)
- dashboard: fix broken interactivity on collection combobox (5cbfc3c)
- ensure handles are always forced to lowercase during dashboard auth (785b00f)
v2.0.0-dev.51
Section titled “v2.0.0-dev.51”Pre-release 2026-04-17
Features
Section titled “Features”- add missing HappyView Lua APIs to autocomplete and hover docs (14a1dae)
- add the lex-agent sdk (9481601)
v2.0.0-dev.50
Section titled “v2.0.0-dev.50”Pre-release 2026-04-17
Bug Fixes
Section titled “Bug Fixes”- display the correct version on the about page (e6504fa)
Features
Section titled “Features”v2.0.0-dev.49
Section titled “v2.0.0-dev.49”Pre-release 2026-04-14
Features
Section titled “Features”v2.0.0-dev.48
Section titled “v2.0.0-dev.48”Pre-release 2026-04-13
Bug Fixes
Section titled “Bug Fixes”- separate scopes on the api client page (0bc0f95)
Features
Section titled “Features”- add xrpc libs for Lua (d45bf70)
v2.0.0-dev.47
Section titled “v2.0.0-dev.47”Pre-release 2026-04-13
Bug Fixes
Section titled “Bug Fixes”- database column type mismatch (3932db0)
v2.0.0-dev.46
Section titled “v2.0.0-dev.46”Pre-release 2026-04-13
Features
Section titled “Features”- add API clients (3cd960b)
- add support for API clients (435737a)
- allow admin to change logo/document title for the dashboard (b4b5534)
- reorganize the nav (587ff4c)
v2.0.0-dev.45
Section titled “v2.0.0-dev.45”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- return the correct host data for plugin secrets (937fa4c)
v2.0.0-dev.44
Section titled “v2.0.0-dev.44”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- use async calls to get host secrets (753a3af)
v2.0.0-dev.43
Section titled “v2.0.0-dev.43”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- convert plugin timestamp columns (9d190cb)
v2.0.0-dev.42
Section titled “v2.0.0-dev.42”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- convert plugin config to text column (dade035)
Features
Section titled “Features”- add about page for debugging (00e92b3)
v2.0.0-dev.41
Section titled “v2.0.0-dev.41”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- sync plugin and host body types (fd25cb2)
v2.0.0-dev.40
Section titled “v2.0.0-dev.40”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- restore reading scopes from redirect uri (8e01945)
v2.0.0-dev.39
Section titled “v2.0.0-dev.39”Pre-release 2026-04-12
Bug Fixes
Section titled “Bug Fixes”- switch from /oauth/client-metadata.json to /oauth-client-metadata.json (b94f90f)
v2.0.0-dev.38
Section titled “v2.0.0-dev.38”Pre-release 2026-04-11
Features
Section titled “Features”- add oauth config ui (6f09a58)
v2.0.0-dev.37
Section titled “v2.0.0-dev.37”Pre-release 2026-04-09
Features
Section titled “Features”- add support for arbitrary oauth scopes (22fddeb)
v2.0.0-dev.36
Section titled “v2.0.0-dev.36”Pre-release 2026-04-08
Bug Fixes
Section titled “Bug Fixes”- make sure auth is passed when necessary in lua scripts (cdde018)
v2.0.0-dev.35
Section titled “v2.0.0-dev.35”Pre-release 2026-04-08
Bug Fixes
Section titled “Bug Fixes”- lint issues (de48479)
Features
Section titled “Features”- automate generation of attestatioon signing keys (3b0d335)
v2.0.0-dev.34
Section titled “v2.0.0-dev.34”Pre-release 2026-04-08
Bug Fixes
Section titled “Bug Fixes”- lint issues (760f50a)
Features
Section titled “Features”- add attestation support to atproto api (fbd65b1)
v2.0.0-dev.33
Section titled “v2.0.0-dev.33”Pre-release 2026-03-26
Bug Fixes
Section titled “Bug Fixes”- issue in redirect state capture (9d95cee)
v2.0.0-dev.32
Section titled “v2.0.0-dev.32”Pre-release 2026-03-26
Bug Fixes
Section titled “Bug Fixes”v2.0.0-dev.31
Section titled “v2.0.0-dev.31”Pre-release 2026-03-25
Bug Fixes
Section titled “Bug Fixes”- timestamp comparisons when using Postgres (4bd8b2f)
v2.0.0-dev.30
Section titled “v2.0.0-dev.30”Pre-release 2026-03-24
Features
Section titled “Features”- add safe subset of Lua’s table (d18eca4)
v2.0.0-dev.29
Section titled “v2.0.0-dev.29”Pre-release 2026-03-24
Features
Section titled “Features”- add backfill and realtime streaming directly to HappyView (no more Tap dependency) (0bf605e)
v2.0.0-dev.28
Section titled “v2.0.0-dev.28”Pre-release 2026-03-24
Features
Section titled “Features”- make db connection pool size configurable (f128034)
v2.0.0-dev.27
Section titled “v2.0.0-dev.27”Pre-release 2026-03-22
Bug Fixes
Section titled “Bug Fixes”- prevent permission redirects before permissions are known (2b73757)
v2.0.0-dev.26
Section titled “v2.0.0-dev.26”Pre-release 2026-03-22
Bug Fixes
Section titled “Bug Fixes”- dont skip HappyView in the external auth callbackloop (210b326)
- prevent code blocks from overflowing dialog containers (0618e96)
v2.0.0-dev.25
Section titled “v2.0.0-dev.25”Pre-release 2026-03-22
Bug Fixes
Section titled “Bug Fixes”- ensure oauth cookies are correctly removed (7dc2443)
v2.0.0-dev.24
Section titled “v2.0.0-dev.24”Pre-release 2026-03-22
Features
Section titled “Features”- indicate plugins that still need config (6dce092)
v2.0.0-dev.23
Section titled “v2.0.0-dev.23”Pre-release 2026-03-22
Bug Fixes
Section titled “Bug Fixes”- prevent errors on plugin page when user hasn’t set up encryption tokens (41aa70a)
v2.0.0-dev.22
Section titled “v2.0.0-dev.22”Pre-release 2026-03-22
Features
Section titled “Features”- add support for plugin manifests and configuration via the dashboard (acc735e)
- allow plugins to be loaded dynamically (9653984)
v2.0.0-dev.21
Section titled “v2.0.0-dev.21”Pre-release 2026-03-22
Features
Section titled “Features”- include success status and error messages (368b969)
v2.0.0-dev.20
Section titled “v2.0.0-dev.20”Pre-release 2026-03-21
Bug Fixes
Section titled “Bug Fixes”Features
Section titled “Features”- complete plugin sync pipeline with auth, tokens, and PDS writes (7cf33cf)
- external auth infra (be081fd)
v2.0.0-dev.19
Section titled “v2.0.0-dev.19”Pre-release 2026-03-20
Bug Fixes
Section titled “Bug Fixes”- delete auth redirect cookie before redirecting (2dd8b19)
v2.0.0-dev.18
Section titled “v2.0.0-dev.18”Pre-release 2026-03-20
Bug Fixes
Section titled “Bug Fixes”- fix auth tests (0036280)
Features
Section titled “Features”- add config for oauth screen values (0777d8c)
v2.0.0-dev.17
Section titled “v2.0.0-dev.17”Pre-release 2026-03-19
Bug Fixes
Section titled “Bug Fixes”- allow session cookies to work cross origin (494cb05)
v2.0.0-dev.16
Section titled “v2.0.0-dev.16”Pre-release 2026-03-19
Bug Fixes
Section titled “Bug Fixes”- allow HappyView redirect cookie to be read appropriately (b69c59f)
v2.0.0-dev.15
Section titled “v2.0.0-dev.15”Pre-release 2026-03-19
Bug Fixes
Section titled “Bug Fixes”- add CORS reflection for auth requests (e813713)
v2.0.0-dev.14
Section titled “v2.0.0-dev.14”Pre-release 2026-03-19
Bug Fixes
Section titled “Bug Fixes”- copy migrations in image (593d361)
Features
Section titled “Features”- add support for redirect uri on auth (1f590ef)
v2.0.0-dev.13
Section titled “v2.0.0-dev.13”Pre-release 2026-03-19
Bug Fixes
Section titled “Bug Fixes”- missed a variable ref (fc34c9c)
- remove user swap (deaa25a)
- switch Tap to sqlite by default (ab7f97b)
- update dashboard to use new internal auth (68a1123)
- update types for rate limits (ab909d3)
Features
Section titled “Features”- add builtin oauth, removing AIP dependency (14abcda)
v2.0.0-dev.12
Section titled “v2.0.0-dev.12”Pre-release 2026-03-18
Bug Fixes
Section titled “Bug Fixes”- create a dummy bin for the build step (7741c8f)
v2.0.0-dev.11
Section titled “v2.0.0-dev.11”Pre-release 2026-03-18
Bug Fixes
Section titled “Bug Fixes”- pin to debian bookworm, otherwise we have an issue with glibc version (a9a62f0)
Features
Section titled “Features”v2.0.0-dev.10
Section titled “v2.0.0-dev.10”Pre-release 2026-03-18
Bug Fixes
Section titled “Bug Fixes”- coerce query params based on lexicon schema (38bd0d3)
v2.0.0-dev.9
Section titled “v2.0.0-dev.9”Pre-release 2026-03-18
Bug Fixes
Section titled “Bug Fixes”- add automatic handling for incompatible db.raw (8a13fdf)
v2.0.0-dev.8
Section titled “v2.0.0-dev.8”Pre-release 2026-03-18
Features
Section titled “Features”- add support for sqlite (0ba593c)
v2.0.0-dev.7
Section titled “v2.0.0-dev.7”Pre-release 2026-03-17
Features
Section titled “Features”v2.0.0-dev.6
Section titled “v2.0.0-dev.6”Pre-release 2026-03-17
Bug Fixes
Section titled “Bug Fixes”- http resolution for labeler websocket connections (405e61a)
- resolve proper endpoints for labelers (8e6575e)
v2.0.0-dev.5
Section titled “v2.0.0-dev.5”Pre-release 2026-03-17
Features
Section titled “Features”v2.0.0-dev.4
Section titled “v2.0.0-dev.4”Pre-release 2026-03-15
Features
Section titled “Features”- add labelers to the dashboard (4ee83d8)
- add Lua module for atproto (a34fb0d)
- add support for labelers (b8e6caa)
v2.0.0-dev.3
Section titled “v2.0.0-dev.3”Pre-release 2026-03-14
Bug Fixes
Section titled “Bug Fixes”- prevent record backfill from blocking startup (b502295)
v2.0.0-dev.2
Section titled “v2.0.0-dev.2”Pre-release 2026-03-14
Features
Section titled “Features”- add user permissions (89e3925)
- display user handles in users page (47209bd)
- move dashboard under the
/dashboardroute (81e74be) - move user management into Settings (4012f47)
v2.0.0-dev.1
Section titled “v2.0.0-dev.1”Pre-release 2026-03-14
Features
Section titled “Features”- add proper cursors and a separate index for backfill (d9d0544)
BREAKING CHANGES
Section titled “BREAKING CHANGES”- Scripts should now use cursors instead of offsets.
v1.12.0
Section titled “v1.12.0”Released 2026-03-12
Bug Fixes
Section titled “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
Section titled “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.12.0-dev.10
Section titled “v1.12.0-dev.10”Pre-release 2026-03-11
Features
Section titled “Features”- add more structure to event logs (6506ff2)
v1.12.0-dev.9
Section titled “v1.12.0-dev.9”Pre-release 2026-03-11
Bug Fixes
Section titled “Bug Fixes”- return the avatar ref from bsky getProfile (391ab19)
v1.12.0-dev.8
Section titled “v1.12.0-dev.8”Pre-release 2026-03-11
Features
Section titled “Features”- add request and response data to success events in event log (6aed219)
v1.12.0-dev.7
Section titled “v1.12.0-dev.7”Pre-release 2026-03-11
Bug Fixes
Section titled “Bug Fixes”- use ResponsiveDialog from DiceUI (fd54d3b)
Features
Section titled “Features”- improved error logging for scripts (938efc0)
v1.12.0-dev.6
Section titled “v1.12.0-dev.6”Pre-release 2026-03-11
Features
Section titled “Features”- allow query XRPCs to receive auth (14beec3)
v1.12.0-dev.5
Section titled “v1.12.0-dev.5”Pre-release 2026-03-10
Features
Section titled “Features”- remove read-only restriction from db.raw (5f71d40)
v1.12.0-dev.4
Section titled “v1.12.0-dev.4”Pre-release 2026-03-10
Features
Section titled “Features”- process Tap events concurrently (28a1057)
v1.12.0-dev.3
Section titled “v1.12.0-dev.3”Pre-release 2026-03-10
Bug Fixes
Section titled “Bug Fixes”- add additional debug logging for Tap connections (fb807f2)
v1.12.0-dev.2
Section titled “v1.12.0-dev.2”Pre-release 2026-03-09
Bug Fixes
Section titled “Bug Fixes”- proper parsing for array query params (8f1146a)
v1.12.0-dev.1
Section titled “v1.12.0-dev.1”Pre-release 2026-03-09
Features
Section titled “Features”- run index hooks before storing records to enable record bypass and manipulation (518bfc7)
v1.11.0
Section titled “v1.11.0”Released 2026-03-06
Features
Section titled “Features”v1.11.0-dev.1
Section titled “v1.11.0-dev.1”Pre-release 2026-03-06
Features
Section titled “Features”v1.10.0
Section titled “v1.10.0”Released 2026-03-05
Bug Fixes
Section titled “Bug Fixes”- add support for
did:webwhen resolving DIDs (1bc5114)
Features
Section titled “Features”- resolve and proxy unrecognized XRPCs (ee43d05)
v1.10.0-dev.1
Section titled “v1.10.0-dev.1”Pre-release 2026-03-05
Bug Fixes
Section titled “Bug Fixes”- add support for
did:webwhen resolving DIDs (1bc5114)
Features
Section titled “Features”- resolve and proxy unrecognized XRPCs (ee43d05)
v1.9.0
Section titled “v1.9.0”Released 2026-03-05
Bug Fixes
Section titled “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
Section titled “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.9.0-dev.10
Section titled “v1.9.0-dev.10”Pre-release 2026-03-04
Bug Fixes
Section titled “Bug Fixes”- prevent validation error when attempting to concat with env vars in lua scripts (349234e)
v1.9.0-dev.9
Section titled “v1.9.0-dev.9”Pre-release 2026-03-04
Bug Fixes
Section titled “Bug Fixes”- add
envtable so lua script validation passes (4b45161)
v1.9.0-dev.8
Section titled “v1.9.0-dev.8”Pre-release 2026-03-04
Features
Section titled “Features”- add Lua ENV vars (7190018)
v1.9.0-dev.7
Section titled “v1.9.0-dev.7”Pre-release 2026-03-04
Features
Section titled “Features”v1.9.0-dev.6
Section titled “v1.9.0-dev.6”Pre-release 2026-03-04
Features
Section titled “Features”- add support for sorting to the
dbmodule (6c91bab)
v1.9.0-dev.5
Section titled “v1.9.0-dev.5”Pre-release 2026-03-04
Features
Section titled “Features”- add
httpmodule for Lua scripts (4eb108c)
v1.9.0-dev.4
Section titled “v1.9.0-dev.4”Pre-release 2026-03-03
Bug Fixes
Section titled “Bug Fixes”- 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)
v1.9.0-dev.3
Section titled “v1.9.0-dev.3”Pre-release 2026-03-02
Features
Section titled “Features”- add event logs to the dashboard (8477dd3)
v1.9.0-dev.2
Section titled “v1.9.0-dev.2”Pre-release 2026-03-01
Bug Fixes
Section titled “Bug Fixes”- prevent logo from clipping (cf7cadb)
v1.9.0-dev.1
Section titled “v1.9.0-dev.1”Pre-release 2026-03-01
Features
Section titled “Features”v1.8.0
Section titled “v1.8.0”Released 2026-02-27
Features
Section titled “Features”- add
db.backlinksfor filtering results based on backlinks (0a682c9) - add
db.rawfor complex queries (read-only) (c347718)
v1.8.0-dev.1
Section titled “v1.8.0-dev.1”Pre-release 2026-02-27
Features
Section titled “Features”- add
db.rawfor complex queries (read-only) (77a8075)
v1.7.1
Section titled “v1.7.1”Released 2026-02-27
Bug Fixes
Section titled “Bug Fixes”- database URLs were busted for local dev (a59d70b)
v1.7.1-dev.1
Section titled “v1.7.1-dev.1”Pre-release 2026-02-27
Bug Fixes
Section titled “Bug Fixes”- database URLs were busted for local dev (a59d70b)
v1.7.0
Section titled “v1.7.0”Released 2026-02-27
Bug Fixes
Section titled “Bug Fixes”- force records from
dbto serialize to arrays (66cc7af)
Features
Section titled “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.7.0-dev.2
Section titled “v1.7.0-dev.2”Pre-release 2026-02-27
Bug Fixes
Section titled “Bug Fixes”- force records from
dbto serialize to arrays (66cc7af)
Features
Section titled “Features”- add
toarray()so users can force a Lua table to serialize to an array (6827ceb)
v1.7.0-dev.1
Section titled “v1.7.0-dev.1”Pre-release 2026-02-26
Features
Section titled “Features”- enable more complex database operations with
db.search()(7bcb5aa)
v1.6.2
Section titled “v1.6.2”Released 2026-02-26
Bug Fixes
Section titled “Bug Fixes”- use original auth scheme instead of hardcoded dpop (14252b2)
v1.6.2-dev.1
Section titled “v1.6.2-dev.1”Pre-release 2026-02-26
Bug Fixes
Section titled “Bug Fixes”- use original auth scheme instead of hardcoded dpop (14252b2)
v1.6.1
Section titled “v1.6.1”Released 2026-02-24
Bug Fixes
Section titled “Bug Fixes”- dynamic page routes were broken (a09ce1b)
v1.6.0
Section titled “v1.6.0”Released 2026-02-24
Bug Fixes
Section titled “Bug Fixes”- backfill now loads previously deleted records (75dcd8c)
- show collections on Records page even if they have no records (5eab462)
Features
Section titled “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.6.0-dev.4
Section titled “v1.6.0-dev.4”Pre-release 2026-02-24
Bug Fixes
Section titled “Bug Fixes”- show collections on Records page even if they have no records (5eab462)
Features
Section titled “Features”- add “View Records” buttons to lexicons (a9db22c)
v1.6.0-dev.3
Section titled “v1.6.0-dev.3”Pre-release 2026-02-24
Bug Fixes
Section titled “Bug Fixes”- backfill now loads previously deleted records (75dcd8c)
v1.6.0-dev.2
Section titled “v1.6.0-dev.2”Pre-release 2026-02-24
Features
Section titled “Features”- add bulk collection record deletion to the API (3f4833a)
- add bulk collection record deletion to the dashboard (310f3f8)
v1.6.0-dev.1
Section titled “v1.6.0-dev.1”Pre-release 2026-02-24
Features
Section titled “Features”- allow records to be deleted from the dashboard (e7000a1)
- allow records to be deleted via the API (417f60a)
v1.5.1
Section titled “v1.5.1”Released 2026-02-24
Bug Fixes
Section titled “Bug Fixes”- remove backfill switch for query and procedure lexicons (e8c3ec7)
v1.5.1-dev.1
Section titled “v1.5.1-dev.1”Pre-release 2026-02-24
Bug Fixes
Section titled “Bug Fixes”- remove backfill switch for query and procedure lexicons (e8c3ec7)
v1.5.0
Section titled “v1.5.0”Released 2026-02-24
Bug Fixes
Section titled “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
Section titled “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.5.0-dev.4
Section titled “v1.5.0-dev.4”Pre-release 2026-02-24
Features
Section titled “Features”v1.5.0-dev.3
Section titled “v1.5.0-dev.3”Pre-release 2026-02-19
Bug Fixes
Section titled “Bug Fixes”- wrap dynamic page with a server component to fix build (a2e4a32)
Features
Section titled “Features”- add custom processing scripts to procedure and query lexicons (6db74fc)
v1.5.0-dev.2
Section titled “v1.5.0-dev.2”Pre-release 2026-02-18
Features
Section titled “Features”- add Docusaurus site and GitHub Pages deploy workflow (5b25d27)
v1.5.0-dev.1
Section titled “v1.5.0-dev.1”Pre-release 2026-02-17
Bug Fixes
Section titled “Bug Fixes”- records page now properly lists collections in dropdown (c7d2c44)
Features
Section titled “Features”- add column visibility and better scrolling to records table (2d37ca8)
- add dark mode (6e35616)
- 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
Section titled “v1.4.3”Released 2026-02-17
Bug Fixes
Section titled “Bug Fixes”- enable trailing slash for static export compatibility (80afc2d)
v1.4.3-dev.1
Section titled “v1.4.3-dev.1”Pre-release 2026-02-17
Bug Fixes
Section titled “Bug Fixes”- enable trailing slash for static export compatibility (80afc2d)
v1.4.2
Section titled “v1.4.2”Released 2026-02-16
Bug Fixes
Section titled “Bug Fixes”- improve AIP proxy error logging and cache Rust deps in Docker (cd1d843)
v1.4.1
Section titled “v1.4.1”Released 2026-02-16
Bug Fixes
Section titled “Bug Fixes”- add AIP_PUBLIC_URL for frontend-facing AIP address (ae9f023)
v1.4.0
Section titled “v1.4.0”Released 2026-02-16
Features
Section titled “Features”- add AIP reverse proxy and runtime config endpoint (c7fb89d)
v1.3.0
Section titled “v1.3.0”Released 2026-02-16
Bug Fixes
Section titled “Bug Fixes”- fix dpop resolution for dashboard login (b7c7bbb)
- update backfill e2e test for synchronous handler (1adc65e)
Features
Section titled “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
Section titled “v1.2.0”Released 2026-02-14
Features
Section titled “Features”- add convention-based action field for procedure lexicons (1b879c2)
v1.1.0
Section titled “v1.1.0”Released 2026-02-14
Features
Section titled “Features”v1.0.2
Section titled “v1.0.2”Released 2026-02-14
Bug Fixes
Section titled “Bug Fixes”- clear existing admins before adding did column (bc54913)
v1.0.1
Section titled “v1.0.1”Released 2026-02-13
Bug Fixes
Section titled “Bug Fixes”- remove unused did field from AdminAuth (0a5657d)
v1.0.0
Section titled “v1.0.0”Released 2026-02-13
Bug Fixes
Section titled “Bug Fixes”- resolve clippy warnings and formatting issues (77b3b39)
Features
Section titled “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)

