Releases: sourcenetwork/defradb.rs
Releases · sourcenetwork/defradb.rs
Release list
v0.19.0
What's Changed
- fix(wasm): make task-local access reentrant by @iverc in #1390
- ci: report release artifact size changes by @iverc in #1355
- refactor: replace multicodec crate with inline codec constants by @edjroz in #1384
- build(deps): declare the tokio features each crate uses by @edjroz in #1380
- build(deps): drop tokio
fullfrom the workspace entry by @edjroz in #1387 - ci: share the binary cache over Thunderbolt, then let Build & Test use either studio by @jackzampolin in #1424
- chore(telemetry): gate tracing-subscriber behind the otlp feature by @edjroz in #1386
- fix(wasm): make the debug feature actually control the panic hook by @edjroz in #1385
- Add defra-node feature-graph harness to just and CI by @jackzampolin in #1431
- Make defra-node SourceHub ACP a default-on optional feature by @jackzampolin in #1432
- Plumb defra-node wasmtime-runtime and fail Lens without a runtime by @jackzampolin in #1433
- Feature-gate db-merge libp2p types off the Iroh-only graph by @jackzampolin in #1434
- Prove defra-node Iroh-only p2p is libp2p-free by @jackzampolin in #1435
- chore(deps): unify sysinfo on 0.33 and document the duplicates we cannot unify by @edjroz in #1383
- ci: accept merge_group events so a merge queue can be enabled by @jackzampolin in #1427
- perf(keyring): replace josekit with a pure-Rust JWE, dropping OpenSSL from macOS cli builds by @edjroz in #1381
- ci: stop cancelling main's post-merge validation runs by @jackzampolin in #1426
- build(deps): select rustls for reqwest, dropping OpenSSL from Linux lark and rocksdb builds by @edjroz in #1382
- build: add a super-dev profile selectable via the justfile profile variable (#1396) by @edjroz in #1397
- fix(db): preserve concurrent first counter increments by @iverc in #1430
- fix(db): scope field priorities to their own history by @iverc in #1437
- fix(query): remove wall-clock race from downsample rollup test by @jackzampolin in #1446
- Share one http_client for otel exporters by @christopherbm in #1323
- Defra Vector Index Traits + HNSW + Flat index by @vertexclique in #1377
- Vector indexes: IVF-PQ by @vertexclique in #1442
- Vector indexes: SSG by @vertexclique in #1443
- Vector indexes: benchmarks by @vertexclique in #1447
- ci: publish the binary cache to both studio hosts by @jackzampolin in #1455
- fix(p2p): keep one connection per peer to stop gossipsub dying against Go by @jackzampolin in #1473
- ci: run rust integration suites at 8 threads instead of serialized by @jackzampolin in #1454
- fix(index): deduplicate typed array index values by @iverc in #1441
- fix(query): match JSON membership for missing keys by @iverc in #1451
- ci: make signed-docs the sole PR integration leg by @jackzampolin in #1499
- fix(ci): preserve queued main validations by @iverc in #1491
- ci: build and test the integration legs with the super-dev profile by @jackzampolin in #1500
- fix(schema): reject multiple active collection versions by @iverc in #1486
- fix(wasm): validate schemas before creating collections by @iverc in #1487
- feat(defra-node): expose the document ACP (DAC) API on EmbeddedNode by @edjroz in #1445
- Persist the policy-ID counter so ids do not repeat after a restart by @edjroz in #1460
- fix(p2p): surface the io error when a listen address fails to bind by @jackzampolin in #1503
- fix(db): apply collection patch migrations atomically by @iverc in #1439
- fix(document): preserve Blob values through lens migrations by @iverc in #1440
- fix(schema): validate relation ID field kinds by @iverc in #1489
- fix(storage): encode DateTime index keys as separate seconds and nanos by @vertexclique in #1461
- chore(deps): bump defra-harness for the restart port guard by @jackzampolin in #1477
- fix(defra-node): stop asserting an exact delta on process-global retry metrics by @vertexclique in #1525
- ci: fall back when sccache is unavailable by @iverc in #1515
- fix(schema): validate encrypted index fields by @iverc in #1488
- fix(ffi): expose p2p sync status by @iverc in #1514
- fix(query): route similarity queries through the vector index by @vertexclique in #1474
- fix(http): serve Go's wire paths for policy registration and views by @vertexclique in #1498
- refactor(p2p): isolate transport-only dependencies by @iverc in #1527
- test(p2p): move public API tests out of source by @iverc in #1528
- test(p2p): honor transport feature boundaries by @iverc in #1529
- test(p2p-adapter): isolate transport fixtures by @iverc in #1530
- fix(db-blocks): let a remote signer sign blocks with a secp256r1 key by @vertexclique in #1456
- fix(p2p): centralize DAG ingestion and merge ownership by @jackzampolin in #1502
- chore(crates): fold query-plan into the query crate (1/3) by @edjroz in #1533
- chore(crates): fold query-parse into the query crate (2/3) by @edjroz in #1534
- chore(crates): fold query-types into the query crate (3/3) by @edjroz in #1535
- fix(test): assert restart ownership per document by @edjroz in #1553
- Enforce
--max-schema-sizeand--max-backup-sizeat the request boundary by @edjroz in #1480 - Honour
--no-signinginstead of always signing with a node identity by @edjroz in #1481 - Map
--valuelogfilesizeonto the lark and rocksdb target file size by @edjroz in #1482 - Prove
--max-schema-sizeon the wire against a real node by @edjroz in #1483 - chore(db): compartmentalize db, 1/4 error, event, view, database, collection, txn by @vertexclique in #1544
- refactor(db): compartmentalize db, 2/4 split the transaction registry and adopt one-word names by @vertexclique in #1545
- chore(db): compartmentalize db, 3/4 write, read, block, definition, access, docid by @vertexclique in #1546
- test(db): compartmentalize db, 4/4 move every test into the tests tree by @vertexclique in #1547
- chore(db): compartmentalize db, 5/5 fold the six db-* crates into db by @vertexclique in #1556
- chore(benches): scaffold the benches package and move defra-core by @edjroz in #1558
- chore(benches): move the five straightforward crates by @edjroz in #1559
- chore(benches): move storage and the db vector benches by @edjroz in #1560
- chore(benches): extract the shared runtime helpers by @edjroz in #1561
- chore(benches): suppress empty libtest harnesses and add bench recipes by @edjroz in #1563
- fix(ci): satisfy Rust 1.98 Clippy lints by @iverc in #1554
- test(p2p)...
v0.18.0
What's Changed
- fix(http): retry conflicting GraphQL mutations by @iverc in #1280
- fix(ffi): close major Go compatibility gaps by @iverc in #1261
- fix(db): preserve stale update conflict type by @iverc in #1290
- perf(index): shard full-text corpus statistics by @iverc in #1283
- feat: Integrate PR train by @iverc in #1284
- chore(ci): update Go compatibility baseline by @iverc in #1304
- chore(embedded): make SourceHub support opt-in by @iverc in #1303
- bench: add block, CRDT, DAG merge, HTTP, and P2P benchmarks with a Go wire-format parity gate by @edjroz in #1301
- fix(defra-version): re-run build script when git HEAD moves by @edjroz in #1312
- fix(db-merge): iterative doc-identity ancestry walk — deep DAGs overflowed small stacks by @noahsaso in #1316
- fix(db-merge): retry rate-limited replay nacks with backoff instead of abandoning the document by @noahsaso in #1317
- chore: Update CLAUDE.md by @edjroz in #1322
- perf: Make
LIMIT ncostn, not the collection by @edjroz in #1311 - fix(crypto): derive block encryption from the DAG instead of a process-global store by @edjroz in #1313
- ci: parallelize studio jobs via host pinning + cancel superseded PR runs by @jackzampolin in #1324
- ci: cancel superseded main runs and PR CI on close by @jackzampolin in #1350
- fix(ci): create $CACHE_DIR before the cache-miss branch writes into it by @vertexclique in #1360
- fix(p2p): drain pending-DAG sweeps on shutdown so the store unlocks by @vertexclique in #1357
- fix(p2p): report failed and timed-out document syncs instead of returning Ok by @edjroz in #1314
- Patch Wasmtime and ruint security advisories by @jackzampolin in #1320
- fix(db): make branchable mutation provenance atomic by @iverc in #1354
- build: add a documented justfile with a no-sudo setup target by @vertexclique in #1358
- fix(wasm): use web-time so opening a transaction does not panic in the browser by @vertexclique in #1362
- fix(storage): mark OPFS files dirty on write, not only on open by @vertexclique in #1363
- ci: run the wasm test suite in a headless browser by @vertexclique in #1364
- fix(embedded): track the libp2p host task so shutdown releases the store by @vertexclique in #1370
- ci: add cargo-machete gate and drop dead db reqwest by @edjroz in #1368
- refactor: replace serde_cbor with ciborium across the workspace by @vertexclique in #1372
- fix(document): unify NormalValue::Bytes JSON as lowercase hex by @edjroz in #1366
- Run embedded queries with signed node provenance by @jackzampolin in #1373
- fix(query): test REST GraphQL escaper against production with JSON string rules by @edjroz in #1367
- ci: simplify repository auth and restore fast macOS tests by @jackzampolin in #1374
- fix(storage): HeadstoreDocKey::parse — harden binary short-id decoding by @edjroz in #1371
- perf(wasm): remove Tokio from dependency graph by @iverc in #1375
- fix(release): pin SourceHub dependency to reachable revision by @jackzampolin in #1379
New Contributors
- @edjroz made their first contribution in #1301
- @vertexclique made their first contribution in #1360
Full Changelog: v0.17.4...v0.18.0
v0.17.4
What's Changed
- perf(build): opt-z cold-crate overrides, wasm opt-z pipeline, release-fast profile by @jackzampolin in #1276
- fix(release): ship FFI as cdylib instead of 385MB static archive by @jackzampolin in #1277
- Binary size: −37% full / −48% slim — DynStore erasure, real variants, opt-in pg/sourcehub/orbis, slimmed wasmtime/TLS by @jackzampolin in #1275
- fix(cli): correct release contracts and encrypted dumps by @iverc in #1278
Full Changelog: v0.17.3...v0.17.4
v0.17.3
What's Changed
- chore(storage): scope futures to native tests by @jackzampolin in #1245
- chore(telemetry): gate thiserror behind otlp by @jackzampolin in #1246
- chore(keyring): scope tracing to Linux by @jackzampolin in #1247
- chore(datastore): move futures to dev dependencies by @jackzampolin in #1248
- chore(document): correct dependency ownership by @jackzampolin in #1250
- Scope storage backend dependencies by target by @jackzampolin in #1251
- Prune unused ACP dependencies by @jackzampolin in #1252
- Prune unused Lens dependencies by @jackzampolin in #1262
- Prune unused Iroh blobs dependency by @jackzampolin in #1263
Full Changelog: v0.17.2...v0.17.3
v0.17.2
What's Changed
- Remove dead query modules by @jackzampolin in #1202
- Run runtime interoperability tests in CI by @jackzampolin in #1203
- Extract DB merge tests from production module by @jackzampolin in #1204
- Remove generated artifacts and redundant tests by @jackzampolin in #1201
- Extract P2P replication tests from production module by @jackzampolin in #1205
- Extract Query runner tests from production modules by @jackzampolin in #1206
- Extract P2P DAG tests from production modules by @jackzampolin in #1207
- Extract DB document mutator tests from production module by @jackzampolin in #1208
- Split DB merge handler into cohesive modules by @jackzampolin in #1209
- Split CLI P2P server setup by transport by @jackzampolin in #1210
- Remove redundant crate target ignores by @jackzampolin in #1212
- Prune unused query dependencies by @jackzampolin in #1214
- Remove redundant tests and strengthen coverage by @jackzampolin in #1215
- Remove dead internal helpers by @jackzampolin in #1216
- Prune duplicate CRDT tests by @jackzampolin in #1217
- Extract defra-node benchmark tests by @jackzampolin in #1213
- Extract P2P coordinator worker tests by @jackzampolin in #1218
- Correct stale module documentation by @jackzampolin in #1219
- Split query commit runner helpers by @jackzampolin in #1220
- Remove superpowers planning documents by @jackzampolin in #1221
- Extract events crate inline tests to sibling files by @jackzampolin in #1222
- Extract oversized KMS inline tests by @jackzampolin in #1224
- test(storage): extract oversized inline tests to sibling files by @jackzampolin in #1223
- Extract sourcehub cosmos DAC tests to sibling module by @jackzampolin in #1225
- refactor(query-plan): split apply_joins into cohesive planner stages by @jackzampolin in #1227
- Extract defra-node P2P runtime into private module by @jackzampolin in #1228
- Honor RocksDB options in embedded nodes by @jackzampolin in #1239
- chore(query): prune unused dev dependencies by @jackzampolin in #1238
- fix(storage): preserve concurrent branchable collection heads by @iverc in #1226
- Expose RocksDB runtime statistics by @jackzampolin in #1240
- fix(db): complete Go lens migration parity by @jackzampolin in #1232
- refactor(cli): reuse defra-p2p-adapter for P2P HTTP adapters by @jackzampolin in #1229
- chore(kms): prune unused dependencies by @jackzampolin in #1242
- chore(crypto): prune stale dependencies by @jackzampolin in #1244
- fix(db): bound lazy migration write-back batches by @iverc in #1243
Full Changelog: v0.17.1...v0.17.2
v0.17.1
What's Changed
- fix(db): prevent stale auto-commit updates by @jackzampolin in #1198
- fix(ci): isolate Ubuntu APT sources by @jackzampolin in #1199
Full Changelog: v0.17.0...v0.17.1
v0.17.0
What's Changed
- fix(storage): pair RocksDB conflict versions with physical snapshots by @jackzampolin in #1167
- fix(storage): retain conflicts for active snapshots by @iverc in #1162
- test(conformance): require complete mixed-field DAGs by @iverc in #1174
- perf(storage): skip obsolete conflict records by @iverc in #1173
- refactor(telemetry): remove unused metrics pipeline by @iverc in #1175
- ci: make Lean conformance blocking by @iverc in #1164
- ci: make signed-docs integration blocking by @iverc in #1155
- feat(p2p): expose iroh multipath tuning by @iverc in #1151
- test(conformance): pin Go v1 mixed unique twins by @iverc in #1153
- fix(storage): pair conflict versions with snapshots by @iverc in #1170
- perf(query): pipeline ACP permission checks by @iverc in #1165
- fix(p2p): enforce pending DAG peer quotas by @iverc in #1152
- fix(db-merge): bound parent replay stack usage by @iverc in #1176
- fix(query): resolve cursor seeks through short IDs by @iverc in #1166
- fix(p2p): update noq to 1.1.0 by @iverc in #1171
- feat(wasm): add browser-to-server document sync by @iverc in #1177
- fix(p2p): recover saturated pushes after restart by @iverc in #1157
- fix(storage): stop serializing reads behind write commits by @iverc in #1183
- fix(p2p): pending-DAG quota reporting + replicator retry redial by @iverc in #1186
- fix(storage): run commit callbacks from the commit task by @iverc in #1187
- fix(sync): browser-sync hardening follow-ups by @iverc in #1188
- fix: make the wasm32 build clippy-clean by @iverc in #1189
- bench(storage): compare backends through the DefraDB transaction wrapper by @iverc in #1192
- fix(wasm): scope transaction state during queries by @iverc in #1193
- fix(storage): lift the lark commit-gate and rollback exceptions by @iverc in #1191
- docs: cut consumer cross-references over to Gents by @jackzampolin in #1195
- fix(storage): don't conflict blind writes of identical content-addressed blocks by @jackzampolin in #1196
- fix(sync): complete the browser-sync wedge fix from #1188 by @jackzampolin in #1197
Full Changelog: v0.16.2...v0.17.0
v0.16.2
What's Changed
- fix(p2p): quarantine invalid signatures and fence DAG fetches by @jackzampolin in #1160
- fix(p2p): scope replay capabilities to their authorizer by @jackzampolin in #1163
Full Changelog: v0.16.1...v0.16.2
v0.16.1
What's Changed
- fix(db): migrate v0.15 document stores on open by @jackzampolin in #1156
Full Changelog: v0.16.0...v0.16.1
v0.16.0
What's Changed
- fix(p2p): rotate providers and retry incomplete DAG fetches instead of silently dropping roots (#1093) by @jackzampolin in #1095
- fix(p2p): heal dead iroh-gossip send paths instead of retrying a corpse forever (#1092) by @jackzampolin in #1096
- fix(p2p): bound outbound push backlog, retire task handles, persist pending-DAG acks (#1099) by @jackzampolin in #1100
- test(p2p): add push storm repro harness by @jackzampolin in #1108
- fix: reject numeric field kinds in schema patches by @jackzampolin in #1106
- fix(query): populate commit collection IDs by @jackzampolin in #1109
- fix(p2p): serve selective CAR blocks for pushed DAG recovery by @jackzampolin in #1107
- fix(p2p): coalesce outbound push work by @jackzampolin in #1110
- fix(p2p): single-flight receive processing by CID by @jackzampolin in #1117
- fix(p2p): accept subscribed gossip from outbound targets by @jackzampolin in #1118
- feat(p2p): receiver-authoritative pull — paced pending-DAG retry clock (#1116 stage 2) by @jackzampolin in #1123
- fix(p2p): preserve retry for suppressed PushLogs by @jackzampolin in #1121
- fix(p2p): stop the empty-store genesis storm (#1112, #1113) by @iverc in #1119
- Route root __typename to the introspection engine (#1124) by @jackzampolin in #1125
- fix(p2p): route two-stream ACKs on response tokens by @jackzampolin in #1129
- fix(index): define unique-index semantics at the merge and tombstone boundaries by @iverc in #1126
- fix(p2p): quarantine terminal merge failures — dead-letter for the pending-DAG ledger (#1128) by @jackzampolin in #1133
- test(go-compat): pin twin-unique merge semantics for Rust/Rust and Go/Go (#1134) by @jackzampolin in #1135
- feat: DocID based on genesis CID + retarget go-compat to v1.0.0 (Go #4838) by @iverc in #1131
- fix(storage): prevent successful Redb writes from disappearing by @iverc in #1139
- test(p2p): wait for matching peer event types by @iverc in #1141
- perf(p2p): index pending DAG waiters by missing CID (#1088 W3) by @iverc in #1143
- test(conformance): complete PNCounter refinement coverage by @iverc in #1145
- feat(acp): add bulk relationship endpoints (#1032) by @iverc in #1142
- fix(query): align @default directive with Go v1 by @iverc in #1146
- test(ffi): make embedding tests hermetic by @iverc in #1148
- fix(test): isolate P2P feature binaries by @iverc in #1144
- fix(query): preserve GraphQL mutation fragment order by @iverc in #1149
- feat(db): add Go v1 action-system parity by @iverc in #1147
- fix(kms): retry merges after DEK fetch timeouts by @iverc in #1140
- test(conformance): model encrypted LWW replay by @iverc in #1150
Full Changelog: v0.15.3...v0.16.0