Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .changeset/9365-bridgelistview-present-tense.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
'@object-ui/types': patch
---

Date the dead `bridgeListView` producer evidence in `BaseSchema` instead of
letting it read as live (objectui#9365).

`base.ts` stated the factual basis of objectui#4580's revised Q1 ruling in the
PRESENT tense — "that is what a spec producer already writes into this slot:
`bridgeListView` assigns `node.label = spec.label`", and the same shape one slot
over for `description`. Both sentences were TRUE when PR #4608 wrote them on
2026-08-13: at that commit `packages/react/src/spec-bridge/bridges/list-view.ts`
exported `bridgeListView` and carried `if (spec.label) node.label = spec.label;`
and `if (spec.description) node.description = spec.description;` at exactly the
addresses cited. objectui#6366 (PR #6632, 2026-08-29) then removed the WHOLE
spec-bridge — `SpecBridge`, `bridgeListView`, `bridgeFormView` — from
`@object-ui/react` as a declared BREAKING CHANGE, and the producer, its module
and those addresses went with it.

They are therefore ROTTED, not born false, and the repair matches: the original
sentences are KEPT, quoted, dated to the commit that wrote them, and followed by
a dated note naming objectui#6366 as what falsified them. Overwriting them would
erase that objectui#4580 ever had a stated rationale, which is a false record of
its own.

What the docblocks now assert instead points at an instrument rather than at a
retired producer: the widening is re-derived on every run by
`inline-locale-declared-face-9092.test.ts` in this package, under both `tsc` and
vitest, and the read half by the renderer pins in `@object-ui/components` and
`@object-ui/plugin-dashboard`. No figure is written down (AGENTS.md #9).
objectui#4580's ruling itself is untouched and is not re-litigated here.

⛔ Nothing executable moves — the diff is comment-only: no declaration, accept
set, assertion, behaviour or export changes. It is graded `patch` rather than a
no-release changeset because the published bytes move: these docblocks ship in
`dist/base.d.ts`, which this package's `files[]` publishes, measured after a
build with a positive control on neighbouring prose in the same emitted file and
a minted-token absent control.
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,24 @@
* `BaseSchema.label` and `.description` accept `string | I18nLabel` since
* #4580's revised Q1 ruling (comment 5284973826) — `I18nLabel` being the spec's
* INLINE locale MAP (`string | Record<string, string>` in `@objectstack/spec`
* 17.0.0-rc.6), the shape a spec producer already writes: `bridgeListView`
* assigns `node.label = spec.label` at `list-view.ts:180`.
* 17.0.0-rc.6). The DECLARED half of that is re-derived by
* `inline-locale-declared-face-9092.test.ts` in `@object-ui/types`; the READ
* half is re-derived by the cases below.
*
* ⚠️ The producer sentence this header carried is DEAD — quoted and dated,
* not deleted. As written on 2026-08-13 (#4580, PR #4608) it read, truly of the
* tree at that commit:
*
* > the shape a spec producer already writes: `bridgeListView` assigns
* > `node.label = spec.label` at `list-view.ts:180`
*
* ⛔ FALSIFIED on 2026-08-29 by objectui#6366 (PR #6632), which removed the
* whole spec-bridge — `SpecBridge`, `bridgeListView`, `bridgeFormView` — from
* `@object-ui/react` as a declared BREAKING CHANGE. ⛔ Nothing re-derives that
* sentence, so it is quoted rather than left reading as live (AGENTS.md #9): a
* test header is the worst place for a confident sentence about a producer that
* is gone, and reading it as live already cost objectui#9092 a
* premise-falsification round.
*
* Resolution happens at READ time, here, against the display locale — NOT at
* the spec bridge. PR #4603 measured the bridge unable to do it: it is a plain
Expand Down
63 changes: 50 additions & 13 deletions packages/types/src/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,15 +93,41 @@ export interface BaseSchema {
* Often used in forms, cards, and other UI elements.
*
* Accepts the spec's INLINE LOCALE MAP as well as a plain string
* (objectui#4580, revised Q1 ruling — option A), because that is what a spec
* producer already writes into this slot: `bridgeListView` assigns
* `node.label = spec.label` at
* `packages/react/src/spec-bridge/bridges/list-view.ts:180`, and `ListView`'s
* own `label` is the spec's `I18nLabel`. Under the old `string` declaration
* that assignment was a type error the moment `SchemaNode` stopped being
* core's index-signature interface — the defect this widening resolves, not a
* (objectui#4580, revised Q1 ruling — option A), because `ListView`'s own
* `label` is the spec's `I18nLabel`: under the old `string` declaration that
* assignment was a type error the moment `SchemaNode` stopped being core's
* index-signature interface — the defect this widening resolves, not a
* capability being invented here.
*
* The instrument that re-derives the widening is
* `inline-locale-declared-face-9092.test.ts` in this package's `__tests__`:
* it assigns the map to this slot and to {@link BaseSchema.description}, each
* paired with a `@ts-expect-error` control on a genuinely plain-`string`
* sibling, and it runs under both `tsc -p packages/types/tsconfig.test.json`
* and vitest. ⛔ Read that file rather than any figure written here.
*
* ## ⚠️ The producer evidence this slot was widened on is DEAD
*
* It is quoted and dated rather than deleted, because it is the rationale
* objectui#4580 was decided on and overwriting it would erase that the ruling
* ever had one. As written on 2026-08-13 (#4580, PR #4608) this paragraph
* said, and the tree at that commit bore it out:
*
* > that is what a spec producer already writes into this slot:
* > `bridgeListView` assigns `node.label = spec.label` at
* > `packages/react/src/spec-bridge/bridges/list-view.ts:180`
*
* ⛔ FALSIFIED on 2026-08-29 by objectui#6366 (PR #6632), which removed the
* WHOLE spec-bridge — `SpecBridge`, `bridgeListView`, `bridgeFormView` — from
* `@object-ui/react` as a declared BREAKING CHANGE. That producer, the module
* it lived in and the address it is cited at are all gone, and ⛔ nothing
* re-derives the sentence — which is why it is quoted here instead of left
* reading as live (AGENTS.md #9). The RULING is not in question: its live
* basis is the declared-face pin named above, the spec's own `I18nLabel`
* declaration this file imports, and the read-site pins in
* `@object-ui/components` and `@object-ui/plugin-dashboard`. Reading the dead
* sentence as live already cost objectui#9092 a premise-falsification round.
*
* ## Which vocabulary this is, and who resolves it
*
* This slot — and {@link BaseSchema.description} two lines down — carries the
Expand Down Expand Up @@ -152,12 +178,23 @@ export interface BaseSchema {
*
* Accepts the spec's INLINE LOCALE MAP as well as a plain string on exactly
* the {@link BaseSchema.label} evidence one slot over (objectui#4580, revised
* Q1 ruling): `bridgeListView` assigns `node.description = spec.description`
* at `packages/react/src/spec-bridge/bridges/list-view.ts:224`, where the
* spec's `ListView.description` is an `I18nLabel`. Same vocabulary, same
* resolver (`resolveI18nLabel` against the display locale), same
* confusability warning against {@link BaseSchema.ariaLabel}'s keyed form —
* see {@link BaseSchema.label} for the full statement.
* Q1 ruling), where the spec's `ListView.description` is an `I18nLabel`. Same
* vocabulary, same resolver (`resolveI18nLabel` against the display locale),
* same confusability warning against {@link BaseSchema.ariaLabel}'s keyed
* form — see {@link BaseSchema.label} for the full statement, and for the
* instrument that re-derives this widening.
*
* ⚠️ The producer half of that evidence is DEAD, quoted and dated. As
* written on 2026-08-13 (#4580, PR #4608), and true of the tree at that
* commit:
*
* > `bridgeListView` assigns `node.description = spec.description` at
* > `packages/react/src/spec-bridge/bridges/list-view.ts:224`
*
* ⛔ FALSIFIED on 2026-08-29 by objectui#6366 (PR #6632), which removed
* `SpecBridge` / `bridgeListView` / `bridgeFormView` from `@object-ui/react`
* as a declared BREAKING CHANGE. Nothing re-derives it; see
* {@link BaseSchema.label} for why it is quoted rather than deleted.
*
* @example "Shown below the field"
* @example { en: 'Shown below the field', 'zh-CN': '显示在字段下方' }
Expand Down
Loading