What authzed/spicedb shipped
Written by FoxPlug from the repository's own releases; not affiliated with Authzed. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/authzed/spicedb; Authzed did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 26, 2026
What shipped
- Fixed read pool deadlocks caused by nested connection acquisition in graph reads. Pull request #3434
- Locked LookupResources cursors to the dispatcher that produced them so paginated lookups no longer fail with invalid cursor errors when secondary dispatchers are configured. Pull request #3435
- Preserved
aliasing_relationandcanonical_cache_keyannotations on unchanged definitions during schema writes, fixing a regression since v1.49.0. Pull request #3440 - Changed dispatch cache entries to expire a fixed TTL after they are written instead of sliding on each read. Pull request #3432
- Made SpiceDB reload certificate authorities when they rotate on disk instead of pinning the bundle read at startup. Pull request #3296
- Bumped the indirect go-jose dependency to v4.1.6 for a denial of service CVE affecting JWK parsing with RSA keys. Pull request #3437
- Added reusable planning signals so query planner optimizations can learn from previous requests, with observations tied to compatible datastore revisions. Pull request #3444
- Moved each query planner optimization into its own subpackage with documentation and semantic property tests. Pull request #3396
- Stopped a slow write from failing the quantized revision test on busy CI runners. Pull request #3368
- Established a reproducible baseline comparing classic Check with the query planner while matching relationship work. Pull request #3387
Why it matters
This week fixed several reliability problems that affect running clusters: read pool deadlocks, invalid cursors during paginated LookupResources, stale certificate authorities after rotation, and cache entries that never aged out on their own. Schema writes also stopped stripping annotations from unchanged definitions, which removes a regression introduced in v1.49.0. Alongside those fixes, query planning gained reusable signals and better isolated, tested optimizations.
Changelog entry
- Fix read pool deadlocks from nested connection acquisition in graph reads. Pull request #3434
- Fix LookupResources cursors not being locked to the dispatcher that produced them, causing invalid cursor errors with secondary dispatchers. Pull request #3435
- Fix schema writes stripping annotations from unchanged definitions. Pull request #3440
- Expire dispatch cache entries a fixed TTL after write instead of extending lifetime on access. Pull request #3432
- Reload certificate authorities when they rotate on disk. Pull request #3296
- Bump go-jose to v4.1.6 for CVE-2026-116587. Pull request #3437
- Add reusable planning signals for query planner optimizations. Pull request #3444
- Isolate query planner optimizations into separate subpackages with semantic property tests. Pull request #3396
- Stop slow writes from failing the quantized revision test. Pull request #3368
- Add a matched-work Check performance baseline comparing classic Check with the query planner. Pull request #3387
This week: fixed read pool deadlocks and LookupResources cursor locking, stopped schema writes from stripping annotations on unchanged definitions, made dispatch cache entries expire a fixed TTL after write, and reload certificate authorities on rotation.
This week in SpiceDB: several fixes for issues that show up in running clusters. Nested connection acquisition could deadlock the read pool, and paginated LookupResources could fail with invalid cursor errors when secondary dispatchers were configured; both are fixed. Schema writes no longer strip aliasing_relation and canonical_cache_key annotations from unchanged definitions. Dispatch cache entries now expire a fixed TTL after they are written rather than on last access, and certificate authorities are reloaded when they rotate on disk instead of staying pinned for the process lifetime. The query planner gained reusable planning signals tied to compatible datastore revisions, and each optimization now lives in its own documented, tested subpackage.
Week of October 19, 2026
What shipped
- Released v1.57.0, which adds an experimental full relation cache that is off by default and other changes listed in the release. Release
- ReadRelationships and DeleteRelationships now return a clear error when a filter names a permission instead of failing deeper in the type system with an opaque error. Pull request #3415
- Fixed the wildcard-check cache so its keys include the definition, preventing a result for one type's relation from hiding or altering the wildcard in another type's relation of the same name. Pull request #3421
- The CockroachDB driver now derives its garbage collection window from the zone configuration of the relationships table instead of the cluster-wide RANGE default. Pull request #3423
- Bumped
grpc_health_probeto v0.4.60 and the chainguard static base image in both Dockerfiles to fix a crypto/x509 CVE. Pull request #3424 - Rolled the changelog for the v1.57 release. Pull request #3422
Why it matters
This week brings the v1.57.0 release with an experimental full relation cache that can serve reads of a hot object from cache, including empty answers, without a datastore query. It also makes relationship filtering on a permission fail with a clear error instead of an opaque type-system error. Two fixes address correctness and operations: wildcard cache keys are now qualified per definition, and the CockroachDB garbage collection window follows the relationships table's zone config.
Changelog entry
- Release v1.57.0, including an experimental full relation cache that is off by default. Release
- Return a clear error when ReadRelationships or DeleteRelationships filters on a permission. Pull request #3415
- Qualify wildcard cache keys by definition so results do not leak between types with same-named relations. Pull request #3421
- Derive the CockroachDB garbage collection window from the relationships table zone configuration. Pull request #3423
- Bump
grpc_health_probeto v0.4.60 and update base images to fix a crypto/x509 CVE. Pull request #3424 - Roll the changelog for the v1.57 release. Pull request #3422
SpiceDB v1.57.0 is out: an experimental full relation cache (off by default) serves hot object reads, including empty answers, without a datastore query. Also: clearer errors when filtering relationships on a permission, wildcard cache keys qualified by definition, and the Cockro
SpiceDB v1.57.0 is released. It adds an experimental full relation cache, enabled with an experimental flag and off by default. It caches the complete relationship set of a hot object at one revision and serves reads from it, including empty answers, with no datastore query. This week also fixes relationship filtering. ReadRelationships and DeleteRelationships now return a clear error when a filter names a permission rather than failing deep in the type system with an opaque error. The wildcard-check cache is now keyed by definition as well as relation, so a result for one type cannot hide the wildcard in another type with a relation of the same name. On CockroachDB, the garbage collection window now comes from the zone configuration of the relationships table instead of the cluster-wide d
Week of October 5, 2026
What shipped
- Subject set subtraction now builds the wildcard exclusion list once in SubtractAll, keeping exclusion construction linear and preserving caveat expressions and resource provenance. Pull request #3395
- Watch now applies ellipsis-only subject filters the same way the datastores do, so only the ellipsis relation matches unless NonEllipsisRelation is set. Pull request #3400
- A hedging delay cancellation that arrives before the sleep no longer gets lost, so the primary dispatcher can start without the delay. Pull request #3399
- A cursor-locked hedged LookupResources2 dispatch that is canceled now returns the context error instead of the wrong failure. Pull request #3397
- A hedged Check dispatch that is canceled now returns the context error instead of a timeout message. Pull request #3398
Why it matters
This week is mostly about correctness in edge cases: subject filters in Watch, hedging cancellation timing, and canceled hedged or cursor-locked dispatches now behave consistently. That means fewer surprising mismatches between Watch and the datastores, and clearer errors when a request is canceled. The subtraction change also makes wildcard exclusions cheaper for LookupSubjects.
Changelog entry
- Batch wildcard exclusions in subject set subtraction so LookupSubjects builds the exclusion list once. Pull request #3395
- Apply ellipsis-only subject filters in Watch like the datastores. Pull request #3400
- Do not lose a hedging delay cancellation that arrives before the sleep. Pull request #3399
- Return a context error when a cursor-locked hedged dispatch is canceled. Pull request #3397
- Return a context error when a hedged check dispatch is canceled. Pull request #3398
Fix week: Watch follows datastore ellipsis filter behavior, hedging cancellations are no longer lost, canceled hedged and cursor-locked dispatches return context errors, and wildcard exclusions in LookupSubjects build once instead of growing a list.
This week brought several correctness fixes and one performance change. Watch now applies ellipsis-only subject filters the way the datastores do, matching only the ellipsis relation unless NonEllipsisRelation is set. A hedging delay cancellation that arrives before the sleep is no longer lost, so the primary dispatcher can proceed. Canceled hedged dispatches for Check and cursor-locked LookupResources2 now return the context error. Separately, SubtractAll now builds the wildcard exclusion list once, keeping exclusion construction linear while preserving caveat expressions and resource provenance.
Week of September 28, 2026
What shipped
- Fixed correctness bugs in the query planner's recursive relation handling and test infrastructure gaps that were hiding them. Pull request #3220
- Fixed the query planner's reflexive identity subject decision by replacing an expensive and incorrect datastore query with a direct comparison. Pull request #3386
- Improved DeleteRelationships performance when using a limit by using ctid to avoid expensive index crawls in some query plans. Pull request #3309
- Fixed a cancellation error being dropped by remote streaming dispatch that could cause the LR3 dispatch cache to store incomplete results as successful. Pull request #3380
- Fixed dispatch-upstream-timeout configuration not being applied to outbound dispatches, which were always using a hardcoded 60s fallback. Pull request #3304
- Added property-based integration tests comparing the classic checker with query planner checks on generated schemas and relationships. Pull request #3385
- Updated the release job to set up snapd explicitly rather than assuming it is already present. Pull request #3360
Why it matters
This week includes correctness fixes for the experimental query planner and dispatch system, addressing recursive relations, reflexive edges, and cancellation handling. Performance improvements for relationship deletion and proper timeout configuration ensure the system behaves predictably at scale.
Changelog entry
- Fixed correctness bugs in experimental query planner recursive relation handling Pull request #3220
- Fixed query planner reflexive identity subject decision to use comparison instead of expensive datastore query Pull request #3386
- Improved DeleteRelationships performance with limit by using ctid Pull request #3309
- Fixed remote streaming dispatch cancellation errors being dropped Pull request #3380
- Fixed dispatch-upstream-timeout configuration not being applied to outbound dispatches Pull request #3304
- Added property-based integration tests comparing classic and query planner checks Pull request #3385
- Updated release workflow to set up snapd instead of assuming presence Pull request #3360
This week: query planner correctness fixes for recursive relations and reflexive edges, dispatch cancellation handling, and DeleteRelationships performance improvements.
SpiceDB improvements this week focus on reliability and performance: fixed correctness bugs in recursive relation handling and reflexive identity resolution in the query planner, resolved dispatch cancellation errors that could cause cache inconsistency, improved DeleteRelationships performance with limit queries, and fixed dispatch-upstream-timeout configuration not reaching outbound dispatches.
Week of September 21, 2026
What shipped
- Added cursored bulk relationship deletion through a new CLI command and the DeleteRelationships API to handle large-scale deletions from CockroachDB. Pull request #3316
- Introduced SortKeyRevision interface for order-preserving revision keys in datastore implementations. Pull request #3319
- Enabled parallel test suite execution across consistency and datastore suites, fixing bugs uncovered by concurrency. Pull request #3328
- Fixed MemDB serving revisions with invalid validity due to interaction between revision rounding and cache behavior. Pull request #3374
- Fixed MemDB incorrectly serving reads from the empty creation snapshot after data had been written. Pull request #3366
- Capped transaction retry backoff at 10 seconds to prevent unbounded exponential growth. Pull request #3353
- Reduced Build Binary & Image CI job duration from 14 minutes to 5 minutes through runner upgrades and layered Docker builds. Pull request #3364
- Fixed Postgres datastore startup breaking its own connection warm-up causing timeouts on first queries. Pull request #3333
- Fixed MySQL watch path returning stale error instead of actual row iteration error. Pull request #3358
- Corrected memory fallback constant from 256 KiB to 256 MiB as documented. Pull request #3329
Why it matters
This week focused on test reliability and performance. Parallel test execution uncovered and fixed multiple datastore bugs in MemDB and Postgres that would only manifest under concurrent load. CI improvements significantly reduced build times while the new bulk deletion API addresses practical limitations when operating at scale.
Changelog entry
- Feat(datastore): add cursored bulk relationship deletion via CLI and DeleteRelationships API Pull request #3316
- Feat(datastore): add SortKeyRevision interface for order-preserving revision keys Pull request #3319
- Perf(testing): run test suites in parallel with bugfixes for concurrent datastore access Pull request #3328
- Fix(memdb): stop serving revisions with invalid validity from optimized cache Pull request #3374
- Fix(memdb): prevent reads from empty creation snapshot after writes Pull request #3366
- Fix(datastore): bound transaction retry backoff at 10 seconds Pull request #3353
- Fix(postgres): stop startup cancelling connection warm-up Pull request #3333
- Fix(mysql): return actual error when reading watch metadata fails Pull request #3358
- Fix(runtime): correct memory fallback from 256 KiB to 256 MiB Pull request #3329
- Perf(ci): reduce Build Binary & Image job time from 14m to 5m Pull request #3364
This week: cursored bulk deletion for large relationship sets, SortKeyRevision for ordered datastores, parallel test suites (+bug fixes), and 3x faster builds.
SpiceDB shipped several improvements this week focused on reliability and performance. We added cursored bulk relationship deletion to handle large-scale deletions efficiently, introduced SortKeyRevision for ordered key-value stores, and enabled parallel test execution—uncovering and fixing multiple datastore concurrency bugs in MemDB and Postgres. CI builds are now 3x faster. These changes address real constraints when operating at scale.
More from authzed/spicedb on GitHub
Merged pull requests
- feat: cursored bulk relationship deletion (#3316, merged September 24, 2026 by josephschorr) (source)
- test(consistency): let callers run the consistency fixtures serially (#3375, merged September 23, 2026 by vroldanbet) (source)
- fix: stop serving a revision that has no validity (#3374, merged September 22, 2026 by vroldanbet) (source)
- ci: run the tests when the build system changes (#3372, merged September 22, 2026 by vroldanbet) (source)
- fix(memdb): never hide the first write behind the creation snapshot (#3366, merged September 22, 2026 by vroldanbet) (source)
- ci: approve the docs PR with the gh CLI (#3371, merged September 22, 2026 by vroldanbet) (source)
- fix(runtime): correct the memory fallback from 256KiB to 256MiB (#3329, merged September 22, 2026 by vroldanbet) (source)
- fix(testing): stop the FDW e2e test losing its port before it binds (#3338, merged September 22, 2026 by vroldanbet) (source)
- fix(testing): repair two tests in the shared datastore suite (#3334, merged September 22, 2026 by vroldanbet) (source)
- perf(ci): make the Build Binary & Image job ~3x faster (#3364, merged September 22, 2026 by vroldanbet) (source)
- fix(testing): let the migration test wait for its first connection (#3354, merged September 22, 2026 by vroldanbet) (source)
- ci: pin third-party and GitHub-owned actions to commit SHAs (#3365, merged September 22, 2026 by vroldanbet) (source)