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
10 changes: 10 additions & 0 deletions .changeset/6296-conditionbuilder-subject-vocabulary.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,16 @@ entry condition, where the trigger record's fields *are* the top-level evaluatio
`includePrevious`), and objectstack's `packages/formula/src/validate.ts` defines the two
scopes.

⚠️ **Dated note, 2026-09-29 — the mount count above has since moved — objectui#6226.**
"all five files that mount it today — six mount sites" above held when this change landed
(`88b15fddc`). Later in this same release objectui#6226 (PR objectui#6668) mounted it in
`FlowNodeConfigField` for the flow Start node's entry condition, a flattened-scope site
that passes its own `subjects`. Re-measured for objectui#10979 on `main` at `2eaf5be27`,
six non-test files mounted `ConditionBuilder`, at seven sites, so "every one of them is a
record-scoped site" no longer held either. `.changeset/flow-entry-condition-builder.md`
(PR objectui#6668) states what ships; the text above is kept as the reading of this
change.

A new optional `subjects` prop declares what a site actually binds:

- `fieldPrefix` — defaults to `'record.'`; `''` declares a flattened scope.
Expand Down
12 changes: 12 additions & 0 deletions .changeset/6487-visibility-advice-per-tier.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@ to `'page-component'`, so a five-argument call keeps printing the bytes it
printed before. All three in-repo call sites pass their tier explicitly rather
than lean on that default.

⚠️ **Dated note, 2026-09-29 — the call-site count above has since moved —
objectui#6445.** "All three in-repo call sites" above held when this change landed
(`c71e14d1c`), counting gates: `reportUnresolvableVisibilityPredicate` was called from
`SchemaRenderer`'s node visibility gate (twice), the `page:tabs` item gate and
`ExpressionProvider`'s chrome gate, four calls in three files. Later in this same release
objectui#6445 (PR objectui#6510) added a fourth gate, `SchemaRenderer`'s `disabled` /
`disabledOn` enablement gate. Re-measured for objectui#10979 on `main` at `2eaf5be27`,
the reporter was called five times outside its own module, from four gates in the same
three files, and all five calls passed their tier explicitly, so none leaned on the
default. `.changeset/6445-disabled-gate-fault-diagnostic.md` (PR objectui#6510) states
what ships; the text above is kept as the reading of this change.

Each tier's root set was derived from the code that builds the bag, not from the
prose that described it:

Expand Down
10 changes: 10 additions & 0 deletions .changeset/6837-reference-to-arm-deletion.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,16 @@ warning at all**. On that path the failure is exactly as silent as before.
A reader-side or shared-resolver diagnostic, which would cover it, remains open
on objectui#6837.

⚠️ **Dated note, 2026-09-29 — the call-site count above has since moved —
objectui#7650.** "exactly two production call sites" above held when this change landed
(`045d20ba8`). Later in this same release objectui#7650 (PR objectui#8868) added a call
on `MetadataProvider`'s by-name object-schema serve path. Re-measured for objectui#10979
on `main` at `2eaf5be27`, `normalizeSchemaReferenceKeys` had three production call sites:
two in `MetadataProvider`, on its list path and on its by-name path, and one in
`ObjectStackAdapter.getObjectSchema`.
`.changeset/7650-metadata-item-reference-canonicalisation.md` (PR objectui#8868) states
what ships; the text above is kept as the reading of this change.

## What did NOT change

**Every key these readers EMIT is byte-identical**, and that was verified
Expand Down
10 changes: 10 additions & 0 deletions .changeset/7415-action-type-input-rename.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ the count independently matches the corpus census already recorded in `SchemaRen
("`action:button` (5 nodes)"). No docs page documents the input; no catalog entry uses the
components. So the rename breaks no authored document in this repo.

⚠️ **Dated note, 2026-09-29 — the census above is a reading of one commit —
objectui#10979.** The census above was taken before the rename. On the commit this change
landed on (`6411def250`) two of its figures re-derive: 433 JSON files under
`examples/schema-catalog/src/schemas`, and the control, 127 plain `button` nodes in the
JSON of the four trees. Re-measured on `main` at `2eaf5be27`, the catalog held 432 such
files and the control read 119 nodes, while the zero still held: no JSON file in the four
trees carried an `action:button` or `action:icon` node. The 4,797-file, 517-file and
2,410-node figures are not re-derived here, and the fenced blocks in md and mdx were not
re-walked. The text above is kept as the reading of this change.

**What changes for a consumer.** The renderers no longer fall back to `schema.type` when
`actionType` is absent — that fallback is the old spelling, and the ruling forbids an alias.
A node that declares neither now forwards `type: undefined`, and `ActionRunner` falls
Expand Down
10 changes: 10 additions & 0 deletions .changeset/7561-filter-builder-operator-trigger-label.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ operator under another spelling — `@objectstack/spec`'s canonical
Radix drew a **blank** operator cell over a row that went on filtering
correctly: the user's own operator, invisible and unreachable.

⚠️ **Dated note, 2026-09-29 — the three catalog entries no longer author the alias
spellings — objectui#6939.** "which three schema-catalog entries author today" above held
when this change landed (`9ae871d00`): three `components-complex-filter-builder` fixtures
spelled seven operators `eq`, `lt` or `gt`. Later in this same release objectui#6939 (PR
objectui#9558) respelled all seven to `equals` / `less_than` / `greater_than`, the
members the mirror declares. Re-measured for objectui#10979 on `main` at `2eaf5be27`, no
file under `examples/schema-catalog` spelled an operator `eq`, `lt` or `gt`, and the same
three fixtures carried the canonical spellings. The text above is kept as the reading of
this change.

Everywhere the operator's *meaning* matters this component already folded
through the spec's `normalizeFilterOperator` (`filterValueArity`,
`reconcileOperatorForField`). The one site that did not was this identity
Expand Down
17 changes: 17 additions & 0 deletions .changeset/8450-inspector-select-placeholder.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,20 @@ offering a "none" row, and those now show `'—'` where they showed nothing —
flow-node config selects, the app-nav item type, the curated page-block props,
the report dataset/chart-axis pickers and the action target/variant/mode/component
pickers. The other 32 render exactly as before.

⚠️ **Dated note, 2026-09-29 — the call-site figures above have since moved —
objectui#6830, objectui#7551 and objectui#7597.** "all 45 call sites, none of which passes
a placeholder of its own" above held when this change landed (`0c4694437`): 45
`InspectorSelectField` mounts in 13 files, none passing a `placeholder`. Later in this
same release objectui#6830 (PR objectui#9110) made the flow-node config select pass its
declared default as its `placeholder`, so a flow-node select whose descriptor declares a
default shows that default rather than `'—'`; and objectui#7551 (PR objectui#9972) and
objectui#7597 (PR objectui#10527) each added a mount, the action inspector's operation
select and the field inspector's `valueDomain` select, both of which offer a `''` row.
Re-measured for objectui#10979 on `main` at `2eaf5be27`, there were 47 mounts in 13
files, one of them passing a `placeholder`. This note does not re-classify the 45, so "13
of the 45" and "The other 32" above stay the reading of this change.
`.changeset/6830-flownode-select-declared-default.md` (PR objectui#9110),
`.changeset/7551-action-operation-update-executor.md` (PR objectui#9972) and
`.changeset/7597-field-inspector-value-domain.md` (PR objectui#10527) state what ships;
the text above is kept as the reading of this change.
13 changes: 13 additions & 0 deletions .changeset/component-meta-converge-and-deprecate-alias-5893.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,19 @@ converts a silent break into a warned one before stage 2 lands. Stage 2 removes
and the now-dead re-export in `plugin-scope.ts` that exists only to feed it, and ships as
a `minor` under this repo's policy that its own breaking changes never declare `major`.

⚠️ **Dated note, 2026-09-29 — the one-occurrence reading above has since moved —
objectui#10979.** "In-repo, `PluginComponentMeta` has exactly one occurrence — its own
export line" above is the reading of the commit this change landed on (`575b71c850`),
where a whole-tree search for the name returned that one line, in
`packages/types/src/index.ts`. This change then added its own pins and this entry, and
later in this same release objectui#5674's retirement of the sibling alias
`PluginComponentInput` (PR objectui#10826) added mentions in its test and its entry.
Re-measured on `main` at `2eaf5be27`, the name occurred on 19 lines in 7 files. In
non-test source it appeared only on the export line and on one doc-comment line in
`plugin-scope.ts`, and the one file that imported it was this change's own
`component-meta-single-declaration.test.ts`. The text above is kept as the reading of
this change.

## Pinned by identity, not by member set

A new test asserts that `plugin-scope.ts` re-exports the declaration and declares no
Expand Down
8 changes: 8 additions & 0 deletions .changeset/list-view-nested-aria-label-i18n-5134.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ a screen reader announces as the list view's accessible name — in every locale
read now goes through the spec's own `resolveI18nLabel` (the resolver four other
in-repo read sites already use) against `useDisplayLocale()`.

⚠️ **Dated note, 2026-09-29 — the read-site count above does not re-derive —
objectui#10979.** "the resolver four other in-repo read sites already use" above does not
hold even at this change's own base. On the commit this change landed on (`e40b8579bd`),
ten non-test source files already imported `@objectstack/spec`'s `resolveI18nLabel` (each
as `resolveInlineI18nLabel`) and called it on 17 lines. Re-measured on `main` at
`2eaf5be27`, fourteen non-test files besides `ListView` imported it, calling it on 27
lines. The text above is kept as the reading of this change.

Reachability, stated plainly: the path is **live but unexercised**. `I18nLabel` was a
plain `string` through `@objectstack/spec` 17.0.0-rc.5, so no stored map-valued label
predates rc.6, and no measured author writes one today — but map values are legitimate
Expand Down
8 changes: 8 additions & 0 deletions .changeset/queryparams-closed-keys-7497.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,14 @@ is reserved for following `@objectstack` across a major (see AGENTS.md, version
alignment). A `patch` would be wrong: this is a deliberate narrowing, not a
fix inside the accepted set.

⚠️ **Dated note, 2026-09-29 — the file count above is a reading of one commit —
objectui#10979.** "(4,362 files)" above is the census this change's commit message dates
to its base, `7dcda9cd4`. A tracked-file count does not re-derive it there: the five
trees held 5,203 tracked files at that commit, 4,344 of them TypeScript or JavaScript
sources. Re-measured on `main` at `2eaf5be27`, the same five trees held 6,700 tracked
files, 5,819 of them sources. The census itself was not re-run for this note. The text
above is kept as the reading of this change.

Migration for a downstream caller that did pass an extra key: if an adapter of
yours reads it, declare it on your own params type and widen at your adapter's
boundary; if nothing reads it, it was already being dropped — delete it.
Loading