Skip to content

feat(spec,driver-sql,cli): one physical representation for the NUMERIC column family, read by all three producers #23176

feat(spec,driver-sql,cli): one physical representation for the NUMERIC column family, read by all three producers

feat(spec,driver-sql,cli): one physical representation for the NUMERIC column family, read by all three producers #23176

Triggered via pull request September 9, 2026 09:03
Status Success
Total duration 57s
Artifacts

pr-automation.yml

on: pull_request
Check PR Size
0s
Check PR Size
Check Changeset
53s
Check Changeset
Auto Label
Auto Label
Fit to window
Zoom out
Zoom in

Annotations

1 notice
Check Changeset: .changeset/numeric-column-representation.md#L0
ADR-0087 exemption (no-migration-prescription): Claimed on a POSITIVE argument, not on the detector finding nothing — the failure mode this gate's own docblock names (#8277). Stated plainly: bullet 4 (the `NOT NULL` one) IS a prescription, and it is a prescription for a SOURCE AUTHOR, not for a metadata upgrader, which is the distinction ADR-0087's D8 addendum says this category cannot mechanically tell apart. The ledger serves `objectstack migrate meta`; the only ledger entry this change could carry is the `field-required-notnull-explicit` conversion, and that conversion was WITHDRAWN by maintainer ruling on 2026-09-08 (decision batch #85, #16693/#16890) on the ground that stamping `storage.notNull` wherever `required: true` appears is the implication ADR-0113 abolished — `packages/spec/src/conversions/registry.ts` now carries a tombstone saying re-adding one is the mistake it exists to stop. So `registered` is FORBIDDEN here, not merely unnecessary. The other four are closed on facts: the bumped packages publish (not `unpublished`); no id pre-dates the base (not `already-registered`); no named symbol is a non-metadata runtime interface (not `runtime-interface-only`); and `type-surface-only` fails its predicate 2, since this diff adds a module under `packages/spec/**`. The numeric half prescribes nothing at all — no spec key, no export and no config field is removed or renamed, existing sources parse and publish unchanged, and existing columns are untouched by the ruling that authorized this (「不考虑现有数据」). ⚠️ The residual is declared rather than hidden: the vocabulary has no category for a source-author prescription the ledger must not carry, which is D8's blind spot reached from a second direction; raised for the maintainer in the PR report rather than resolved by dropping the BREAKING banner.