Immutable
release. Only release title and notes can be modified.
No API changes. Build hardening, supply-chain verification, and one undefined-behavior fix.
Changed
- Compiler and linker hardening: POSIX builds now follow the OpenSSF hardening baseline — stack protector,
_FORTIFY_SOURCE=2, format-string hardening, full RELRO, non-executable stack, and arch-gated control-flow integrity (Intel CET on x64, PAC/BTI on arm64). Windows ARM64 gains/Qspectreand/guard:signret, the backward-edge protection it previously lacked. - Vendored SQLite integrity: the amalgamation sync now verifies the download against a SHA3-256 pinned in-tree and refuses to vendor a mismatch, instead of compiling whatever it fetched.
Fixed
- Empty changeset undefined behavior:
session.changeset()/.patchset()on a session with no recorded changes calledmemcpy(NULL, NULL, 0), which is undefined behavior even at zero length. Results are unchanged (still a zero-lengthUint8Array); the UB is gone. Surfaced by the new UndefinedBehaviorSanitizer pass in CI.
Commits
Full Changelog: v2.0.0...v2.1.0