Skip to content

v0.4.0

Choose a tag to compare

@hawkingrei hawkingrei released this 07 Oct 02:10
· 167 commits to main since this release
9c432e3

What's Changed

  • docs(contributing): define HawDB issue and PR standards by @hawkingrei in #727
  • feat(storage): validate only touched records on data commits by @hanxuanliang in #726
  • refactor(executor): generalize BindingBatchSource over the plan-node type by @hawkingrei in #729
  • refactor(plan): move SortItem/SortKey/SortDirection into hawdb-expression by @hawkingrei in #731
  • docs(contributing): require an issue for every pull request by @hawkingrei in #738
  • chore(executor): make the spill budget tracker shareable by @hawkingrei in #730
  • feat(wasm): enable the in-memory browser runtime by @hawkingrei in #736
  • chore(lint): enforce pre-commit checks with prek by @hawkingrei in #741
  • feat(api): add optimizer statistics commit-lag config by @hanxuanliang in #725
  • feat(storage): bound path-statistics enumeration by a visit budget by @hanxuanliang in #724
  • perf(api): acquire canonical snapshots during embedded writes by @hawkingrei in #742
  • refactor(plan): rename hawdb-plan to hawdb-plan-cypher by @hawkingrei in #743
  • feat(vector-projection): default RaBitQ builds to 4-bit codes by @hawkingrei in #746
  • refactor(executor): run spill-compaction pairs on the shared executor pool by @hawkingrei in #744
  • refactor(storage): route implementation imports through owner modules by @hawkingrei in #752
  • fix(executor): admit concurrent spill merges within memory budgets by @hawkingrei in #747
  • fix(build): keep macOS Bazel execution tools unstripped by @hawkingrei in #750
  • test(search): verify tokenizer scope reuse ownership by @hawkingrei in #751
  • test(build): baseline isolated composition profiles and footprint by @hawkingrei in #753
  • fix(cypher): preserve WITH identity and lookup window boundaries by @hawkingrei in #758
  • fix(qualification): enforce exact corpus comparison gates by @hawkingrei in #756
  • test(cypher): verify UNWIND transaction equivalence and WAL boundary by @hawkingrei in #754
  • fix(storage): preserve MVCC across writes and grouped commits by @hawkingrei in #759
  • build(hawdb): add graph-text Bazel profile by @hawkingrei in #760
  • fix(executor): complete and verify the public request facade by @hawkingrei in #748
  • feat(storage): narrow constraint-preserving update conflicts by @hawkingrei in #761
  • test(search): make the Windows platform suite portable by @hawkingrei in #767
  • fix(cypher): validate bounded MATCH before normalization by @hawkingrei in #766
  • fix(search): guard mutation serving and verify publication protocol by @hawkingrei in #764
  • test(search): reserve independent allocation fixture directories by @hawkingrei in #771
  • test(storage): compare native missing descriptor errors by @hawkingrei in #772
  • fix(cypher): preserve pipeline plan-cache eligibility by @hawkingrei in #770
  • feat(search): prune lexical blocks with block-max bounds by @hawkingrei in #773
  • fix(search): validate mutation retractions against target records by @hawkingrei in #781
  • test(concurrency): verify escalation after write conflicts by @hawkingrei in #763
  • feat(query): make the scoring contract executor-consumable by @hawkingrei in #786
  • test(concurrency): verify aged background writer progress by @hawkingrei in #762
  • feat(sql): support FROM-less SELECT and add version() by @hawkingrei in #789
  • feat(query): add the scoring rerank operator by @hawkingrei in #787
  • docs(storage): specify durable COW branch lifecycle by @hawkingrei in #790
  • perf(fuzz): parallelize slow differential campaigns, right-size Bazel test sizes by @hawkingrei in #795
  • perf(optimizer): elide sorts over proven ordered ranges by @hawkingrei in #791
  • feat(storage): add validated branch catalog codec by @hawkingrei in #793
  • test(search): measure CJK block-max pruning by @hawkingrei in #792
  • feat(storage): publish immutable content-addressed objects by @hawkingrei in #794
  • feat(search): publish and serve bounded mutation segments by @hawkingrei in #783
  • feat(storage): publish sealed root before branch head handoff by @hawkingrei in #796
  • feat(storage): create isolated child branch head by @hawkingrei in #797
  • feat(storage): add conservative immutable object reclamation by @hawkingrei in #798
  • feat(storage): integrate GraphStore immutable-root handoff by @hawkingrei in #799
  • feat(storage): wire isolated branch creation through GraphStore by @hawkingrei in #800
  • test(storage): qualify immutable-root handoff failure by @hawkingrei in #801
  • feat(storage): retain live branches during object reclamation by @hawkingrei in #802
  • feat(api): add typed branch metadata lifecycle by @hawkingrei in #803
  • feat(api): support branch name selectors by @hawkingrei in #805
  • fix(storage): serialize catalog mutations under metadata lease by @hawkingrei in #804
  • feat(api): create branches from sealed parent heads by @hawkingrei in #806
  • docs(storage): revise branch DDL and durability contract by @hawkingrei in #808
  • docs(sql): specify branch selection and recovery follow-ups by @hawkingrei in #809
  • feat(branch): remove automatic expiry from catalog lifecycle by @hawkingrei in #810
  • docs(storage): revise branch lifecycle model by @hawkingrei in #811
  • feat(storage): bind sealed roots to immutable manifests by @hawkingrei in #812
  • refactor(search): replace SimSIMD scoring by @hawkingrei in #813
  • feat(sql): inspect durable branch catalog by @hawkingrei in #814
  • fix(storage): retain duplicate-content checkpoint bindings by @hawkingrei in #816
  • feat(storage): admit branches from sealed roots by @hawkingrei in #822
  • fix(storage): make branch catalog deletion atomic by @hawkingrei in #821
  • fix(qos): wire host RSS admission into embedded queries by @hawkingrei in #824
  • feat(wasm): add a serial browser query playground by @hawkingrei in #823
  • feat(branch): isolate SQL runtimes and bound storage descriptors by @hawkingrei in #825
  • test(storage): qualify native descriptor exhaustion recovery by @hawkingrei in #830
  • fix(qualification): validate nested graph profile evidence by @hawkingrei in #832
  • perf(storage): bound branch catalog validation work by @hawkingrei in #833
  • fix(api): publish reads outside the writer lock by @hawkingrei in #826
  • feat(bindings): add python bindings for the embedded API by @hanxuanliang in #838
  • docs(search): specify bounded large-document lifecycle by @hawkingrei in #842
  • fix(storage): preserve Windows catalog readers and require platform coverage by @hawkingrei in #829
  • fix(storage): preserve FD rejection in derived recovery and reads by @hawkingrei in #841
  • fix(branch): defer project admission and persist namespace dependencies by @hawkingrei in #835
  • fix(storage): admit derived projection and cleanup descriptors by @hawkingrei in #839
  • build(python): add native Bazel build and test targets by @hawkingrei in #844
  • ci(deps): configure Dependabot updates by @hawkingrei in #848
  • ci(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #855
  • build(deps): bump the bazel-minor-and-patch group with 4 updates by @dependabot[bot] in #851
  • ci(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #854
  • build(deps): bump sysinfo from 0.38.4 to 0.39.6 by @dependabot[bot] in #858
  • build(deps): bump opentelemetry from 0.31.0 to 0.33.0 by @dependabot[bot] in #860
  • feat(storage): recover pending creates and reclaim branch artifacts by @hawkingrei in #864
  • build(deps): bump the cargo-minor-and-patch group across 1 directory with 6 updates by @dependabot[bot] in #856
  • feat(search): stream large documents through the mutable lifecycle by @hawkingrei in #847
  • ci(deps): bump actions/setup-python from 5 to 7 by @dependabot[bot] in #852
  • build(deps): bump rules_python from 1.7.0 to 2.3.4 by @dependabot[bot] in #853
  • build(deps): bump pytest from 8.4.2 to 9.1.1 in /bindings/python by @dependabot[bot] in #850
  • build(deps): bump sqlparser from 0.61.0 to 0.63.0 by @dependabot[bot] in #857
  • build(deps): bump jieba-rs from 0.10.3 to 0.11.0 by @dependabot[bot] in #859
  • test(bazel): give root suite temporary timeout headroom by @hawkingrei in #871
  • test(bazel): give non-FTS search profiles measurement headroom by @hawkingrei in #873
  • test(fuzz): give append seed 7 finite deadline headroom by @hawkingrei in #876
  • test(executor): extend the spill compaction campaign deadline by @hawkingrei in #878
  • test(search): accept either retained memory budget rejection by @hawkingrei in #882
  • fix(executor): bound distinct output and release retained state by @hawkingrei in #883
  • docs(optimizer): qualify current access costs on macOS by @hawkingrei in #881
  • refactor(cypher): make clause pipelines the default MATCH AST by @hawkingrei in #868
  • chore(release): align 0.4.0 package and build versions by @hawkingrei in #866

New Contributors

Full Changelog: v0.3.0...v0.4.0