Skip to content

0.4.0 - 2026-08-12

Choose a tag to compare

@github-actions github-actions released this 12 Aug 07:45

Release Notes

Breaking release — upgrading needs action. Required migration steps are in
docs/UPGRADING.md.

Breaking changes

  • types: breaking: Timestamp is microseconds, and its wire form is RFC 3339
  • storage: breaking: Two orthogonal version counters on the manifest
  • breaking: Rename the schema serial, and bake an engine generation beside it
  • parser: breaking: Timestamp declares its precision
  • codegen: breaking: Every generated wire form is the RFC 3339 string
  • codegen: breaking: Allocate a +timestamp identity, and floor what is written

Features

  • parser: Warn that &/^ on the identity field has no effect (#258)
  • storage: Carry per-field allocation high-water marks in the manifest
  • parser: Reject integer autos that are not conflict-visible
  • codegen: Allocate +u32/+u64 at create, seeded by scan and a persisted floor
  • codegen: Emit a sequence claim key for bare integer autos
  • parser: Accept a bare non-unique integer auto
  • storage: Borrow a fixed column's slot instead of copying it (#238)
  • parser: string(N) and string(N!) parse to a fixed-width inline type (#238)
  • codegen: Generate the inline string column, end to end (#238)
  • validation: The semantic rules for string(N) (#238)
  • codegen: Resolve a foreign key to its target's identity type
  • codegen: Every surface keys a relation on the target's own id
  • codegen: A junction keys each endpoint on its own identity
  • parser: Report an identity cycle, an inherited key width, and an unholdable junction key
  • parser: A +timestamp identity must be named id and declared us
  • codegen: Generate the engine-format migration hop
  • cli: Forgedb migrate engine
  • types: InlineStr, a Copy fixed-capacity string key
  • parser: A string identity carries a declared width, and no @UTF8
  • codegen: A string identity generates an InlineStr key
  • codegen: An identity is checked against the URL alphabet at write
  • parser: One identity predicate, and one key-type predicate, on the AST
  • parser: The identity type allow-list, landing once
  • codegen: Reconnect the coordinator client in both error arms (#274)
  • codegen: Emit a CorsLayer and check WebSocket origins (#140)
  • cli: Wire FORGEDB_CORS_ORIGINS through the generated scaffold (#140)
  • codegen: Carry the buffer slot on the scan view (#226)
  • codegen: Emit the borrowed full-record page view (#226)
  • codegen: Emit the __with_page scan-and-page scope (#226)

Bug Fixes

  • codegen: Enforce &/^ on non-identity auto fields (#258)
  • codegen: Persist the auto-increment floor before compaction destroys the rows
  • codegen: Parenthesize the junction frame's slot before try_into
  • codegen: id wins the identity by name, not by declaration order
  • codegen: The REST id parse resolves the identity type, not _ => Uuid
  • codegen: The browser replica parses a string key
  • codegen: An FK to a string key is an inline-string column everywhere
  • docs: Two schema examples in SCHEMA.md that never parsed
  • coordinator: Couple the client's I/O deadline to the grant wait (#274)
  • codegen: Read the page view's scan fields by value, not by no-op clone (#226)

Performance

  • codegen: Serialize the live list page from the scan buffers (#226)
  • codegen: Hoist the unfiltered-list predicate out of the per-row loop
  • codegen: Emit __with_fast_page, the unfiltered list read
  • codegen: Route the unfiltered, unsorted list through the fast page

Install forgedb 0.4.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/hoodiecollin/forgedb/releases/download/v0.4.0/forgedb-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install hoodiecollin/tap/forgedb

Install prebuilt binaries into your npm project

npm install @hoodiecollin/forgedb@0.4.0

Download forgedb 0.4.0

File Platform Checksum
forgedb-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
forgedb-x86_64-apple-darwin.tar.xz Intel macOS checksum
forgedb-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
forgedb-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
forgedb-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum