These docs cover 0.2.0-beta.26. Each guide distinguishes supported beta behavior, explicit deployment boundaries, and retained 0.1 compatibility material.

Browse documentationAll guides

Reference · failure model

Diagnostics

Presolve fails closed when it cannot prove required application semantics. A diagnostic is a compiler product with stable identity, source evidence, and a concrete reason lowering cannot continue safely.

Read the first error first

  1. Run pnpm check from the project root.
  2. Locate the first diagnostic code and exact source span.
  3. Identify which semantic boundary is unsupported or ambiguous.
  4. Change the authored intent; never patch generated artifacts.
  5. Rerun the same check before investigating follow-on failures.

Common categories

DECLARATION

Source shape

Missing, duplicate, static, inherited, or unsupported compiler primitives.

OWNERSHIP

Lifecycle authority

Illegal state writes, ambiguous providers, invalid slot placement, or identity conflicts.

CAPABILITY

Execution boundary

An arbitrary call, effect, resource, or server handoff cannot be admitted safely.

SERIALIZATION

Durable value

State, forms, resources, metadata, or boundary values violate their codec.

Machine-readable diagnostics

pnpm exec presolve check app/routes/index.tsx --format json

Editors and CI should consume JSON output from the project-local CLI. The official VS Code extension maps those exact compiler spans into the Problems panel.

TypeScript can be green while Presolve is not

TypeScript acceptance proves language types. It does not prove that Presolve can derive identity, ordering, dependencies, serialization, DOM operations, or capability behavior. The compiler diagnostic is authoritative for application lowering.

Package-call diagnostics

For a terminal package call, TypeScript owns module and declaration errors, Vite owns bundle compatibility, and Presolve owns the admitted Action shape and lifecycle. PSV2P1001 reports a call that cannot be joined to exact named-import authority. At runtime, PSR_PACKAGE_INVOCATION_MODULE_FAILED reports a missing or invalid generated registry, while PSR_PACKAGE_INVOCATION_FAILURE records an admitted export that throws or rejects.

The package error is preserved

Presolve reports the failed activation without claiming to understand the implementation. Include the package name and version, exact source call, generated invocation artifact, and retained package error when filing an issue.

Continue to the beta support matrix →