Skip to content

5.0.0

Choose a tag to compare

@gfreezy gfreezy released this 13 Sep 07:40
· 11 commits to main since this release

Embedded raw-value types now use their RawValue SQLite codec for storage and queries. String enums store plain TEXT, integer enums use INTEGER, and floating-point enums use REAL. This release also removes legacy sync migration APIs and compatibility code.

Breaking changes

  • Existing business databases containing JSON-encoded enum columns require an application-owned versioned migration before using the new codec. String enums need JSON unwrapping; numeric enums also need the matching INTEGER or REAL column affinity. Nested JSON documents retain their Codable format.
  • Removed LegacySyncMigration, the SyncOptions.migration argument, legacy sync file import/detection, and sync migration markers. Legacy sync storage is not migrated.
  • Source-based schema extraction requires referenced custom codec declarations in its input files. Unsupported or unresolved storage metadata produces a diagnostic instead of silently defaulting to TEXT.

Improvements

  • RawValue delegation supports type aliases and custom SQLite codecs without an enum type-name whitelist.
  • Raw-value query predicates support optional values, comparisons, membership, ranges, and SQL interpolation through protocol constraints. Explicit SQLiteValueComparable conformance can use the default raw-value projection.
  • JSON storage metadata is independent of queryability. Custom column types and decoding follow codec metadata; scalar enum defaults no longer receive a JSON-object SQL default.
  • Changelog operations use the shared sqliteEncode() API.

Validation

Implementation validation included 401 passing tests before sync compatibility cleanup, followed by 61 passing focused sync/connection tests after cleanup. Local tests, builds, formatting, and lint checks were skipped for this release as requested. The release workflow builds, smoke-tests, packages, and verifies the published macOS arm64 CLI.

Enum storage and upgrade guidance · Versioned migrations