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): move wire tests into the tests tree by @iverc in #1549
- test(p2p): move libp2p protocol tests into the tests tree by @iverc in #1550
- test(p2p): move sync state tests into the tests tree by @iverc in #1551
- /document crate unit test clean up by @christopherbm in #1570
- embedded crate unit test clean up by @christopherbm in #1571
- events crate test cleanup by @christopherbm in #1572
- fix(http): mount the API router at Go's unversioned /api prefix by @vertexclique in #1574
- fix(http): honor Go's collection selectors on GET /collections by @vertexclique in #1575
- fix(http): make DELETE /collections/{name} Go's filtered document delete by @vertexclique in #1576
- fix(http): serve Go's filtered document update on PATCH /collections/{name} by @vertexclique in #1577
- fix(schema): enforce relation integrity by @iverc in #1584
- fix(schema): validate field defaults by @iverc in #1585
- fix(db): preserve active name selector precedence by @iverc in #1588
- fix(http): align collection selector query parsing by @iverc in #1589
- fix(http): list transaction-scoped collections by @iverc in #1590
- feat(ffi-test): resolve the Go checkout explicitly by @edjroz in #1567
- fix(view): protect populated cache on dematerialize by @iverc in #1586
- fix(p2p): align replicator replay triggers by @iverc in #1513
- fix(p2p): recover transient marker writes by @iverc in #1578
- ci: move validation to GitHub-hosted runners by @iverc in #1606
- test(embedded): prevent shutdown test lost wakeup by @iverc in #1617
- fix(p2p): replay only composite document heads by @iverc in #1453
- fix(http): add the P2P disconnect route by @iverc in #1490
- fix(schema): align index kind wire envelope by @iverc in #1526
- fix(query): preserve child scan order in one-to-many joins by @edjroz in #1611
- fix(query): plan order-by-relation joins without panicking by @edjroz in #1612
- fix(query): duplicate relation selections and grouped _docID leak by @edjroz in #1613
- fix(query): honor groupBy on aggregate targets by @edjroz in #1614
- fix: preserve f64 bits through JSON parsing by @edjroz in #1615
- test(query): cover concurrent schema initialization by @iverc in #1621
- feat(db): support filtered collection truncate by @iverc in #1620
- fix(defra-node): expose schema add over embedded HTTP by @jackzampolin in #1592
- feat(ffi-test): pin the Go client checkout by @edjroz in #1566
- fix(db): match Go wording for create-on-deleted-document error by @edjroz in #1608
- feat(storage): Default
Regolithand shed every other backend by @vertexclique in #1622 - p2p: bind gossip fetch obligations to transport-routable origins; expose rebroadcast-on-merge by @mike7c2 in #1624
- defra-node: serve real document and collection heads over P2P by @mike7c2 in #1625
- ci: drop iroh from generic FFI artifacts by @iverc in #1629
- feat(p2p): expose authenticated peer identity by @jackzampolin in #1623
- fix(ffi): let panics unwind into FFI errors instead of aborting the host (#1594) by @edjroz in #1610
- fix(defra-node): wire the KMS so encrypted documents replicate over iroh by @mike7c2 in #1626
- feat(defra-node): explicit-counter DAC policy registration for policy-bound P2P collections by @mike7c2 in #1627
- fix(db): tie-break equal index keys by public DocID by @edjroz in #1609
- refactor(db): share auto-commit transaction lifecycle by @iverc in #1628
New Contributors
- @christopherbm made their first contribution in #1323
- @mike7c2 made their first contribution in #1624
Full Changelog: v0.18.0...v0.19.0