Skip to content

Releases: fluree/db

v4.2.4-beta.2

v4.2.4-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Oct 04:25
77e3692

What's Changed

Breaking Changes

  • fix(storage): file compare-and-swap no longer deadlocks recover_wal; StorageCas closures are now 'static by @zonotope in #2003

Features

  • feat(api): multi-write transactions by @bplatz in #2023
  • feat: SPARQL parameters, fulltext() in SPARQL, structured SHACL rejections by @bplatz in #2024
  • feat(python): the fluree Python package by @bplatz in #2025
  • feat(iceberg): add AWS Glue Data Catalog + S3 Tables catalog modes by @aaj3f in #1451

Bug Fixes

  • fix(query): indexed overflow integers keep xsd:integer through DATATYPE, DISTINCT, GRAPH and ORDER BY by @bplatz in #2012
  • fix(cli): help text for validate, examples, and materialize; rust-api features by @bplatz in #2016
  • fix: index storage growth — stats sketch GC, disk cache for local storage, drop of blob/ by @bplatz in #2018
  • fix: engine fixes found building the Python package by @bplatz in #2022
  • fix(python): keep the extension out of the CLI release build; v4.2.4-beta.2 by @bplatz in #2036

Performance

  • perf(storage): recover the WAL without blocking the async runtime by @zonotope in #2011
  • perf(indexer): sparse binary + zstd stats sketches; 15-minute GC default by @bplatz in #2020

Documentation

  • ci: run CI on the next branch; document next for the upcoming major by @bplatz in #2028

Full Changelog: v4.2.3...v4.2.4-beta.2

v4.2.3

Choose a tag to compare

@github-actions github-actions released this 03 Oct 15:13
2941d47

What's Changed

Features

  • feat(sparql): # PRAGMA request options, the SPARQL twin of JSON-LD opts by @bplatz in #2002
  • feat(query): union default graph, per ledger and per query by @bplatz in #2004

Bug Fixes

  • fix: keep typed literal values through the index (reindex affected ledgers) by @bplatz in #1988
  • fix(query): typed numeric constants match exactly, bare numbers match any numeric datatype by @bplatz in #1990
  • fix(query): place BIND and FILTER after the triple that binds their variable by @bplatz in #1995
  • fix: unresolvable graph references fail closed, and TriG directives apply in document order by @aaj3f in #1997
  • fix(query): 4xx for unknown graphs and commit refs; urn:default names the default graph by @bplatz in #2005

Other Changes

  • Increase custom datatype limit and make it explicit by @zonotope in #1966
  • ci(release): Docker publish actions on their Node 24 majors by @bplatz in #1989
  • release v4.2.3 by @bplatz in #2000

Full Changelog: v4.2.2...v4.2.3

v4.2.2

Choose a tag to compare

@github-actions github-actions released this 29 Sep 17:47

What's Changed

Breaking Changes

  • feat(delta): browse, preview, verify, generate and validate on Unity Catalog; generated mappings key and join lowercase tables (Iceberg too) by @bplatz in #1902
  • Apply a request's policy on the graph-scoped read path, and to hydration by @zonotope in #1935
  • fix: parse ledger ids once at the edge and key everything by a typed id by @bplatz in #1958
  • fix: scope MCP and the ledger listing by token claims; MCP follows data auth by @bplatz in #1963

Features

  • feat(iceberg): time-pinned graph-source reads via @iso: and @snapshot: by @bplatz in #1896
  • feat(query): @time: as the canonical timestamp selector; @iso: stays an alias by @bplatz in #1897
  • feat(delta): Delta Lake graph sources on local, S3, ADLS Gen2 and OneLake; reqwest 0.13 (outbound TLS trusts the OS certificate store) by @bplatz in #1899
  • feat(delta): Databricks tables by name through Unity Catalog by @bplatz in #1901
  • feat(sparql): support GRAPH ?g in UPDATE templates by @bplatz in #1921
  • feat: encryption key rotation without export and import by @bplatz in #1919
  • feat(server): accept Turtle, N-Triples and TriG on /sync by @bplatz in #1932
  • feat(server): Graph Store HTTP Protocol endpoint and default-graph sync by @bplatz in #1934
  • feat: Turtle and N-Triples output for CONSTRUCT and DESCRIBE by @bplatz in #1940
  • feat: edge annotations and GRAPH blocks in CONSTRUCT templates by @bplatz in #1948
  • feat(server): accept a time pin in the /query ledger path by @bplatz in #1970
  • feat(cli): fluree server run --memory for a throwaway in-memory server by @bplatz in #1968
  • feat(api): branch from a point in time with at: "time:" by @bplatz in #1969
  • Accept TriG on insert (API, server, CLI) by @bplatz in #1971

Bug Fixes

  • fix(query): unmatched OPTIONAL leaves vars unbound in SPARQL, null in Cypher by @bplatz in #1923
  • fix: route named graphs by ledger graph id, not transaction-local numbers by @bplatz in #1926
  • fix(query): keep left joins in written order when they share a variable by @bplatz in #1927
  • fix(storage): apply AES256Key on every encryptable build path and keep the disk cache free of decrypted artifacts by @bplatz in #1916
  • fix(indexer): remove rebuild session directories on every exit by @bplatz in #1917
  • fix(server): honour SPARQL Protocol dataset parameters by @bplatz in #1928
  • fix(query): key literals alike whichever join lane produced them by @bplatz in #1939
  • Compare branches by commit identity instead of t by @zonotope in #1905
  • fix(server): config precedence, boolean switches, and docs for what exists by @bplatz in #1944
  • fix(server): branching from a ledger with no commits is a 400, not a 500 by @bplatz in #1945
  • fix(query): filter and negation placement, and point-in-time visibility after reindex by @bplatz in #1965
  • fix(query): restore fast paths after cached index adoption by @bplatz in #1967

Performance

  • perf(query): fix worker-dependent 1.5x slowdown in COUNT star merges (DBLP regression in 4.2.1) by @bplatz in #1900
  • Read only the probe's slice of untranslatable overlay flakes by @bplatz in #1904
  • perf(query): cut per-row overhead in type scans, stars, grouping, and MINUS by @bplatz in #1933
  • perf(query): let LIMIT stop property joins and OPTIONAL early by @bplatz in #1936
  • perf(query): accelerate joins, existence checks, and counts by @bplatz in #1959

Other Changes

Full Changelog: v4.2.1...v4.2.2

v4.2.1

Choose a tag to compare

@github-actions github-actions released this 18 Sep 20:16
82dbcec

What's Changed

Breaking Changes

  • rdf:JSON Canonicalization by @zonotope in #1854
  • Make the export → import round trip faithful (breaking: export's default output changes) by @aaj3f in #1875

Features

  • Write-ahead log for file storage and a segmented Raft log by @bplatz in #1820
  • Rules see claims: executor-backed datalog, Turtle-star on every write path, in-round budgets, W3C RDF suites by @aaj3f in #1823
  • RDF 1.2: rdf:reifies triple terms on the text ingest paths, and TriG-star inside GRAPH blocks by @bplatz in #1832

Bug Fixes

  • fix(query): prevent Unicode panic in dictionary error messages by @bplatz in #1801
  • perf(query): count NumBig distinct objects from arenas, drop the row cap by @bplatz in #1803
  • Skip config reasoning defaults on history/changes datasets by @bplatz in #1813
  • indexer: roll up planner-facing property stats after the incremental ndv floor by @bplatz in #1814
  • fix(raft): retire stalled workers on low-volume clusters by @bplatz in #1830
  • perf(query): seek bound decimals in TI3 object joins by @bplatz in #1826
  • fix(query): match unbound keys in materialized subquery joins by @bplatz in #1827
  • perf(query): bound subquery buffering and stream independent scopes by @bplatz in #1828
  • fix(query): resolve overflow subject IRIs from novelty by @bplatz in #1829
  • Validate SHACL rules on merge operations by @zonotope in #1822
  • fix: @JSON opacity, var-length edge identity, commit-id spelling, reserved-graph contract by @aaj3f in #1838
  • fix(raft): avoid replaying proposals with unknown outcomes by @bplatz in #1839
  • fix(indexer): report cancelled join tasks as cancelled, not panicked by @bplatz in #1844
  • fix(raft): pin openraft fork that resamples election timeout per campaign by @bplatz in #1845
  • fix(policy): empty rule set under an allow default is root; keep raw-row lanes for untouched predicates by @bplatz in #1855
  • fix(indexer): collect shared dictionary blobs, run the collector periodically, batch storage deletes by @bplatz in #1862
  • Let an annotation-body FILTER reach the scan, and stop --explain hiding the annotated BGP by @aaj3f in #1874
  • fix(cli): parse --at with the canonical time-spec grammar, not a commit prefix; render JSON-LD SELECT as JSON under --format table by @aaj3f in #1871
  • fluree doc ingest: stop losing data on re-ingest, fail loudly, work with current models by @aaj3f in #1876
  • fix(query): COUNT over a novelty-only or overlay-only predicate returned 0 by @aaj3f in #1877
  • fix(query): encode JSON-LD constant references at lowering so joins reach the batched lanes by @bplatz in #1856

Performance

  • perf(query): reuse aggregates for matched BI Q4 subqueries by @bplatz in #1825

Other Changes

  • ci: speed up tests, benchmarks, and Apple releases by @bplatz in #1802
  • query: index-walk range semi-join for correlated range probes, plus four join-chain fixes (BSBM Explore Q5) by @bplatz in #1815
  • fix(merge): fast-forward merges land on queue-backed nameservices and keep the target's index root by @bplatz in #1816
  • Add trusted policy delegation across SDK and server interfaces by @bplatz in #1804
  • Make f:IdentityRestricted override control enforceable by @zonotope in #1819
  • Improve concurrent write throughput with WAL group commit and reduced lock work by @bplatz in #1821
  • fix(query): seed selective object VALUES before star payload joins by @bplatz in #1824
  • Stamp branch-operation flakes on the target's clock and load state along the first-parent lineage by @zonotope in #1818
  • perf(query): defer local dictionary pack loading until first use by @bplatz in #1831
  • Document that PolicyAuthorization carries no verified identity by @zonotope in #1840
  • perf(query): plan RDF-star annotation chains by cost, elide redundant checks, memoize per-row decodes by @bplatz in #1835
  • perf(stats): share IndexStats by Arc, resolve class lookups on demand, pool planner stats views by @bplatz in #1836
  • test: size in-test polling deadlines for a loaded CI runner by @bplatz in #1852
  • perf(policy): skip subjects the class cache already holds when populating by @jakep36 in #1865
  • release v4.2.1 by @bplatz in #1893

New Contributors

Full Changelog: v4.2.0...v4.2.1

v4.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 22:52
603974f

What's Changed

Features

  • Temporal arithmetic per SEP-0002, and make TZ/TIMEZONE reindex-stable by @bplatz in #1747
  • feat(graphql): GraphQL endpoint over a schema derived from the ledger by @bplatz in #1748
  • SQL graph sources: R2RML over Trino-protocol endpoints, plus the fluree-sql-bridge sidecar by @bplatz in #1749
  • feat(validate): carry the validated ledger t on ValidateReport by @bplatz in #1757
  • browser peer + playground: fluree-db-browser, @fluree/db-wasm, SSE head tracking, and the residency retry loop by @aaj3f in #1715
  • feat(policy): enforce static view policy on Iceberg/SQL graph sources by @bplatz in #1759
  • feat(cli): fluree doc — Fluree Unstructured: documents into a searchable graph by @bplatz in #1760
  • fluree doc: --model and --entities, grounded entity and relation extraction; hybrid search by @bplatz in #1764
  • feat(sql): pushdown lane — one statement per GRAPH block over a SQL source by @bplatz in #1777
  • feat(sql): pushdown lane M1/M2 — MIN/MAX, BIND, widening filters, partitioning, caps, block cache, class policies by @bplatz in #1785
  • feat(sql): pushdown lane M3 — subject policies, expressions, sub-selects, unions, HAVING by @bplatz in #1788
  • feat(stats): fluree-db-stats kernel and on-demand column profiling by @bplatz in #1789
  • feat(materialize): advance a backlogged window by a bounded prefix by @christophediprima in #1649

Bug Fixes

  • fix(query): keep every string-dictionary datatype's own term identity by @aaj3f in #1736
  • fix: make the equijoin-filter fold sound about term equality by @aaj3f in #1728
  • Deduplicate repeated statements in bulk import by @bplatz in #1754
  • fix(indexer): recover a ledger wedged at max novelty by @christophediprima in #1662
  • fix(ingest): store an object-position empty collection as the rdf:nil triple it denotes by @aaj3f in #1744
  • fix: fail closed on unencodable datatype IRIs; keep the membership-join lane join-equivalent on list rows by @aaj3f in #1746
  • fix(query): STR() on a double returns the canonical XSD lexical form by @aaj3f in #1750
  • fix(policy): evaluate every targeted f:query before denying; deterministic policy order by @bplatz in #1761
  • fix(sql): fused SUM/AVG folds over double/text columns, SQLite bridge column typing by @bplatz in #1769
  • fix(transact): give staged views dictionaries that cover their own flakes by @bplatz in #1791
  • fix(consensus): park queued submissions on entry liveness, not a fixed clock by @bplatz in #1792
  • fix(bm25,vector): advance the watermark on an empty change set, don't rebuild by @christophediprima in #1661

Other Changes

  • perf: make filtered-DELETE list-meta hydration O(novelty), not O(retractions × novelty) by @bplatz in #1675
  • fix: match string literals by RDF term identity; normalize language-tag case by @bplatz in #1676
  • fix: two v4.1.6 planner regressions — star-join reorder and membership-join admission by @bplatz in #1674
  • fix: never delete raw-txn blobs inline; tolerate dangling txn refs; add fluree verify by @bplatz in #1677
  • fix(consensus): extract fluree-raft-core and add a replicated kv fragment; fix two waiter-map defects by @bplatz in #1678
  • refactor(consensus): reduce the nameservice through the generic state-machine seam by @bplatz in #1679
  • fix: ledger-cache deadlock, MinIO path-style, and an embeddable Raft node by @bplatz in #1680
  • fix: make IN/NOT IN match encoded resources, price the row lanes max_fuel could not see by @bplatz in #1681
  • feat: graph sync — whole-graph replacement committing only the delta by @bplatz in #1682
  • docs: make PR↔issue reference direction explicit (Fixes / Follow-up / Partially addresses) by @aaj3f in #1692
  • fix(cli): novelty-aware encoded-binding resolution in the table renderer, and never Debug-print a binding by @aaj3f in #1693
  • fix(query): novelty-only-predicate retractions were invisible to the crawl read path by @aaj3f in #1698
  • fix: let a no-op republish complete its raft queue entry by @bplatz in #1716
  • feat: Add sh:sparql (SHACL-SPARQL) constraint support by @bplatz in #1717
  • fix(core): make FlakeMeta's Ord agree with its Eq by @aaj3f in #1727
  • fix(storage): clamp FileStorage ranged reads to the object, and sweep orphaned .tmp staging files by @aaj3f in #1702
  • fix(query): COUNT(*) counts joined rows, not distinct subjects, on an anchored star by @aaj3f in #1706
  • fix(query): keep a VALUES written after an OPTIONAL below it by @aaj3f in #1701
  • fix(stats): reconcile novelty asserts against the base index for user-facing counts by @aaj3f in #1699
  • fix(query): let OPTIONAL extend a row that left the shared variable unbound by @aaj3f in #1724
  • fix(datalog): IRI comparison in rule FILTERs (fails open today) + a diagnostic when a rule can't derive by @aaj3f in #1705
  • perf(transact): take the cached ledger state for the commit window — stop per-commit DictNovelty deep-clones for serial writers by @aaj3f in #1718
  • feat(api): make the background indexer observable and configurable from the embedded API by @aaj3f in #1710
  • fix(server): surface novelty backpressure as 503 + Retry-After with err:db/NoveltyAtMax by @aaj3f in #1719
  • fix(import): publish bulk-import commit heads via ref fast-forward, not the queue contract by @bplatz in #1753
  • group integration tests into grp_* harnesses by @zonotope in #1755
  • split debug info out of dev-profile binaries by @zonotope in #1752
  • Add an offline index-version graph diagnostic by @zonotope in #1622
  • perf(query): seek a bound-term overlay window instead of translating all novelty by @aaj3f in #1732
  • fix(server): accept per-ledger SSE subscriptions on GET /events by @aaj3f in #1730
  • wasm32 groundwork: the engine stack compiles and runs on wasm32-unknown-unknown, native untouched by @aaj3f in #1714
  • Fix reasoning defaults by @zonotope in #1763
  • Make storage-sweep planning proportional to distinct manifests by @zonotope in #1643
  • Guard against integration tests that silently never run by @zonotope in #1756
  • fix(query): range-filter pushdown keeps every conjunct; push xsd:decimal bounds by @bplatz in #1778
  • fix: bound retained index versions by count, not only by age by @christophediprima in #1601
  • fix(materialize): bound the full read a source falls back to when its watermark expires by @christophediprima in #1663
  • feat(r2rml): refuse the graph-map constructs the materializer cannot honor by @christophediprima in #1581
  • stamp provenance on rows leaving — and joining within — a cross-ledger SERVICE by @aaj3f in #1641
  • release v4.2.0 by @bplatz in #1740

Full Changelog: v4.1.6...v4.2.0

v4.1.6

Choose a tag to compare

@github-actions github-actions released this 20 Aug 16:16
a65eb19

What's Changed

Bug Fixes

  • fix(docs): stop embedding internal engineering records; close the docs corpus by @aaj3f in #1654

Other Changes

  • apply rdf set semantics to construct results by @aaj3f in #1634
  • perf(r2rml): multi-fact fused-join generality (K≥2 semi-joins, multi ref group keys) by @aaj3f in #1589
  • preserve fully-retracted history through full index rebuilds by @aaj3f in #1624
  • accept legal aggregate and property-path forms below the parser by @aaj3f in #1629
  • align http dataset-clause semantics with the engine by @aaj3f in #1631
  • tighten indexed fast-path eligibility guards by @aaj3f in #1628
  • make governance default-allow tri-state so ledger config applies by @aaj3f in #1625
  • seed connected values through type-anchored stars by @aaj3f in #1626
  • emit absolute iris in w3c result formats by @aaj3f in #1630
  • refuse graph-source patterns the plan cannot route by @aaj3f in #1632
  • forward the query prologue to remote service sub-queries by @aaj3f in #1633
  • report policy enforcement state in tracked query meta by @aaj3f in #1627
  • fix: don't fail open when a subject's namespace code is undecodable by @bplatz in #1645
  • fix(policy): key the class cache on the graph, not just the subject by @christophediprima in #1580
  • fix(policy): alias the class-cache type (clippy type_complexity, red on main) by @aaj3f in #1658
  • fix: harden the upsert absent-subject skip against an unattached index by @bplatz in #1656
  • fix(indexer): stamp the target ledger_id on incrementally built index roots by @bplatz in #1655
  • perf: stop widening scans for a bound subject absent from the base index by @bplatz in #1657
  • perf: fold a one-row VALUES into its object and cost nested UNION honestly by @bplatz in #1659
  • fix(query): correct three fast paths that diverged from the generic pipeline by @bplatz in #1666
  • fix(query): answer unbound for a calendar field the value does not carry by @bplatz in #1667
  • feat(nameservice): add NameServiceLookup::heads for cheap head reads by @bplatz in #1668
  • fix(storage): treat a zero-length blob as absent, not as empty content by @christophediprima in #1599
  • perf(bm25): scope the incremental indexing query to the subjects that changed by @christophediprima in #1604
  • fix(bm25): worker fixes by @christophediprima in #1618
  • count the NumBig distinct-object slice exactly instead of declining by @aaj3f in #1644
  • fix(materialize): skip materialize targets that already applied the window by @christophediprima in #1647
  • Name terms and the failed constraint in SHACL violation messages by @zonotope in #1646
  • release v4.1.6 by @bplatz in #1660

Full Changelog: v4.1.5...v4.1.6

v4.1.5

Choose a tag to compare

@github-actions github-actions released this 11 Aug 00:15
d767927

What's Changed

Breaking Changes

  • feat(sparql): burn-down Wave 1 — validation passes, grammar tightening, authoritative diagnostics, reifier forms (−121 net registers) by @aaj3f in #1453
  • fix(iceberg): fail closed on merge-on-read delete files (silent stale-row risk) by @aaj3f in #1520

Other Changes

  • feat(sparql): burn-down Wave 2 — GRAPH conformance (D-2), multi-op UPDATE (#1438), BASE resolution, Turtle-star ingest (−31+ registers) by @aaj3f in #1454
  • fix(query): cross-ledger GRAPH queries over indexed data (#1405 bugs 2+3) by @Jackamus29 in #1425
  • feat(iceberg): virtual-dataset info APIs + decimal-FK detection + subject-key fallback + secret redaction by @aaj3f in #1450
  • feat(sparql): burn-down Wave 3 — within-ledger FROM (D-3), UPDATE graph-management (D-5/6), equality/EBV/promotion (D-12, #1447), USING+GRAPH over-delete (#1441), triple-term syntax (−145 tests) by @aaj3f in #1462
  • Fix duplicate triples from re-asserted facts in the V6 incremental indexer by @zonotope in #1508
  • feat(cli): fluree model — governance tooling for access, entities, and class hierarchy by @bplatz in #1516
  • fix: Cypher field-report round — reindex OOM, EXPLAIN, =~, IRI round-tripping, HTTP bulk import, arena sealing by @bplatz in #1518
  • feat: multi-clause Cypher write composition (MERGE chains) via sequential staging by @bplatz in #1519
  • fix: attribute ref-class stats when an endpoint gains its first type by @bplatz in #1488
  • Rework history sidecars as transition logs by @zonotope in #1524
  • release v4.1.3 by @bplatz in #1517
  • fix: keep history entries in the same leaflet as their row by @bplatz in #1526
  • feat: Enrich Cypher transaction commit result for write parity by @bplatz in #1527
  • docs: Add scaling and resilience overview by @bplatz in #1530
  • docs: Correct time-travel and history query documentation by @bplatz in #1533
  • feat: Add auth token and model access disable CLI commands by @bplatz in #1535
  • fix(proxy-storage): resolve advanced index kinds over a remote mount by @aaj3f in #1537
  • chore: Release v4.1.4 by @bplatz in #1538
  • Redact graph source config secrets by @zonotope in #1534
  • Limit recursion depth on turtle imports by @zonotope in #1545
  • Add regression coverage for sub-SELECT aggregate correlation joins by @zonotope in #1542
  • Substitute property-position variables in datalog rules by @zonotope in #1541
  • fix: gate WHERE-level early dedup on aggregate duplicate-insensitivity by @bplatz in #1546
  • Round-trip generic xsd:duration through the binary index by @zonotope in #1544
  • Limit recursion depth in the SPARQL and JSON-LD parsers by @zonotope in #1547
  • perf(virtual): R2RML/Iceberg virtual-dataset performance program — corpus, pruning, fused aggregation, budget forwarding (consolidates #1475–#1507) by @aaj3f in #1507
  • feat(virtual): serverless Lambda-usability + BYO-IAM — admission widenings, capacity guards, typed memory budget (consolidates #1505 + #1514) by @aaj3f in #1514
  • perf(virtual): big-Iceberg-audit implementation — correctness/capacity guards, coverage widenings, harness re-bless, browse-parity, family-C (consolidates the audit program + #1525) by @aaj3f in #1528
  • bench+test: query correctness guardrails — differential harness, baseline gating, and four fast-path fixes by @aaj3f in #1477
  • perf: eliminate per-flake staging cost in bulk upserts by @bplatz in #1549
  • perf: batched read lanes for Cypher relationship-property queries and large UNWINDs by @bplatz in #1553
  • bench: baseline host/corpus identity, phase-share gating, and noise floors by @aaj3f in #1550
  • fix: un-orphan build()'s #[cfg(native)] from with_secret_resolver by @bplatz in #1566
  • feat(BM25): embedded BM25 full-text search over the standard query path + a bm25 CLI by @christophediprima in #1543
  • Land #1528 (Iceberg audit + browse-parity + family-C) onto main by @aaj3f in #1554
  • test: standalone it_minmax bin + aws-gate smoke_minio (vbench follow-ups) by @aaj3f in #1486
  • feat(materialize): fluree materialize — native-twin builder from virtual R2RML/Iceberg datasets by @aaj3f in #1529
  • Wave 4: resolve the eight deferred follow-ups from the #1462 review (#1467-#1474) by @aaj3f in #1483
  • feat(graph-ir): fallible GraphSink protocol, quad capability, statement lifecycle + Turtle ParserOptions conformance by @aaj3f in #1552
  • fix(api): materialize sink call sites — finish() → into_parts() (#1529 × #1552 merge skew) by @aaj3f in #1586
  • BM25 index management over the server API by @zonotope in #1584
  • fix(import): document-scoped blank node identity, and skolem ids SPARQL can write by @aaj3f in #1551
  • fix(turtle): a redeclared prefix must change what later names mean by @aaj3f in #1565
  • CLI agent-surface truth + the manifest rail by @aaj3f in #1571
  • Import: survive low open-file limits — best-effort raise + FD-budgeted index build by @aaj3f in #1591
  • chore(memory): memory-store baseline audit + checkpoint audit tooling by @aaj3f in #1572
  • feat: materialize Iceberg/R2RML graph sources into native ledgers + tracking worker by @christophediprima in #1422
  • fix: stop mapping one VMA per dictionary pack (ENOMEM with memory free) by @christophediprima in #1598
  • perf(r2rml): vectorized fused-aggregate fold + late-rendered decode seam (Gap-4 P1) by @aaj3f in #1582
  • fix: reject SPARQL-style and constant JSON-LD filter expressions (fail-open no-op) by @bplatz in #1593
  • fix: stop hiding user f:-namespace data from variable-predicate scans by @bplatz in #1597
  • fix(indexer): merge novelty into emptied-by-retract leaflets without failing by @bplatz in #1603
  • feat: local-filesystem Iceberg tables (catalog-less Direct mode) by @bplatz in #1611
  • fix(iceberg): warehouse-root resolution for pin resolution and materialize scans by @bplatz in #1613
  • feat(storage): atomic write configuration for file storage by @bplatz in #1612
  • Reclaim superseded and orphaned index artifacts by @zonotope in #1614
  • feat: Forward dictionary pack compaction by @bplatz in #1617
  • chore: Release v4.1.5 by @bplatz in #1621

Full Changelog: v4.1.2...v4.1.5

v4.1.4

Choose a tag to compare

@github-actions github-actions released this 23 Jul 04:46
07316fa

What's Changed

Other Changes

  • fix: keep history entries in the same leaflet as their row by @bplatz in #1526
  • feat: Enrich Cypher transaction commit result for write parity by @bplatz in #1527
  • docs: Add scaling and resilience overview by @bplatz in #1530
  • docs: Correct time-travel and history query documentation by @bplatz in #1533
  • feat: Add auth token and model access disable CLI commands by @bplatz in #1535
  • fix(proxy-storage): resolve advanced index kinds over a remote mount by @aaj3f in #1537
  • chore: Release v4.1.4 by @bplatz in #1538

Full Changelog: v4.1.3...v4.1.4

v4.1.3

Choose a tag to compare

@github-actions github-actions released this 20 Jul 23:25
7145a38

What's Changed

Breaking Changes

  • feat(sparql): burn-down Wave 1 — validation passes, grammar tightening, authoritative diagnostics, reifier forms (−121 net registers) by @aaj3f in #1453

Other Changes

  • feat(sparql): burn-down Wave 2 — GRAPH conformance (D-2), multi-op UPDATE (#1438), BASE resolution, Turtle-star ingest (−31+ registers) by @aaj3f in #1454
  • fix(query): cross-ledger GRAPH queries over indexed data (#1405 bugs 2+3) by @Jackamus29 in #1425
  • feat(iceberg): virtual-dataset info APIs + decimal-FK detection + subject-key fallback + secret redaction by @aaj3f in #1450
  • feat(sparql): burn-down Wave 3 — within-ledger FROM (D-3), UPDATE graph-management (D-5/6), equality/EBV/promotion (D-12, #1447), USING+GRAPH over-delete (#1441), triple-term syntax (−145 tests) by @aaj3f in #1462
  • Fix duplicate triples from re-asserted facts in the V6 incremental indexer by @zonotope in #1508
  • feat(cli): fluree model — governance tooling for access, entities, and class hierarchy by @bplatz in #1516
  • fix: Cypher field-report round — reindex OOM, EXPLAIN, =~, IRI round-tripping, HTTP bulk import, arena sealing by @bplatz in #1518
  • feat: multi-clause Cypher write composition (MERGE chains) via sequential staging by @bplatz in #1519
  • fix: attribute ref-class stats when an endpoint gains its first type by @bplatz in #1488
  • Rework history sidecars as transition logs by @zonotope in #1524
  • release v4.1.3 by @bplatz in #1517

Full Changelog: v4.1.2...v4.1.3

v4.1.2

Choose a tag to compare

@github-actions github-actions released this 10 Jul 14:45

What's Changed

Other Changes

  • fix(turtle): resolve RFC 3986 §5.3 fragment refs against @base by @aaj3f in #1399
  • (Iceberg) Apply Vended-Credential client.region to the S3 Client by @aaj3f in #1400
  • (R2RML) Error on Colliding TriplesMap IRIs & Report Table Count by @aaj3f in #1401
  • (Iceberg) Expose OAuth2 scope/audience for REST Catalog Auth by @aaj3f in #1402
  • (CLI) Route Queries Targeting Iceberg/R2RML Graph Sources by @aaj3f in #1404
  • (R2RML) Default Mapping media_type to Turtle at Both Compile Sites by @aaj3f in #1403
  • Fix select * Stack Overflow on the query_from / build_client Path by @aaj3f in #1409
  • perf: Iceberg/R2RML graph-source performance — planning, catalog caching, LIMIT + row-group pruning by @bplatz in #1406
  • fix(query): honor @type in JSON-LD select-crawl projections by @bplatz in #1410
  • perf(iceberg/r2rml): Arrow reader, LIMIT/predicate pushdown, and bound-object query support by @bplatz in #1411
  • feat(r2rml): bound subjects, decimal/double/date & ref object constants, star fusion, subject-key pushdown by @bplatz in #1413
  • Feature/iceberg gcs reader by @christophediprima in #1392
  • fix(query): cross-ledger explicit projection drops foreign-namespace predicates by @Jackamus29 in #1417
  • fix(query): resolve hydration roots across the default-graph union by @Jackamus29 in #1418
  • Local dev tooling for Raft + QueuedTransactor refactor by @zonotope in #1414
  • (Iceberg/R2RML) Deterministic Catalog --> R2RML Engine by @aaj3f in #1407
  • docs: Surface Cypher in overviews + minor repo cleanup by @bplatz in #1393
  • fix(mcp): stop memory tool hangs from s-expression parser infinite loop by @bplatz in #1421
  • feat: sh:class value-sets from the shapes graph, same-ledger and cross-ledger by @bplatz in #1420
  • fix(policy): enforce f:policySource and config policy defaults on writes by @bplatz in #1419
  • feat: SHACL property paths and full constraint-coverage sweep by @bplatz in #1423
  • feat: SHACL validation reports — fluree validate CLI, Rust API, and HTTP endpoint by @bplatz in #1424
  • feat: always-on RDFS entailment for SHACL and policy enforcement by @bplatz in #1426
  • feat: Remote mounts, serving tiers, and peer-mode CLI by @bplatz in #1428
  • feat: event-time commits with @recorded: audit-axis time travel by @bplatz in #1429
  • fix: fulltext() scoring on configured predicates with novelty present, plus fulltext and vector scoring perf by @bplatz in #1430
  • fix: filtered-DELETE staging livelock on novelty-heavy ledgers by @bplatz in #1431
  • perf: warm-on-write read caching + leaf-split to fix reindex-churn read regression by @bplatz in #1415
  • feat: stable _:fdb blank-node ids addressable in queries and updates by @bplatz in #1432
  • [FIX] SPARQL Parsing of sub-SELECT as a Set-Operation Operand by @aaj3f in #1436
  • feat: Aggregate netted branch diff in merge preview (include_changes) by @bplatz in #1434
  • (SPARQL) Full W3C Suite in CI w/ Registers for Skip/Ignore by @aaj3f in #1437
  • fix: close Cypher benchgraph gaps and add benchmark-critical fast paths by @bplatz in #1448
  • feat: Bolt protocol endpoint + Cypher performance campaign by @bplatz in #1449
  • feat: openCypher write path, LOAD CSV, and expression/pattern surface by @bplatz in #1455
  • test(sparql): burn-down Wave 0 — harness hygiene, parser accept-more, lexer/formatter, expression high-yield (−80 registers) by @aaj3f in #1452
  • Raft query peer event bus unification by @zonotope in #1427
  • Raft implementation hardening by @zonotope in #1459
  • fix(policy): honor policy-class when identity is also present (same-ledger) by @bplatz in #1457
  • feat: policy write verbs and multi-language conditions by @bplatz in #1460
  • perf: batched frontier expansion for property-path traversals by @bplatz in #1461
  • release v4.1.2 by @bplatz in #1433

New Contributors

Full Changelog: v4.1.1...v4.1.2