Skip to content

Szpont Engine 0.3.1 — Recovery and clock-safe workflows

Choose a tag to compare

@dalkedev dalkedev released this 05 Nov 14:37
· 41 commits to main since this release
25759a6

Szpont Engine 0.3.1 fixes recovery and ordering failures in durable work sessions.

  • Retry scoped Markdown memory commits after a transient Git failure while preserving operator staging, tracked deletions and renames.
  • Preserve same-thread FIFO through wall-clock corrections with an immutable acceptance ledger. Continued workflows still yield fairly to other threads.
  • Charge active execution with a monotonic clock so clock changes cannot refund or prematurely exhaust workflow budgets.
  • Preserve the original timeout or cancellation cause when a gracefully stopping CLI emits a later generic failure.
  • Report the installed browser package version during MCP initialization.

Container image

Linux amd64 and arm64 images include BuildKit provenance and an SPDX SBOM. Pin the verified immutable image reference:

docker pull ghcr.io/dalkedev/szpont-engine@sha256:bebf6bf794be4a11d16f05b3b49fbdc2d86c4a9dfa84175c7899e634ef377430

The release workflow builds each architecture once, runs the actual offline Codex sandbox and persistent-state smoke tests against that artifact, and promotes those same verified OCI manifests without rebuilding.

Upgrade and rollback

Back up state and the matching private workspace before starting 0.3.1. Public SQLite schema 1 migrates to 2. Historical jobs retain their previous (created_at,id) order; only new intake receives the new acceptance sequence. Existing jobs, sessions, checkpoints and maintenance records remain intact.

The old 0.3.0 binary rejects schema 2. To roll back, stop the engine and restore the matching pre-upgrade database snapshot into a new state directory, reconcile intervening work, and switch the binary and workspace together. Public and private deployment databases are not interchangeable.

See the state backup guide and work-session documentation.

Validation and limits

  • Full public engine and utility suites: 198 passed on Node 24.
  • Hash-locked browser offline suite: 36 passed on Python 3.12, including an actual in-process MCP initialization exchange.
  • Real temporary Git repositories and fake-CLI subprocesses exercise transient commit failure, operator staging, clock changes, migration rollback, workflow continuation/recovery and late shutdown diagnostics.
  • Fresh merge-commit CI: engine, browser, public-tree hygiene and native amd64/arm64 sandbox jobs passed.
  • Release workflow: tagged-source verification, both exact-artifact native sandbox tests and digest-preserving GHCR promotion passed.
  • Independent anonymous registry verification confirmed both source revision labels, manifest/config hashes, and the SPDX/SLSA attestation subjects.
  • Anonymous pinned-image pull and local arm64 sandbox smoke passed on Docker Desktop's Linux VM. The actual Codex sandbox allowed workspace/artifact/cache writes, denied writes to the separate auth volume, and reopened synthetic state twice without replacing it. Throwaway volumes were removed afterward.

These tests use synthetic state without live model requests or public posts. The engine image includes the Codex CLI; it requires your separate authentication and account allowance. The optional Camoufox browser service is outside the image. This release does not automatically update existing private deployments.

Source revision: 25759a62404ab9893af80c103b3c9b4632acf044.

Full changelog

Compare 0.3.0 → 0.3.1