Skip to content

TML-3099: framework tail onto structured codes; codec boundaries pass structured envelopes - #1063

Merged
wmadden-electric merged 8 commits into
mainfrom
tml-3099-error-codes-framework-tail
Jul 27, 2026
Merged

TML-3099: framework tail onto structured codes; codec boundaries pass structured envelopes#1063
wmadden-electric merged 8 commits into
mainfrom
tml-3099-error-codes-framework-tail

Conversation

@wmadden-electric

Copy link
Copy Markdown
Contributor

Linked issue

Refs TML-3099 (error consolidation slice 6 — the final sweep slice, under umbrella TML-3067). Follows the adapters/targets sweep (#1049) and the extensions sweep (#1053).

At a glance

// packages/1-framework/3-tooling/cli/src/load-ts-contract.ts
throw contractSourceError('CONTRACT.SOURCE_IMPORT_DISALLOWED', message, {
  meta: { allowlist, disallowed },
});

Before this PR the framework core, CLI, SQL, and Mongo planes still carried ~250 bare throw new Error(...) sites. This slice finishes the sweep: the repo-wide bare-throw ratchet lands at 47 (examples/demo apps plus a handful of deliberate keeps), down from ~538 when the effort started. Every message string is preserved byte-for-byte.

Decision

The final error-consolidation slice puts the framework tail onto the ADR 239 scheme and closes the boundary follow-up from #1053:

  1. 252 sites converted across 1-framework (105), 2-sql (71), and 2-mongo-family (60), plus the two mongo-driver switch fallbacks: 199 structured (186 reusing 40 published codes), 42 InternalError, 5 assertNever, 6 deliberate keeps.
  2. Only 5 new codes: CONTRACT.EXPORT_INVALID / SOURCE_LOAD_FAILED / SOURCE_IMPORT_DISALLOWED (CLI TypeScript-contract loading), MIGRATION.DESCRIBE_INVALID, PSL.FORMAT_OPTION_INVALID.
  3. Four bespoke error classes fold away. The CLI-internal ContractValidationError (non-breaking) and three exported classes — ConfigValidationError, ConfigFileNotFoundError, DomainNamespaceResolutionError — whose removal is recorded as framework-error-classes-removed in both 0.16→0.17 upgrade recipes. Eight other classes were audited and deliberately kept (the mechanism classes, two already-structured ones, internal control-flow tokens, the driver transport surface).
  4. Codec boundaries now pass through any structured envelope. The SQL encode/decode boundaries widen their pass-through from isRuntimeError to isStructuredError, the mongo decode boundary gains a pass-through it never had, and the mongo adapter's encode boundary drops its exact-code check — structured extension-codec errors are no longer nested under a same-code wrapper (the follow-up flagged in TML-3092: extensions plane onto structured codes; Supabase error classes fold #1053).
  5. Builder-DSL misuse reuses ORM.* (ARGUMENT_INVALID, COLUMN_UNKNOWN, MUTATION_DATA_MISSING, …) — the namespace's reference prose is widened from "ORM client API misuse" to cover the sql() and Mongo query-builder DSLs, mirroring how TML-3092: extensions plane onto structured codes; Supabase error classes fold #1053 widened DRIVER.* for facade clients.

Reviewer notes

  • The judgment calls are concentrated in a few clusters: the 44 CONTRACT.VALIDATION_FAILED emit-validation sites (SQL + Mongo emitters), the 36 CONTRACT.PACK_CONTRIBUTION_INVALID contribution-shape sites (mostly one repetitive file, framework-authoring.ts), and the 47 ORM.* builder-DSL sites. Everything else is small.
  • Two sites stay bare by design: the hidden __telemetry-crash-test CLI command (it exists to produce an unstructured crash for the telemetry e2e) and the five canonical-stringify TypeErrors (genuine type violations in a generic utility; ADR 239 exempts them). These are the in-scope ratchet floor.
  • The mongo FilteredCollection/FilteredBuilder empty-filter throws became InternalError after an empirical reachability check (every public .match() path seeds one filter). Both classes are technically exported with public constructors, so a hand-constructed instance with [] gets an InternalError rather than a structured code — accepted, since no builder-API path reaches it.
  • The CONTRACT.MARKER_ROW_CORRUPT fold in sql 9-family keeps its Invalid contract marker row: message prefix — the framework's marker-read error detection matches on it.
  • A result.ok=false flake surfaced in 4 CLI progress-emission tests only under full-workspace parallelism (esbuild bundling in tmp dirs under load); green in isolation and on a full-suite rerun.

Behavior changes & evidence

Compatibility / migration / risk

Adding codes to codeless throws is non-breaking. Breaking: the three exported class deletions, covered by the framework-error-classes-removed recipe entry in both recipes. Mongo query-ast RangeErrors became structured Errors (message-compatible). Ratchet: 284 → 47 (−237); cumulative for the effort: ~538 → 47.

Testing performed

  • pnpm build, pnpm typecheck, pnpm lint, pnpm lint:deps, pnpm lint:skills, pnpm fixtures:check — green (re-run after rebasing onto TML-2988: Hard-cut @db.* lowering; add actionable diagnostics #1054)
  • pnpm check:error-reference — all 244 published codes documented; pnpm check:upgrade-coverage --mode pr, pnpm lint:throws (−237) — green
  • pnpm test:packages — 13785 passed (4 esbuild-under-load flakes in CLI progress tests, green in isolation and on full-suite rerun)
  • pnpm test:integration, pnpm test:e2e — green

Follow-ups

  • This closes the sweep work under TML-3067. Remaining at RC (one-liners): flip DOCS_ERRORS_VERSION nextv8; centralize hardcoded prisma-next.dev URLs onto docsUrlFor.
  • Deferred shapes (opportunistic): the two diagnostic-row codes riding in successful Results; LINT.SELECT_STAR severity divergence between AST and raw paths.

Alternatives considered

  • Mint PLAN.* codes for builder-DSL misuse — reused ORM.* with widened prose instead: the published entries match these conditions word-for-word, and PLAN means plan constraints at execution, not authoring-time API misuse.
  • Convert the telemetry crash-test throw and canonical-stringify TypeErrors — kept: the first deliberately produces an unstructured crash for e2e; the second are genuine type violations ADR 239 exempts, in a utility whose callers are all internal.
  • Fold MigrationToolsError and the foundation ContractValidationError too — kept: both already carry dotted codes and satisfy isStructuredError; folding them is churn without user-visible benefit.
  • Keep the class-based config errors and brand them — deleted: ADR 239 says match on error.code, never instanceof, all consumers are in-repo, and pre-RC is the time.

Checklist

  • Every commit is DCO signed-off
  • I have read CONTRIBUTING.md
  • Tests added/updated for every distinct code
  • Title follows TML-NNNN: <sentence>

…r codes

Pack-contribution and authoring-argument defects in framework-authoring
raise CONTRACT.PACK_CONTRIBUTION_INVALID / CONTRACT.ARGUMENT_INVALID via the
existing runtimeError helper; entity hydration, execution-requirement, and
schema-diff sites join the published codes; invariants become InternalError.
Messages preserved byte-for-byte.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
…e codes

TS contract loading raises the new CONTRACT.EXPORT_INVALID /
SOURCE_LOAD_FAILED / SOURCE_IMPORT_DISALLOWED; control-client lifecycle
reuses DRIVER/CONFIG/MIGRATION codes; the CLI-internal
ContractValidationError class folds into CONTRACT.VALIDATION_FAILED.
The hidden telemetry crash-test throw stays bare by design.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Deletes ConfigValidationError, ConfigFileNotFoundError, and
DomainNamespaceResolutionError; their failures raise
CONFIG.VALIDATION_FAILED / CONFIG.FILE_NOT_FOUND / CONTRACT.NAMESPACE_INVALID.
Mints PSL.FORMAT_OPTION_INVALID and MIGRATION.DESCRIBE_INVALID; converts the
remaining fw emitter, ts-render, operations, and migration-tools sites; the
canonical-stringify TypeErrors stay by design.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
The SQL emitter and 9-family contract paths raise published CONTRACT codes;
builder-DSL misuse reuses ORM.* codes; codec helpers follow the hook
direction. The runtime codec boundaries pass through any isStructuredError
envelope (previously isRuntimeError only), so structured extension-codec
errors are no longer re-wrapped under a same-code wrapper.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Mongo emitter/foundation/family contract paths raise published CONTRACT
codes; query-ast/query-builder DSL misuse reuses ORM.* (RangeErrors
included); the mongo decode boundary gains a structured-envelope
pass-through and the adapter encode boundary widens its exact-code check to
isStructuredError; the two mongo-driver switch fallbacks become assertNever.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
Adds the five new code entries, widens the ORM namespace prose to cover the
query-builder DSLs and the DRIVER lifecycle entries to cover the CLI control
client, and records framework-error-classes-removed in both 0.16-to-0.17
recipes.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric
wmadden-electric requested a review from a team as a code owner July 27, 2026 09:23
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 143 files, which is 43 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: d06d8447-69f3-4184-be03-08697abab9fd

📥 Commits

Reviewing files that changed from the base of the PR and between ca1f3a1 and 7a3999d.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (148)
  • coverage.config.json
  • docs/reference/error-reference.md
  • packages/1-framework/0-foundation/contract/src/contract-errors.ts
  • packages/1-framework/0-foundation/contract/src/contract-validation-error.ts
  • packages/1-framework/0-foundation/contract/src/default-namespace.ts
  • packages/1-framework/0-foundation/contract/src/domain-namespace-access.ts
  • packages/1-framework/0-foundation/contract/src/exports/contract-validation-error.ts
  • packages/1-framework/0-foundation/contract/src/exports/types.ts
  • packages/1-framework/0-foundation/contract/test/default-namespace.test.ts
  • packages/1-framework/0-foundation/utils/src/result.ts
  • packages/1-framework/1-core/config/src/config-errors.ts
  • packages/1-framework/1-core/config/src/config-types.ts
  • packages/1-framework/1-core/config/src/config-validation.ts
  • packages/1-framework/1-core/config/src/errors.ts
  • packages/1-framework/1-core/config/src/exports/config-validation.ts
  • packages/1-framework/1-core/config/test/config-validation.test.ts
  • packages/1-framework/1-core/config/test/errors.test.ts
  • packages/1-framework/1-core/framework-components/src/control/order-issues-by-dependencies.ts
  • packages/1-framework/1-core/framework-components/src/control/schema-diff.ts
  • packages/1-framework/1-core/framework-components/src/execution/execution-requirements.ts
  • packages/1-framework/1-core/framework-components/src/ir/contract-view.ts
  • packages/1-framework/1-core/framework-components/src/ir/entity-kind.ts
  • packages/1-framework/1-core/framework-components/src/shared/framework-authoring.ts
  • packages/1-framework/1-core/framework-components/test/structured-errors.test.ts
  • packages/1-framework/1-core/operations/package.json
  • packages/1-framework/1-core/operations/src/contract-errors.ts
  • packages/1-framework/1-core/operations/src/index.ts
  • packages/1-framework/1-core/operations/test/operations-registry.test.ts
  • packages/1-framework/1-core/ts-render/package.json
  • packages/1-framework/1-core/ts-render/src/contract-errors.ts
  • packages/1-framework/1-core/ts-render/src/json-to-ts-source.ts
  • packages/1-framework/1-core/ts-render/src/render-imports.ts
  • packages/1-framework/1-core/ts-render/test/render-imports.test.ts
  • packages/1-framework/2-authoring/psl-parser/src/format/error.ts
  • packages/1-framework/2-authoring/psl-parser/src/format/options.ts
  • packages/1-framework/2-authoring/psl-parser/test/format/options.test.ts
  • packages/1-framework/3-tooling/cli/src/commands/db-init.ts
  • packages/1-framework/3-tooling/cli/src/commands/db-sign.ts
  • packages/1-framework/3-tooling/cli/src/commands/db-update.ts
  • packages/1-framework/3-tooling/cli/src/commands/db-verify.ts
  • packages/1-framework/3-tooling/cli/src/commands/init/probe-db.ts
  • packages/1-framework/3-tooling/cli/src/commands/init/templates/render.ts
  • packages/1-framework/3-tooling/cli/src/control-api/client.ts
  • packages/1-framework/3-tooling/cli/src/control-api/errors.ts
  • packages/1-framework/3-tooling/cli/src/control-api/operations/db-run.ts
  • packages/1-framework/3-tooling/cli/src/control-api/operations/migrate.ts
  • packages/1-framework/3-tooling/cli/src/control-api/operations/run-migration.ts
  • packages/1-framework/3-tooling/cli/src/load-ts-contract.ts
  • packages/1-framework/3-tooling/cli/src/utils/combine-verify-results.ts
  • packages/1-framework/3-tooling/cli/src/utils/command-helpers.ts
  • packages/1-framework/3-tooling/cli/src/utils/formatters/migration-graph-grid-layout.ts
  • packages/1-framework/3-tooling/cli/test/commands/init/probe-db.test.ts
  • packages/1-framework/3-tooling/cli/test/control-api/client.errors.test.ts
  • packages/1-framework/3-tooling/cli/test/fixtures/throws-non-error.ts
  • packages/1-framework/3-tooling/cli/test/load-ts-contract.test.ts
  • packages/1-framework/3-tooling/config-loader/src/errors.ts
  • packages/1-framework/3-tooling/config-loader/src/exports/index.ts
  • packages/1-framework/3-tooling/config-loader/src/load.ts
  • packages/1-framework/3-tooling/config-loader/test/errors.test.ts
  • packages/1-framework/3-tooling/config-loader/test/to-structured-config-error.test.ts
  • packages/1-framework/3-tooling/emitter/src/artifact-paths.ts
  • packages/1-framework/3-tooling/emitter/src/domain-type-generation.ts
  • packages/1-framework/3-tooling/emitter/src/emitter-errors.ts
  • packages/1-framework/3-tooling/emitter/src/generate-contract-dts.ts
  • packages/1-framework/3-tooling/emitter/test/domain-type-generation.test.ts
  • packages/1-framework/3-tooling/emitter/test/emitter.test.ts
  • packages/1-framework/3-tooling/emitter/test/generate-contract-dts.multi-namespace.test.ts
  • packages/1-framework/3-tooling/language-server/src/project-artifacts.ts
  • packages/1-framework/3-tooling/migration/src/aggregate/aggregate.ts
  • packages/1-framework/3-tooling/migration/src/aggregate/loader.ts
  • packages/1-framework/3-tooling/migration/src/aggregate/strategies/resolve-recorded-path.ts
  • packages/1-framework/3-tooling/migration/src/compute-extension-space-apply-path.ts
  • packages/1-framework/3-tooling/migration/src/errors.ts
  • packages/1-framework/3-tooling/migration/src/migration-base.ts
  • packages/1-framework/3-tooling/migration/src/queue.ts
  • packages/1-framework/3-tooling/migration/test/aggregate/loader.test.ts
  • packages/1-framework/3-tooling/migration/test/migration-base.test.ts
  • packages/2-mongo-family/1-foundation/mongo-codec/src/codec-registry.ts
  • packages/2-mongo-family/1-foundation/mongo-codec/test/codecs.test.ts
  • packages/2-mongo-family/1-foundation/mongo-contract/src/entity-kinds.ts
  • packages/2-mongo-family/1-foundation/mongo-contract/src/validate-storage.ts
  • packages/2-mongo-family/1-foundation/mongo-contract/test/entity-kinds.test.ts
  • packages/2-mongo-family/1-foundation/mongo-contract/test/validate-storage.test.ts
  • packages/2-mongo-family/2-authoring/contract-ts/src/contract-builder.ts
  • packages/2-mongo-family/2-authoring/contract-ts/src/contract-errors.ts
  • packages/2-mongo-family/2-authoring/contract-ts/test/contract-builder.entrypoint.test.ts
  • packages/2-mongo-family/3-tooling/emitter/src/index.ts
  • packages/2-mongo-family/3-tooling/emitter/test/emitter-hook.structure.test.ts
  • packages/2-mongo-family/4-query/query-ast/package.json
  • packages/2-mongo-family/4-query/query-ast/src/aggregation-expressions.ts
  • packages/2-mongo-family/4-query/query-ast/src/filter-expressions.ts
  • packages/2-mongo-family/4-query/query-ast/src/orm-errors.ts
  • packages/2-mongo-family/4-query/query-ast/src/stages.ts
  • packages/2-mongo-family/4-query/query-ast/test/filter-expressions.test.ts
  • packages/2-mongo-family/4-query/query-ast/test/stages-extended.test.ts
  • packages/2-mongo-family/4-query/query-ast/test/stages.test.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/builder.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/contract-errors.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/contract-free/collection.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/lookup-builder.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/orm-errors.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/query.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/state-classes.ts
  • packages/2-mongo-family/5-query-builders/query-builder/src/update-ops.ts
  • packages/2-mongo-family/5-query-builders/query-builder/test/structured-error-codes.test.ts
  • packages/2-mongo-family/7-runtime/src/codecs/decoding.ts
  • packages/2-mongo-family/7-runtime/test/codecs/decoding.test.ts
  • packages/2-mongo-family/9-family/src/core/control-instance.ts
  • packages/2-mongo-family/9-family/src/core/ir/mongo-contract-serializer-base.ts
  • packages/2-mongo-family/9-family/src/core/schema-verify/canonicalize-introspection.ts
  • packages/2-mongo-family/9-family/test/control.test.ts
  • packages/2-mongo-family/9-family/test/mongo-contract-serializer-base.test.ts
  • packages/2-sql/1-core/schema-ir/src/ir/schema-node-kinds.ts
  • packages/2-sql/1-core/schema-ir/src/ir/sql-schema-ir-node.ts
  • packages/2-sql/2-authoring/contract-ts/src/contract-builder.ts
  • packages/2-sql/2-authoring/contract-ts/test/define-contract-argument.test.ts
  • packages/2-sql/3-tooling/emitter/src/errors.ts
  • packages/2-sql/3-tooling/emitter/src/index.ts
  • packages/2-sql/3-tooling/emitter/test/emitter-hook.error-codes.test.ts
  • packages/2-sql/4-lanes/relational-core/src/ast/ddl-types.ts
  • packages/2-sql/4-lanes/relational-core/src/ast/sql-codec-helpers.ts
  • packages/2-sql/4-lanes/relational-core/src/ast/types.ts
  • packages/2-sql/4-lanes/relational-core/src/codec-descriptor-registry.ts
  • packages/2-sql/4-lanes/relational-core/src/contract-free/table.ts
  • packages/2-sql/4-lanes/relational-core/test/structured-errors.test.ts
  • packages/2-sql/4-lanes/sql-builder/src/runtime/builder-base.ts
  • packages/2-sql/4-lanes/sql-builder/src/runtime/mutation-impl.ts
  • packages/2-sql/4-lanes/sql-builder/test/runtime/structured-errors.test.ts
  • packages/2-sql/5-runtime/src/codecs/decoding.ts
  • packages/2-sql/5-runtime/src/codecs/encoding.ts
  • packages/2-sql/5-runtime/src/middleware/budgets.ts
  • packages/2-sql/5-runtime/src/middleware/lints.ts
  • packages/2-sql/5-runtime/test/decode-error-passthrough.test.ts
  • packages/2-sql/5-runtime/test/encode-error-passthrough.test.ts
  • packages/2-sql/9-family/src/core/control-instance.ts
  • packages/2-sql/9-family/src/core/errors.ts
  • packages/2-sql/9-family/src/core/ir/sql-contract-serializer-base.ts
  • packages/2-sql/9-family/src/core/migrations/contract-to-schema-ir.ts
  • packages/2-sql/9-family/src/core/verify.ts
  • packages/2-sql/9-family/test/contract-to-schema-ir.error-codes.test.ts
  • packages/2-sql/9-family/test/control-instance.error-codes.test.ts
  • packages/2-sql/9-family/test/cross-contract-validation.test.ts
  • packages/2-sql/9-family/test/verify.test.ts
  • packages/3-mongo-target/2-mongo-adapter/src/resolve-value.ts
  • packages/3-mongo-target/2-mongo-adapter/test/resolve-value.test.ts
  • packages/3-mongo-target/3-mongo-driver/src/mongo-driver.ts
  • skills/extension-author/prisma-next-extension-upgrade/upgrades/0.16-to-0.17/instructions.md
  • skills/upgrade/prisma-next-upgrade/upgrades/0.16-to-0.17/instructions.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch tml-3099-error-codes-framework-tail

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Jul 27, 2026

Copy link
Copy Markdown

Open in StackBlitz

@prisma-next/extension-author-tools

npm i https://pkg.pr.new/@prisma-next/extension-author-tools@1063

@prisma-next/mongo-runtime

npm i https://pkg.pr.new/@prisma-next/mongo-runtime@1063

@prisma-next/family-mongo

npm i https://pkg.pr.new/@prisma-next/family-mongo@1063

@prisma-next/sql-runtime

npm i https://pkg.pr.new/@prisma-next/sql-runtime@1063

@prisma-next/family-sql

npm i https://pkg.pr.new/@prisma-next/family-sql@1063

@prisma-next/extension-arktype-json

npm i https://pkg.pr.new/@prisma-next/extension-arktype-json@1063

@prisma-next/middleware-cache

npm i https://pkg.pr.new/@prisma-next/middleware-cache@1063

@prisma-next/mongo

npm i https://pkg.pr.new/@prisma-next/mongo@1063

@prisma-next/extension-paradedb

npm i https://pkg.pr.new/@prisma-next/extension-paradedb@1063

@prisma-next/extension-pgvector

npm i https://pkg.pr.new/@prisma-next/extension-pgvector@1063

@prisma-next/extension-postgis

npm i https://pkg.pr.new/@prisma-next/extension-postgis@1063

@prisma-next/postgres

npm i https://pkg.pr.new/@prisma-next/postgres@1063

@prisma-next/sql-orm-client

npm i https://pkg.pr.new/@prisma-next/sql-orm-client@1063

@prisma-next/sqlite

npm i https://pkg.pr.new/@prisma-next/sqlite@1063

@prisma-next/extension-supabase

npm i https://pkg.pr.new/@prisma-next/extension-supabase@1063

@prisma-next/target-mongo

npm i https://pkg.pr.new/@prisma-next/target-mongo@1063

@prisma-next/adapter-mongo

npm i https://pkg.pr.new/@prisma-next/adapter-mongo@1063

@prisma-next/driver-mongo

npm i https://pkg.pr.new/@prisma-next/driver-mongo@1063

@prisma-next/contract

npm i https://pkg.pr.new/@prisma-next/contract@1063

@prisma-next/utils

npm i https://pkg.pr.new/@prisma-next/utils@1063

@prisma-next/config

npm i https://pkg.pr.new/@prisma-next/config@1063

@prisma-next/errors

npm i https://pkg.pr.new/@prisma-next/errors@1063

@prisma-next/framework-components

npm i https://pkg.pr.new/@prisma-next/framework-components@1063

@prisma-next/operations

npm i https://pkg.pr.new/@prisma-next/operations@1063

@prisma-next/ts-render

npm i https://pkg.pr.new/@prisma-next/ts-render@1063

@prisma-next/contract-authoring

npm i https://pkg.pr.new/@prisma-next/contract-authoring@1063

@prisma-next/ids

npm i https://pkg.pr.new/@prisma-next/ids@1063

@prisma-next/psl-parser

npm i https://pkg.pr.new/@prisma-next/psl-parser@1063

@prisma-next/psl-printer

npm i https://pkg.pr.new/@prisma-next/psl-printer@1063

@prisma-next/cli

npm i https://pkg.pr.new/@prisma-next/cli@1063

@prisma-next/cli-telemetry

npm i https://pkg.pr.new/@prisma-next/cli-telemetry@1063

@prisma-next/config-loader

npm i https://pkg.pr.new/@prisma-next/config-loader@1063

@prisma-next/emitter

npm i https://pkg.pr.new/@prisma-next/emitter@1063

@prisma-next/language-server

npm i https://pkg.pr.new/@prisma-next/language-server@1063

@prisma-next/migration-tools

npm i https://pkg.pr.new/@prisma-next/migration-tools@1063

prisma-next

npm i https://pkg.pr.new/prisma-next@1063

@prisma-next/vite-plugin-contract-emit

npm i https://pkg.pr.new/@prisma-next/vite-plugin-contract-emit@1063

@prisma-next/mongo-codec

npm i https://pkg.pr.new/@prisma-next/mongo-codec@1063

@prisma-next/mongo-contract

npm i https://pkg.pr.new/@prisma-next/mongo-contract@1063

@prisma-next/mongo-value

npm i https://pkg.pr.new/@prisma-next/mongo-value@1063

@prisma-next/mongo-contract-psl

npm i https://pkg.pr.new/@prisma-next/mongo-contract-psl@1063

@prisma-next/mongo-contract-ts

npm i https://pkg.pr.new/@prisma-next/mongo-contract-ts@1063

@prisma-next/mongo-emitter

npm i https://pkg.pr.new/@prisma-next/mongo-emitter@1063

@prisma-next/mongo-schema-ir

npm i https://pkg.pr.new/@prisma-next/mongo-schema-ir@1063

@prisma-next/mongo-query-ast

npm i https://pkg.pr.new/@prisma-next/mongo-query-ast@1063

@prisma-next/mongo-orm

npm i https://pkg.pr.new/@prisma-next/mongo-orm@1063

@prisma-next/mongo-query-builder

npm i https://pkg.pr.new/@prisma-next/mongo-query-builder@1063

@prisma-next/mongo-lowering

npm i https://pkg.pr.new/@prisma-next/mongo-lowering@1063

@prisma-next/mongo-wire

npm i https://pkg.pr.new/@prisma-next/mongo-wire@1063

@prisma-next/sql-contract

npm i https://pkg.pr.new/@prisma-next/sql-contract@1063

@prisma-next/sql-errors

npm i https://pkg.pr.new/@prisma-next/sql-errors@1063

@prisma-next/sql-operations

npm i https://pkg.pr.new/@prisma-next/sql-operations@1063

@prisma-next/sql-schema-ir

npm i https://pkg.pr.new/@prisma-next/sql-schema-ir@1063

@prisma-next/sql-contract-psl

npm i https://pkg.pr.new/@prisma-next/sql-contract-psl@1063

@prisma-next/sql-contract-ts

npm i https://pkg.pr.new/@prisma-next/sql-contract-ts@1063

@prisma-next/sql-contract-emitter

npm i https://pkg.pr.new/@prisma-next/sql-contract-emitter@1063

@prisma-next/sql-lane-query-builder

npm i https://pkg.pr.new/@prisma-next/sql-lane-query-builder@1063

@prisma-next/sql-relational-core

npm i https://pkg.pr.new/@prisma-next/sql-relational-core@1063

@prisma-next/sql-builder

npm i https://pkg.pr.new/@prisma-next/sql-builder@1063

@prisma-next/target-postgres

npm i https://pkg.pr.new/@prisma-next/target-postgres@1063

@prisma-next/target-sqlite

npm i https://pkg.pr.new/@prisma-next/target-sqlite@1063

@prisma-next/adapter-postgres

npm i https://pkg.pr.new/@prisma-next/adapter-postgres@1063

@prisma-next/adapter-sqlite

npm i https://pkg.pr.new/@prisma-next/adapter-sqlite@1063

@prisma-next/driver-postgres

npm i https://pkg.pr.new/@prisma-next/driver-postgres@1063

@prisma-next/driver-sqlite

npm i https://pkg.pr.new/@prisma-next/driver-sqlite@1063

commit: 7a3999d

@github-actions

Copy link
Copy Markdown

size-limit report 📦

Path Size
postgres / no-emit 167.63 KB (+0.87% 🔺)
postgres / emit 149.2 KB (+1.03% 🔺)
mongo / no-emit 100.72 KB (+0.4% 🔺)
mongo / emit 90.4 KB (+0.36% 🔺)
cf-worker / no-emit 192.98 KB (+0.72% 🔺)
cf-worker / emit 172.64 KB (+0.84% 🔺)

The exemption expired 2026-07-26, failing the Coverage job on any PR opened
after that date. The justification is unchanged (files exercised by the
cross-package adapter/e2e suites outside the per-package coverage scope);
renewed for another 90 days with the recovery options restated.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
The ConfigValidationError fold left the no-field/no-why mapping fallbacks in
load.ts uncovered (94% branches, under the 95% threshold); one test through
the real mapper covers both.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric
wmadden-electric added this pull request to the merge queue Jul 27, 2026
Merged via the queue into main with commit 79c5cd3 Jul 27, 2026
22 checks passed
@wmadden-electric
wmadden-electric deleted the tml-3099-error-codes-framework-tail branch July 27, 2026 10:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants