Skip to content

v0.22.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 07:15

slater v0.22.1

Whole-codebase review remediation: 46 findings fixed — 40 from a full
security/correctness/performance review of the codebase, plus 6 follow-ups
discovered while fixing those — each landed with a regression test and a
clean-room verification of the integration branch.

Security & robustness

  • Every untrusted-input decode path is now bounded: the Bolt PackStream decoder,
    zstd block decompression, the on-disk column/segment/index decoders, the
    property-value wire format, and query nesting depth. A malformed or hostile
    input can no longer drive an unbounded allocation or a stack-overflow abort.
  • The whole pre-authentication connection window is bounded — TLS handshake,
    reads, and writes each on one deadline — and password verification and write
    execution now run off the async reactor behind concurrency caps, so a
    connection or login flood can no longer stall the server for everyone.
  • Object-store integrity re-hashes an object body when the store carries no
    server-side checksum, instead of silently falling back to a length-only check.

Correctness

  • ORDER BY direction and DISTINCT are read from the parsed keyword rather than a
    substring scan of the clause text.
  • Graph export round-trips every node label and backtick-quotes identifiers, so a
    dump rebuilds faithfully and cannot inject into the rebuild.
  • The write-ahead log rolls back a partially written batch and recovers from a
    poisoned lock, closing the case where an unacknowledged write could be
    resurrected on replay; segment creation fsyncs its parent directory.
  • Integer arithmetic overflow now errors cleanly instead of wrapping silently,
    rand() is uniform over [0,1), and relationship-uniqueness is enforced across
    fixed-length patterns.

Performance

  • The block cache and the decoded-block cache are sharded with a lock-free read
    path, so hit throughput scales with cores instead of collapsing under
    contention.
  • Anchor scans stream in bounded windows, so LIMIT short-circuits and resident
    memory stays bounded whether or not a write delta is present.

Resident memory remains bounded independent of graph size: a 90M-node /
1.5B-edge graph serves within the documented few-hundred-MB target.

Full Changelog: v0.22.0...v0.22.1