Skip to content

feat(engine)!: findOne, update and delete declare what they answer, and their hook seams are guarded (#16231) #22778

feat(engine)!: findOne, update and delete declare what they answer, and their hook seams are guarded (#16231)

feat(engine)!: findOne, update and delete declare what they answer, and their hook seams are guarded (#16231) #22778

Triggered via pull request September 8, 2026 13:03
Status Success
Total duration 55s
Artifacts

pr-automation.yml

on: pull_request
Check PR Size
15s
Check PR Size
Check Changeset
50s
Check Changeset
Auto Label
18s
Auto Label
Fit to window
Zoom out
Zoom in

Annotations

1 notice
Check Changeset: .changeset/engine-verb-result-declarations.md#L0
ADR-0087 exemption (no-migration-prescription): Nothing authorable moves. No spec key, no authored metadata property, no config field, no accepted request shape and no stored artifact changes spelling or shape; `objectstack migrate meta` has nothing to rewrite, `spec-changes.json` has nothing to project and the upgrade guide has no row to gain. What moves is the declared RETURN TYPE of three TypeScript methods (`packages/spec/src/contracts/data-engine.ts`, its `scoped-context.ts` mirrors, and `ObjectQL` itself) plus three new registered ADR-0112 error codes. The rewrite this ships — add the null check the type now demands — is addressed to a TYPESCRIPT CONSUMER and is delivered by the compiler at their own call site, which is the audience the ADR-0087 ledger explicitly does not serve. `type-surface-only` is the category built for exactly this class and it is NOT claimed here, because its predicate 2 (`no-spec-diff`) is mechanically false for this PR: the surface the maintainer ruling names IS `packages/spec/src/contracts/**`. That gap is reported on the card rather than worked around, and the `**BREAKING**` banner below is carried rather than dropped.