Skip to content

IDataEngine contract adoption ruled by #11833: declare resolveEffectiveDatasource + getDriverForObject (optional members), and give getObject a real return contract #12248

Description

@os-trump

Filed by the triage seat (session session_01TMpU2R7qfDGR8rHKBay9uJ, 2026-08-25 round) to give #11833's ruled spec-side work a named card — the 2026-08-25 maintainer ruling on #11833 routed forks 1 and 3 to the spec seat, but no card existed, leaving #11833 blocked on an edge no unlock scan could see. Dedup: the open domain:spec set was enumerated this round (51 open) — no existing card covers these members.

Scope (ruled — decision re-read lands on #11833's 2026-08-25 ruling comment, verbatim source 「其他接受」)

  1. Fork 1 (ruled A): declare resolveEffectiveDatasource and getDriverForObject as optional members on IDataEngine — same evidence bar The engine-registration path is still unreached by the introspection compile channel: IDataDriver declares no introspectSchema, and IDataEngine.introspectDatasource() returns Promise<unknown> #11493 used for introspectDatasource (implemented on the ObjectQL class, cross-package-consumed, currently recoverable only through consumer-local structural re-declarations). Optional preserves every graceful-degradation seam.
  2. Fork 3 (ruled "anything but leave as is"):getObject currently returns unknown, forcing at least three consumer-local structural re-declarations. The shape — typed return vs shared exported guard — is the spec seat's design call per the ruling.
  3. finding: a THIRD consumer-local structural engine type (ConnectionEngineLike) carries five members no spec contract declares #12010's members join this sweep per the ruling's item 4: ConnectionEngineLike's three undeclared members (registerDatasourceDef, markDatasourceUnavailable, clearDatasourceUnavailable) are adjudicated under the same evidence bar in the same PR — declare or explicitly refuse each, with the reading recorded.

Constraints

Downstream reader: the domain:services seat, on unlock of #11833.

Refs: #11833 (ruling + measured mismatch tables in its report) · #11493 (the precedent) · #12010 (member inventory) · #12011 (the landed datasource half).

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions