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
- Run
pnpm checkfrom the project root. - Locate the first diagnostic code and exact source span.
- Identify which semantic boundary is unsupported or ambiguous.
- Change the authored intent; never patch generated artifacts.
- Rerun the same check before investigating follow-on failures.
Common categories
Source shape
Missing, duplicate, static, inherited, or unsupported compiler primitives.
Lifecycle authority
Illegal state writes, ambiguous providers, invalid slot placement, or identity conflicts.
Execution boundary
An arbitrary call, effect, resource, or server handoff cannot be admitted safely.
Durable value
State, forms, resources, metadata, or boundary values violate their codec.
Machine-readable diagnostics
pnpm exec presolve check app/routes/index.tsx --format jsonEditors 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.
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.