Repository navigation
v0.3.0 — Bounded reads and observable runtime costs
Completed receipt replay now reads one validated committed snapshot without requesting SQLite's writer reservation. New execution claims still reread under BEGIN IMMEDIATE; an absent or pending snapshot never authorizes a tool call. Custom stores without read retain the transaction path.
Persisted-record and migration queries bound values before they cross from SQLite into JavaScript, including record IDs and schema metadata. UTF-16 databases remain supported, and the existing exact UTF-8 decoder limit still applies. This does not impose a global SQLite or process memory limit. Storage schema remains v2; v0.2 records require no migration.
Run npm run benchmark:runtime for raw operation latencies, one/four-process workloads, held-writer controls, event-loop probes and database-file growth. Each report identifies its source, build, lockfile and environment. New operating guidance covers synchronous work, lock errors, backup age and recovery boundaries.
Release attachments include the package archive, crash-control and runtime-cost reports from the final source's six CI environments, build provenance and SHA-256 checksums. Runtime observations carry no timing pass threshold or availability SLA. The API remains synchronous; a completed-read fast path does not make writes or reads asynchronous.
The raw reports retain contention failures: each Windows environment recorded one SQLITE_BUSY in its four-process execution batch. The Linux and macOS batches and the other Windows batches recorded none. These errors remain in the reported samples and elapsed batch time; successful-operation rates exclude failed attempts from their numerator. The six-second held-writer control is reported separately. No rerun was selected to remove the two errors.
This is an independent reference implementation. Automatic recovery still requires the downstream idempotency contract and a finite retry-admission window; there is no cross-service exactly-once guarantee. The package is distributed here as an archive, with no npm registry publication implied.