v5.1.5
What's Changed
- test(integration): TLS cert hot-reload multi-worker regression test (#586) (#1314)
- fix(blob): gate blob unlink on the record removal committing (#1364) (#1369)
- fix(migration): await in-flight blob saves before declaring v4→v5 migration done (#1351)
- fix(blob): tolerate source-unavailable blobs in pre-commit so a missing blob can't wedge replication (#1353)
- fix(blob): don't await already-saving replication blobs in preCommit.complete() (#1341 regression) (#1376)
- fix(table): make eviction path errors non-fatal across both storage engines (#1287) (#1361)
- Flag structure updates per transaction log so replicas decode against current structures (#1348) (#1352)
- fix(test): resolve MQTT retained-message subscribe timeout flake
- fix(databases): complete the dead restartNumber reindex-recovery trigger (#1374)
- Throw a typed, retryable error when querying an attribute whose index is still building (#1363)
- Short-circuit expiration-warning check after first expiring write
- Warn when a per-record expiresAt has no scheduled cleanup (#1339)
- feat(mcp): implement ping + logging/setLevel + notifications/message (#1350)
- fix(test): drain orphaned lmdb cursor wrappers after Read Txn Expiration (#1367)
- fix(headers): group multi-valued Set-Cookie into arrays for writeHead (#1360)
- test: expand schema tests — @Sealed, Brotli Blob, array @indexed, schema-less table (#1205)
- fix: writeHead iterable response headers as an object, not a nested array (#1344)
- fix(mcp): result-shaped output schemas for application CRUD tools (#1324) (#1336)
- fix(mcp): application-profile 500 + operations-profile conformance (#1317) (#1320)
Full Changelog: v5.1.4...v5.1.5