From d21aeb0f6bb55e7d771c5287185d96336356a11f Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 01:26:17 +0000 Subject: [PATCH 1/2] docs: cite landing commits where pending changesets and source comments name 30 objectui issues that answer 404 (objectui#10803, batch 4) Re-points every in-scope citation of the fourth batch of the family remainder (#6872 through #7088) to the 9-character sha of the commit that landed what the sentence rests on, a ruling by its date, a live pointer the sentence already named, or the card by role where nothing answers. A changeset's pointer to its own card is dropped. The two legacy ActionSchema tombstone strings open RETIRED (ADR-0049), and two DataTableSchema describe strings drop the pointer; the one test that quotes the tombstone strings follows them. One bare number that is an objectstack pull request is re-qualified as objectstack#6942. Part of objectui#10803. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_014mXUNuFomfj24w7s1pZzhN --- .changeset/10039-publish-drafts-advisories.md | 4 +- .../10803-dead-citation-sweep-fourth-batch.md | 21 ++++++++++ .../10803-fourth-batch-runtime-strings.md | 23 +++++++++++ .changeset/4895-retire-block-schema-family.md | 2 +- .changeset/6755-field-diagnostics-i18n.md | 2 +- .../6872-app-shell-branding-title-jsdoc.md | 2 +- .../6888-location-residue-refusal-keyed.md | 2 +- .changeset/6907-gantt-date-spelling-rule.md | 6 +-- ...6921-cellclassname-cell-population-pins.md | 2 +- .../6931-tombstone-guidance-remainder.md | 3 +- .changeset/6940-rowactions-boolean-mirror.md | 2 +- ...8-visiblewhen-clears-the-field-it-hides.md | 2 +- .changeset/6965-batch-publish-advisories.md | 2 +- .changeset/7004-cli-root-path-line.md | 4 +- .changeset/7004-cli-union-arm-selection.md | 4 +- .../7007-relatedlist-schema-chain-gate.md | 4 +- .../7008-field-edit-widget-host-plumbing.md | 2 +- .changeset/7025-nonoptional-enum-cast.md | 6 +-- ...77-button-group-retire-authored-surface.md | 2 +- .../7079-schema-reference-base-props.md | 2 +- .changeset/7087-disabled-twin-symmetry.md | 4 +- .../7088-hidden-jsdoc-single-hide-path.md | 2 +- .changeset/7126-inline-widgets-read-error.md | 2 +- ...88-types-render-cell-editor-pending-row.md | 4 +- .../7196-plugin-grid-held-key-census.md | 6 +-- .changeset/7201-schema-slot-census-gate.md | 2 +- .changeset/7344-handler-string-any-mirrors.md | 2 +- ...55-chatbot-registration-authoring-faces.md | 2 +- .changeset/7687-combobox-option-disabled.md | 4 +- ...735-zod-mirrors-stop-authoring-defaults.md | 2 +- .changeset/8070-name-visiblewhen-clear.md | 2 +- .../8148-number-badinput-refusal-keyed.md | 2 +- .../8149-location-placeholder-localized.md | 2 +- .../8268-testid-emitted-as-data-testid.md | 2 +- .changeset/action-callback-retired-7068.md | 2 +- .../component-docs-disabled-inherited-7239.md | 2 +- .changeset/olive-moons-shave.md | 2 +- .../publish-envelope-one-spelling-6962.md | 2 +- .../render-publish-advisory-findings-5026.md | 2 +- .changeset/shared-zod-wrapper-keys-6923.md | 2 +- .changeset/vi-mock-inherit-slice2.md | 2 +- .changeset/vi-mock-inherit-slice3.md | 2 +- .../app-shell/src/console/ai/AiChatPage.tsx | 2 +- .../src/console/ai/PendingDraftsBar.tsx | 2 +- .../src/preview/UnpublishedAppBar.tsx | 2 +- .../src/preview/usePublishAllDrafts.ts | 4 +- .../src/views/metadata-admin/PackagesPage.tsx | 4 +- .../studio-design/StudioDesignSurface.tsx | 2 +- packages/cli/src/commands/validate.ts | 4 +- .../cli/src/utils/union-arm-diagnostics.ts | 4 +- .../src/renderers/basic/metadata-viewer.tsx | 2 +- .../components/src/renderers/basic/text.tsx | 6 +-- .../src/renderers/complex/data-table.tsx | 2 +- .../components/src/renderers/form/form.tsx | 4 +- packages/core/src/evaluator/fieldRules.ts | 2 +- packages/core/src/registry/public-blocks.ts | 2 +- packages/data-objectstack/src/index.ts | 16 ++++---- .../data-objectstack/src/metadata-client.ts | 24 +++++------ packages/fields/src/FieldEditWidget.tsx | 6 +-- packages/fields/src/index.tsx | 2 +- packages/fields/src/widgets/DateField.tsx | 2 +- packages/fields/src/widgets/DateTimeField.tsx | 2 +- packages/fields/src/widgets/LocationField.tsx | 6 +-- packages/fields/src/widgets/TextField.tsx | 2 +- packages/fields/src/widgets/TimeField.tsx | 2 +- .../fields/src/widgets/numberBadInput.tsx | 2 +- packages/fields/src/widgets/toDomProps.ts | 2 +- packages/fields/src/widgets/toHostProps.ts | 4 +- .../fields/src/widgets/useFieldTranslation.ts | 2 +- packages/i18n/src/locales/en.ts | 2 +- packages/plugin-chatbot/src/renderer.tsx | 4 +- packages/plugin-grid/src/ObjectGrid.tsx | 18 ++++----- .../src/RequiredFieldsDialog.tsx | 4 +- packages/plugin-timeline/src/renderer.tsx | 40 +++++++++---------- .../test-support/src/defaults-table-scan.ts | 2 +- packages/test-support/src/index.ts | 2 +- .../test-support/src/spec-enum-options.ts | 6 +-- packages/test-support/src/zod-wrapper-keys.ts | 4 +- .../action-callback-retired-7068.test.ts | 4 +- packages/types/src/base.ts | 4 +- packages/types/src/complex.ts | 2 +- packages/types/src/crud.ts | 6 +-- packages/types/src/data-display.ts | 8 ++-- packages/types/src/layout.ts | 2 +- packages/types/src/zod/base.zod.ts | 2 +- packages/types/src/zod/crud.zod.ts | 12 +++--- packages/types/src/zod/data-display.zod.ts | 12 +++--- packages/types/src/zod/overlay.zod.ts | 2 +- 88 files changed, 222 insertions(+), 179 deletions(-) create mode 100644 .changeset/10803-dead-citation-sweep-fourth-batch.md create mode 100644 .changeset/10803-fourth-batch-runtime-strings.md diff --git a/.changeset/10039-publish-drafts-advisories.md b/.changeset/10039-publish-drafts-advisories.md index b239a9b27d..a5e02996f2 100644 --- a/.changeset/10039-publish-drafts-advisories.md +++ b/.changeset/10039-publish-drafts-advisories.md @@ -5,7 +5,7 @@ The AI build bar, the Studio workbench and the chat transcript's draft cards report the runtime authoring gate's per-draft advisories (objectui#10039) `POST /packages/:id/publish-drafts` has answered `advisories` on each -`published[]` element since objectstack#9343 landed, and objectui#6965 built the +`published[]` element since objectstack#9343 landed, and `ce986aafc` built the seam that reports them — `MetadataClient.publishPackageDrafts`, which emits one advisory event per advised element into the sink, renderer and wording the save and single-item publish doors use. Three app-shell call sites were still firing @@ -14,7 +14,7 @@ nobody: `console/ai/PendingDraftsBar`, `views/studio-design/StudioDesignSurface` and the chat draft card's publish handler in `console/ai/AiChatPage`. Each of the three now takes its client from `useMetadataClient` and calls that method, which is the whole change — the advisory toast is the client's, so all three surfaces -report identically to the two objectui#6965 routed, with no new UI shape. +report identically to the two `ce986aafc` routed, with no new UI shape. What moves with the route, at all three: diff --git a/.changeset/10803-dead-citation-sweep-fourth-batch.md b/.changeset/10803-dead-citation-sweep-fourth-batch.md new file mode 100644 index 0000000000..370cdd3129 --- /dev/null +++ b/.changeset/10803-dead-citation-sweep-fourth-batch.md @@ -0,0 +1,21 @@ +--- +--- + +Comment-only in `@object-ui/app-shell`, `@object-ui/cli`, `@object-ui/components`, +`@object-ui/core`, `@object-ui/data-objectstack`, `@object-ui/fields`, `@object-ui/i18n`, +`@object-ui/plugin-chatbot`, `@object-ui/plugin-grid`, `@object-ui/plugin-kanban`, +`@object-ui/plugin-timeline` and `@object-ui/types`, plus the private +`@object-ui/test-support`: docblocks and code comments that cited objectui issues which +answer 404 now cite the commit that landed each change, as a 9-character sha, the ruling +by its date where the sentence cites a ruling, or a live pointer the sentence already +named, and where nothing answers they name the card by role (objectui#10803, the fourth +batch). One bare number that was a sister-repo pull request is now written +`objectstack#6942`. Some of these docblocks reach the emitted `.d.ts` and `.js`; none of +them moves a claim, and none of these comment edits changes a code or type token. No +published behaviour changes through them, so this declares no release. The runtime text +the sweep touches, two tombstone guidance strings and two zod `.describe()` strings in +`@object-ui/types`, is declared on its own as a patch in +`10803-fourth-batch-runtime-strings.md`. + +The same repair in the pending changesets that carried these citations is prose-only, and +their frontmatter is byte-identical. diff --git a/.changeset/10803-fourth-batch-runtime-strings.md b/.changeset/10803-fourth-batch-runtime-strings.md new file mode 100644 index 0000000000..8a1cad1a5f --- /dev/null +++ b/.changeset/10803-fourth-batch-runtime-strings.md @@ -0,0 +1,23 @@ +--- +'@object-ui/types': patch +--- + +fix(types): four more runtime strings no longer point at objectui issues that answer 404 + +Two ADR-0049 retirement tombstones in the published zod mirrors and two runtime +descriptions carried a pointer to an objectui issue that answers 404. A reader of a parse +error or a zod `description` has no repository to resolve a commit against, so no dead +pointer becomes a commit: the tombstones cite `ADR-0049` in its place, and the two +description pointers are simply dropped (objectui#10803). + +- **The tombstone guidance.** The legacy `ActionSchema`'s `onSuccess` and `onFailure` + tombstones feed both the parse error an author reads and the `.describe()` text, and + each now opens `RETIRED (ADR-0049) —` in place of the dead card. Everything after the + dash is unchanged, so the remedy each message gives is word for word what it was. +- **Two descriptions.** `DataTableSchema.rowActions` now ends "mirrors the boolean the + renderer truthiness-tests", and `DataTableSchema.cellClassName` ends "so row density has + to be set on both". + +Nothing else in any string moves, and no key, path, issue code, accept set, refusal or +severity changes: every document that parsed before parses the same way and is refused at +the same path with the same code. diff --git a/.changeset/4895-retire-block-schema-family.md b/.changeset/4895-retire-block-schema-family.md index 67af25b994..8910954ca7 100644 --- a/.changeset/4895-retire-block-schema-family.md +++ b/.changeset/4895-retire-block-schema-family.md @@ -49,4 +49,4 @@ the node type `SchemaRenderer` actually takes. `packages/types/src/blocks.ts` and `packages/types/src/zod/blocks.zod.ts` are kept as ADR-0049 tombstones exporting nothing, and `block-family-retired-4895.test.ts` pins every retired name out of them. `content/docs/blocks/block-schema.mdx` is deleted with the family, -and objectui#7023 — the narrower validator-only fix — dissolves into this retirement. +and the separate card for the narrower validator-only fix dissolves into this retirement. diff --git a/.changeset/6755-field-diagnostics-i18n.md b/.changeset/6755-field-diagnostics-i18n.md index 06b1c97359..ccc0c1b3b6 100644 --- a/.changeset/6755-field-diagnostics-i18n.md +++ b/.changeset/6755-field-diagnostics-i18n.md @@ -25,4 +25,4 @@ labels, gate hints and validation copy were all translated. not restate the spec's bounds (a hand-copied range is a second contract). - Not in scope, and recorded rather than folded in: `LocationField`'s third refusal sentence — the residue arm objectui#6715 added after the ruling was - written — is still a literal. objectui#6888 carries it. + written — is still a literal. The card behind `320374d2a` carries it. diff --git a/.changeset/6872-app-shell-branding-title-jsdoc.md b/.changeset/6872-app-shell-branding-title-jsdoc.md index 02fa1f1f1d..62c1c26d14 100644 --- a/.changeset/6872-app-shell-branding-title-jsdoc.md +++ b/.changeset/6872-app-shell-branding-title-jsdoc.md @@ -2,7 +2,7 @@ '@object-ui/layout': patch --- -Correct the `AppShellBranding.title` doc comment (objectui#6872). It read "Page title +Correct the `AppShellBranding.title` doc comment. It read "Page title suffix (sets document.title)" while `useAppShellBranding` assigns `document.title = title` wholesale — nothing is appended; the caller composes the whole string (the console passes `"App label — Product name"`). That comment ships in `dist/index.d.ts` and is the only diff --git a/.changeset/6888-location-residue-refusal-keyed.md b/.changeset/6888-location-residue-refusal-keyed.md index 125bddc61c..89c1343bb4 100644 --- a/.changeset/6888-location-residue-refusal-keyed.md +++ b/.changeset/6888-location-residue-refusal-keyed.md @@ -4,7 +4,7 @@ --- Key `LocationField`'s THIRD refusal sentence — the residue arm — into the locale -packs (objectui#6888). +packs. Typing a half that is only PARTLY a number (`12abc, 34`) is refused by `LocationField` with its own sentence, added by objectui#6715. objectui#6755 had diff --git a/.changeset/6907-gantt-date-spelling-rule.md b/.changeset/6907-gantt-date-spelling-rule.md index 78decea6dd..1a63aaf179 100644 --- a/.changeset/6907-gantt-date-spelling-rule.md +++ b/.changeset/6907-gantt-date-spelling-rule.md @@ -2,12 +2,12 @@ '@object-ui/plugin-timeline': patch --- -Spell a refused gantt date by a RULE, not by `String` (objectui#6907) +Spell a refused gantt date by a RULE, not by `String` `spellGanttDateValue` fills the `{{value}}` hole of the unusable-gantt-date alert, whose job is to name the value the author wrote. Its `String(value)` fallback was written when nothing but `[object Object]`-shaped values could -reach it; objectui#6905's type rule routes the whole non-date type space +reach it; `85f6a6097`'s type rule routes the whole non-date type space through it, and it failed three ways — measured on `b458300ca`: - it **VANISHES**: `endDate: []` rendered "endDate is , which is not a valid @@ -18,7 +18,7 @@ through it, and it failed three ways — measured on `b458300ca`: with no hint the wrapper was at fault; - it **THROWS**: `{ toString() { throw } }`, a throwing `Symbol.toStringTag` getter and `Object.create(null)` each crashed the render outright. #6759 built - this helper "total by construction" and #6905 made that load-bearing, but the + this helper "total by construction" and `85f6a6097` made that load-bearing, but the type gate only stopped `new Date` from throwing — `String(value)` handed control to author code one line later, so the crash class moved into the speller instead of going away. diff --git a/.changeset/6921-cellclassname-cell-population-pins.md b/.changeset/6921-cellclassname-cell-population-pins.md index a47e7f3535..44b83712ae 100644 --- a/.changeset/6921-cellclassname-cell-population-pins.md +++ b/.changeset/6921-cellclassname-cell-population-pins.md @@ -1,7 +1,7 @@ --- --- -Test-only and comment-only change (objectui#6921); no published behaviour changes. +Test-only and comment-only change; no published behaviour changes. Pins, in the rendered DOM, which body cells the SCHEMA-level `cellClassName` on `DataTableSchema` reaches: exactly the three utility cells (selection, row-number, diff --git a/.changeset/6931-tombstone-guidance-remainder.md b/.changeset/6931-tombstone-guidance-remainder.md index cb29f6bcdc..bb7cd077e5 100644 --- a/.changeset/6931-tombstone-guidance-remainder.md +++ b/.changeset/6931-tombstone-guidance-remainder.md @@ -2,8 +2,7 @@ '@object-ui/types': patch --- -The remaining eleven ADR-0049 tombstones now refuse with their remediation text -(objectui#6931). +The remaining eleven ADR-0049 tombstones now refuse with their remediation text. objectui#6105 converted nine tombstones on `StaticTableColumnSchema` to `retirementTombstone()`, which writes a guidance string ONCE into both diff --git a/.changeset/6940-rowactions-boolean-mirror.md b/.changeset/6940-rowactions-boolean-mirror.md index 845de6de5b..e159176783 100644 --- a/.changeset/6940-rowactions-boolean-mirror.md +++ b/.changeset/6940-rowactions-boolean-mirror.md @@ -3,7 +3,7 @@ --- `DataTableSchema.rowActions` validates as the boolean it has always been declared to be -(objectui#6940, maintainer ruling 2026-09-02, director seat summon #8, option A). +(maintainer ruling 2026-09-02, director seat summon #8, option A). The hand-written zod mirror in `zod/data-display.zod.ts` declared `rowActions: z.array(z.any()).optional()`. Every other face of the same key says diff --git a/.changeset/6958-visiblewhen-clears-the-field-it-hides.md b/.changeset/6958-visiblewhen-clears-the-field-it-hides.md index 4042a06dea..2a5b74c2b9 100644 --- a/.changeset/6958-visiblewhen-clears-the-field-it-hides.md +++ b/.changeset/6958-visiblewhen-clears-the-field-it-hides.md @@ -3,7 +3,7 @@ --- A field its own `visibleWhen` hides is now cleared, so it stops carrying a stale value -to the server (objectui#6958). +to the server. **Breaking, deliberately.** Until now a field the form renderer hid because the field's own `visibleWhen` (or its deprecated view-level sibling `visibleOn`) resolved FALSE kept diff --git a/.changeset/6965-batch-publish-advisories.md b/.changeset/6965-batch-publish-advisories.md index 14e433cdff..f9a49cd103 100644 --- a/.changeset/6965-batch-publish-advisories.md +++ b/.changeset/6965-batch-publish-advisories.md @@ -4,7 +4,7 @@ --- Studio's "publish whole app" reports the runtime authoring gate's per-draft -advisories (objectui#6965; server half objectstack#9343). +advisories (server half objectstack#9343). `POST /packages/:id/publish-drafts` began answering `advisories` on each `published[]` element when objectstack#9343 landed, but the author publishing a diff --git a/.changeset/7004-cli-root-path-line.md b/.changeset/7004-cli-root-path-line.md index 1b9708c16d..d91a3eb9d8 100644 --- a/.changeset/7004-cli-root-path-line.md +++ b/.changeset/7004-cli-root-path-line.md @@ -3,7 +3,7 @@ --- `objectui validate` now says when a validation issue sits at the document root -(objectui#7004, mechanical half). +(the mechanical half). The printer guarded its Path line with `issue.path.length > 0`, so an issue at `path: []` printed no Path line at all — silent in exactly the case a reader @@ -24,5 +24,5 @@ Every reported issue now carries a Path line; a root-level one reads Scope: the printer still reads only top-level issues. Whether a failing union should also surface its per-arm diagnoses — and if so which arm's — is an -author-facing diagnostic contract left open on objectui#7004 for a maintainer +author-facing diagnostic contract left open for a maintainer ruling, and is deliberately not decided here. diff --git a/.changeset/7004-cli-union-arm-selection.md b/.changeset/7004-cli-union-arm-selection.md index 690dede100..878891bc10 100644 --- a/.changeset/7004-cli-union-arm-selection.md +++ b/.changeset/7004-cli-union-arm-selection.md @@ -3,14 +3,14 @@ --- `objectui validate` now prints the failing union arm the document selected, instead of a -bare "Invalid input" (objectui#7004, maintainer ruling 2026-09-02 — option B). +bare "Invalid input" (maintainer ruling 2026-09-02 — option B). `safeValidateSchema` checks a document against `AnyComponentSchema`, a `z.union`. When a document matches no arm, Zod reports ONE top-level issue — `invalid_union` · `Invalid input` · path `(root)` — and hangs every arm's real diagnosis off that issue's `errors` array, which nothing read. So a menu whose item used the divider spelling retired in objectui#6523 printed a bare verdict on the whole document, while the remediation text -objectui#6931 wrote into that arm sat one level down, unreachable. +`8063bcbdc` wrote into that arm sat one level down, unreachable. **What is printed now.** When the top-level issue is a failing union: diff --git a/.changeset/7007-relatedlist-schema-chain-gate.md b/.changeset/7007-relatedlist-schema-chain-gate.md index a19c1bed1f..07246878fc 100644 --- a/.changeset/7007-relatedlist-schema-chain-gate.md +++ b/.changeset/7007-relatedlist-schema-chain-gate.md @@ -20,12 +20,12 @@ fails at `:123` (`expected true to be false`) and at `:153` (`expected