Built releases

The release does not know where it will run.

A .presolved file is the application package produced by Presolve: application semantics and workload identity without environment-specific provider selection.

Docs / Built releases

Portability starts with a stable thing to move. Presolve packages validated application semantics and immutable workload identity once, then evaluates that release against environments later.

Bundle format

Current .presolved format: 0.2.

orders.presolved
├── manifest.json
└── artifacts/
    ├── api.wasm
    └── worker.wasm

The archive is deterministic tar. Component artifacts are embedded under artifacts/<workload>.wasm. Container workloads record immutable OCI descriptor identity rather than registry location, tags, credentials, or pull URLs.

Manifest

The canonical manifest carries application identity.

IncludedWhy it matters
application metadata + requirementsdefines the portable application semantics
workload declarationsdefines executable constituents
artifact path, digest, size, media typebinds Component bytes transitively into release identity
immutable OCI descriptor identitybinds container content without binding registry location
interfaces + relationshipspreserves application-local topology
Identity

Logical release identity is derived from canonical manifest bytes.

Application semanticsnormalized manifest model
+
Artifact identitydigests + descriptors
→
Canonical serializationrelease digestsha256:…
ChangeRelease identity
application semantics changechanges
embedded workload bytes changechanges transitively through artifact digest
OCI content descriptor changeschanges
environment/provider selection changesmust not change
re-encode same logical releaseremains the same
Proof technique

Presolve verifies both logical identity and exact archive bytes.

Canonical release digestsha256:fa8cb59cf09dd5ed507d865fd4b739f6229e1422367bfe1f9afdfba6adc57c5e
+
Encoded archive SHA-25645e6f9dca20dce54337f34f403e772e510a1f6b6a333a44112d82c09af014344

The first identifies the logical Presolve release. The second proves that the exact file passed through planning and execution did not mutate. Same-release proofs record both before environment selection and verify both afterward.

What is absent

Deployment details are intentionally excluded.

Inside the release
  • application requirements
  • workload identity
  • capability requirements
  • resource/network intent
  • application topology
Outside the release
  • selected environment ID
  • selected provider IDs
  • deployment plan
  • credentials/secrets
  • endpoints, buckets, database paths
  • registry locations and deployment placement
Workload identity

Components and containers participate differently.

Component workload

The .wasm artifact is embedded in the archive. Its digest, size, and media type are recorded in the manifest.

Container workload

The release records the immutable OCI image manifest/index descriptor. Registry hostname, repository, tag, credentials, and pull URL remain outside application identity.

Verification

Decoding revalidates the release.

The bundle decoder verifies supported format, safe paths, duplicate/unexpected entries, topology, artifact shape, embedded artifact presence, OCI descriptor form, artifact sizes/digests, and capability requirement structure. Malformed or adversarial archives are rejected before compatibility checks or execution.

presolve build
presolve inspect dist/orders.presolved

cd path/to/environment
presolve plan /absolute/path/to/dist/orders.presolved

The last command evaluates the already-built release against the environment in the current directory. It does not rebuild the application.

Canonical bundle reference on GitHub ↗
Evidence

The invariant is executable.

KV, object storage, and SQL each have public same-release proofs. Queue has a detached-release capability proof with one provider and remains the next target for cross-provider substitution.

Explore all proofsDigests, provider matrices, commands, semantic differences, and explicit non-claims.