From 6892954dc5994dc33113286018a089ee5019b489 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 16 Oct 2026 14:28:01 +0000 Subject: [PATCH 1/3] chore(objectui): move the console pin to f8267df93aba, past the spec's checkPageComponentViewData deletion Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8 --- .changeset/console-f8267df93aba.md | 91 ++++++++++++++++++++++++++++++ .objectui-sha | 2 +- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 .changeset/console-f8267df93aba.md diff --git a/.changeset/console-f8267df93aba.md b/.changeset/console-f8267df93aba.md new file mode 100644 index 00000000000..03bc02a1d66 --- /dev/null +++ b/.changeset/console-f8267df93aba.md @@ -0,0 +1,91 @@ +--- +"@objectstack/console": minor +--- + +Console (objectui) refreshed to `f8267df93aba`. Frontend changes in this range: + +Derived from the changesets objectui declared over the range — 46 releasing of 46 changesets added across 40 non-merge commits; omitted: 3 commits carrying no changeset (they ship no package code). + +- **minor** — **BREAKING** — The page renderer no longer compiles a `kind: 'jsx'` page node as `html`. This completes the retirement of the page kind `jsx` that `@objectstack/spec` 18 made (objectstack-ai/obj… (objectui `f8267df93`) +- **minor** — The page schemas no longer import or attach `@objectstack/spec`'s page-parse judge of a view-data component's retired `api` binding, which objectstack#23784 removed from the spec… (objectui `15d8ca6da`) +- **minor** — Home: "Recently accessed" brings you back to the records and list views you opened, beside the activity feed (objectui#12604). (objectui `f0e760afe`) +- **minor** — The details grid passes a pointer field's `referenceDeletedWhen` to `resolveRecordPointer` (objectui#12489). (objectui `023087f63`) +- **minor** — The record details grid draws a platform-deleted pointer target as a tombstone in the declared option's label (objectui#12489). (objectui `023087f63`) +- **minor** — `resolveRecordPointer` reads `referenceDeletedWhen`, so a pointer pair can say the platform deleted its target (objectui#12489). (objectui `023087f63`) +- **minor** — The console top bar is 48 px (`h-12`) in every frame, the height both approved console artboards draw (objectui#12639). It was 56 px (`h-14`). (objectui `dcd104102`) +- **minor** — List grids show the record a pointer field names, and the Approvals Inbox says who else is waiting (objectui#12608). (objectui `f78efdd1e`) +- **minor** — Locale keys for the console home's "My work" section (objectui#12602), in all ten packs. (objectui `db8ce2f41`) +- **minor** — The console home's "Needs your attention" card becomes the "My work" section of the approved home artboard (objectui#12602), and the pending-drafts banner above the greeting moves… (objectui `db8ce2f41`) +- **minor** — Resolve `@objectstack/*` `18.0.0-next.2` (objectui#12626). (objectui `f62b6ff4e`) +- **minor** — A kanban under a list view puts every record of the view in its column, not the list's first page, and its cards carry the view's first columns (objectui#12619). (objectui `8614705c1`) +- **minor** — **BREAKING** — `page:header` no longer reads `showStar`, ahead of `@objectstack/spec` 18 retiring the key (objectstack#23650). (objectui `608033b82`) +- **minor** — The console home's top half follows the approved home artboard (objectui#12601): a search field in the top bar, a greeting with a one-line work summary, two compact builder chips,… (objectui `6c4d00da0`) +- **minor** — `DefaultLoginPage` passes the translated names of `LoginForm`'s new password reveal toggle, `auth.login.showPasswordText` and `auth.login.hidePasswordText` (objectui#12600). It ke… (objectui `8ed7e5a8f`) +- **minor** — `LoginForm` gains an optional `hideHeader` prop and a password reveal toggle, and the shared auth form styles take the console login artboard's sizes (objectui#12600). (objectui `8ed7e5a8f`) +- **minor** — The console's login page follows the approved "refined centred" artboard (objectui#12600). (objectui `8ed7e5a8f`) +- **minor** — New `auth.login` strings for the console login page, in all ten language packs (objectui#12600): `welcomeTitle`, `welcomeDescription`, `showPasswordText`, `hidePasswordText`, `foo… (objectui `8ed7e5a8f`) +- **minor** — Every wide centred dialog keeps a 1rem gutter on each side of the window from `sm` (640px) up, by one shared class (objectui#12603). (objectui `726d8c9fc`) +- **minor** — A grouped grid now draws one table with one sticky column header. Each group is a 36 px band row between the rows: a chevron, the group value and its count, in one cell that spans… (objectui `619e3f7a4`) +- **minor** — The Studio's Publish and Changes buttons no longer open the pending-changes sheet the same way. (objectui `92c2a6976`) +- **minor** — **A record dialog with no authored layout opens bounded, and draws two fields per row wherever no `columns` is declared** (objectui#12521). Three defaults of `ModalForm` change. N… (objectui `7b5e55893`) +- **minor** — **BREAKING** — The console's list toolbar no longer has a write into the shared view, and the data-source method that write used is retired (objectui#12504). (objectui `3eb3ec138`) +- **minor** — Studio's Add field asks for the label and type before it creates the field, and the field type picker also searches descriptions (objectui#12516). (objectui `1b3b5b102`) +- **patch** — Action-param and bulk-action dialogs draw `date` and `datetime` params with the platform date picker, the same face record forms draw since objectui#12622 (objectui#12642). (objectui `c6b7d8203`) +- **patch** — The cloud-connection panel's "Not connected" card no longer repeats the page subtitle (objectui#12655). (objectui `efa9cb4fa`) +- **patch** — Record page sections: a collapsible section's header is now a real button named by the section title (objectui#12625). It carries `aria-expanded`, is reachable by Tab, and Enter o… (objectui `4be76e030`) +- **patch** — Studio's permission-set editor no longer offers the two delegated-admin switches that `@objectstack/spec` 18 retired (objectui#12406, the objectui half of objectstack#23488). (objectui `a98a23c78`) +- **patch** — Inside an app, the product mark stays in the top bar as the way home, and the app menu gains Back to home, All apps and Settings (objectui#12605). (objectui `a5bb7ac2f`) +- **patch** — Setup › Packaged automation keeps a flow row to the table's height when the platform says why the flow is not armed (objectui#12609). (objectui `8a8bcf3dd`) +- **patch** — Record forms draw `date` and `datetime` fields with the platform date picker instead of the browser's native date input (objectui#12622). (objectui `ca7a4c316`) +- **patch** — The record header draws one primary action and the rest as secondary buttons (objectui#12617). (objectui `ef71a09f9`) +- **patch** — **`marketplace.installedAdditiveNote` is plain text in all ten packs** (objectui#12610). Each value dropped its leading `Note:` markup (in that pack's language);… (objectui `f74638c1b`) +- **patch** — **Installed Apps' kernel note is the tooltip of the Uninstall it qualifies** (objectui#12610). The "kernel API is additive only" note was a paragraph at the foot of the list, show… (objectui `f74638c1b`) +- **patch** — **A settings action row draws its label once, on the button** (objectui#12610). The settings renderer's `action_button` row printed the manifest's `label` as the row label and aga… (objectui `f74638c1b`) +- **patch** — Marketplace cards show the whole app name, and the id keeps its package name (objectui#12616). (objectui `07b063249`) +- **patch** — Studio at a narrow width keeps the words that matter readable (objectui#12611). (objectui `a8560b228`) +- **patch** — The list toolbar's Display menu now closes once a layout is chosen (segmented or dropdown switcher), returning focus to the Display button, as Escape already does; the panel's tog… (objectui `79c199692`) +- **patch** — The Studio's Automations rail orders its object groups the way the package's app presents its objects (objectui#12612). The groups used to follow the alphabet of the object labels… (objectui `0a41305b0`) +- **patch** — Metric tiles keep their title readable in narrow tiles. The title now owns the first line (up to two lines, with an ellipsis on the second), the value never wraps and steps down o… (objectui `63d00da3d`) +- **patch** — The pending-changes sheet no longer lists the package stamp as one of the author's own changes (objectui#12594). Expanding a new object draft showed `_packageId` under "Also chang… (objectui `33fbc861d`) +- **patch** — An `lg` or `xl` `ModalForm` dialog keeps a 1rem gutter on each side of the window from `sm` (640px) up (objectui#12593). (objectui `85e8961f2`) +- **patch** — A boolean cell's read-only checkbox is named by its field (objectui#12584). (objectui `7d0c174ba`) +- **patch** — Studio's way home leads back to the Studio landing, and the two links that leave for Setup say so (objectui#12513). (objectui `f5eec6383`) +- **patch** — **The console's New and Edit dialog on a field-heavy object opens bounded on desktop** (objectui#12521). For an object with twelve or more authorable fields, `@objectstack/spec`'s… (objectui `7b5e55893`) +- **patch** — Studio: the draft status chip sits in the same place in every pillar's item header (objectui#12524). "Unpublished draft" in Data, Automations and Interfaces, and Access's "saved a… (objectui `ae923ece2`) + +⚠️ 3 of these carry a breaking change: 3 by the author's own breaking annotation in the changeset body — objectui declares no `major` inside a launch window (`scripts/check-changeset-no-major.mjs`). Each is marked **BREAKING** in the list above — read them before compiling the release record. + +**In this console build, declared nowhere** — objectui merged 3 commits in this range with no `.changeset/*.md`. The code is inside the pin above and ships here, but nothing upstream declared them, so they appear in no objectui CHANGELOG and in no entry above. Listed by subject rather than counted, because a count cannot tell a dependency bump from a form-behaviour change (objectstack#6174); the upstream gate that would prevent this is objectui#3387. + +- _(no changeset)_ fix(live-e2e): the backend cold install writes overrides.vitest so npm 10 can install the published graph (objectui#12649) (#12674) (objectui `d66ceea5a`) +- _(no changeset)_ docs(skills): point two published member counts at their declarations instead of numbers (objectui#12588) (#12591) (objectui `8415d9f11`) +- _(no changeset)_ ci: delete the spec-main-shape-gate copy, the spec shape gate runs in objectstack (objectui#12352) (#12596) (objectui `c6a42be39`) + +Clause-②: no + + + +objectui range: `daeb77fc84dd...f8267df93aba` diff --git a/.objectui-sha b/.objectui-sha index a2299f5d309..ee434b6b6f0 100644 --- a/.objectui-sha +++ b/.objectui-sha @@ -1 +1 @@ -daeb77fc84dd824e74c95b87cdede85afdb248e7 +f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56 From 3e89932e621dae1c958ca6694127381501465146 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 16 Oct 2026 14:43:13 +0000 Subject: [PATCH 2/3] chore(objectui): regenerate the SDUI manifest and the lockstep record at pin f8267df93aba Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8 --- packages/sdui-parser/objectui-lockstep.json | 6 +++--- scripts/sdui-manifest.record.json | 6 +++--- sdui.manifest.json | 6 +----- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/sdui-parser/objectui-lockstep.json b/packages/sdui-parser/objectui-lockstep.json index a47e2b101af..4f2c7989076 100644 --- a/packages/sdui-parser/objectui-lockstep.json +++ b/packages/sdui-parser/objectui-lockstep.json @@ -6,8 +6,8 @@ ], "objectui": { "repo": "https://github.com/objectstack-ai/objectui.git", - "rev": "daeb77fc84dd824e74c95b87cdede85afdb248e7", - "revDate": "2026-10-15T23:34:05+00:00", + "rev": "f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56", + "revDate": "2026-10-16T14:03:42+00:00", "source": "packages/sdui-parser/src", "files": [ "packages/sdui-parser/src/body-dialect.ts", @@ -21,7 +21,7 @@ "packages/sdui-parser/src/validate.ts" ] }, - "recordedAgainstPin": "daeb77fc84dd824e74c95b87cdede85afdb248e7", + "recordedAgainstPin": "f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56", "grammarRegion": { "file": "packages/sdui-parser/src/parse.ts", "delimiter": "/* ---------------------- the JS literal subset (#6614) ---------------------- */", diff --git a/scripts/sdui-manifest.record.json b/scripts/sdui-manifest.record.json index 9ae7d87590d..d386ff09bc5 100644 --- a/scripts/sdui-manifest.record.json +++ b/scripts/sdui-manifest.record.json @@ -11,12 +11,12 @@ "a pin bump without regeneration goes RED there — that is the anti-rot half of the freshness gate.", "Regenerate + re-record: pnpm objectui:build && node scripts/gen-sdui-manifest-node.mjs" ], - "objectuiSha": "daeb77fc84dd824e74c95b87cdede85afdb248e7", + "objectuiSha": "f8267df93aba8fb09cc1cc0692eadc0c8c5a5e56", "source": "built-tree", - "modulesRoot": ".cache/objectui-daeb77fc84dd/apps/console", + "modulesRoot": ".cache/objectui-f8267df93aba/apps/console", "objectuiWorkspaceVersion": "17.7.0", "generator": "scripts/gen-sdui-manifest-node.mjs", "generatedAt": "2026-10-16", - "sha256": "370153544e9b8013beb95fd5e8af3eec91f911c2813ba82b216684d71c4a3f17", + "sha256": "beba7d3fe26072b35143cad70fc48891a2ac1eac5264a41cb48953dac3553fa9", "components": 107 } diff --git a/sdui.manifest.json b/sdui.manifest.json index a429cb80f69..ca9202e3b2d 100644 --- a/sdui.manifest.json +++ b/sdui.manifest.json @@ -3318,10 +3318,6 @@ "type": "boolean", "description": "Set false for the bare h1 header on non-record pages" }, - { - "name": "showStar", - "type": "boolean" - }, { "name": "showCopyId", "type": "boolean" @@ -3329,7 +3325,7 @@ { "name": "maxVisible", "type": "number", - "description": "How many header actions render as inline buttons on desktop before the rest fold into the overflow menu. A positive integer — the contract rejects 0 and fractional values. Two kinds of action are routed to the overflow menu regardless of this budget and never occupy an inline slot: an action whose locations declare record_more without record_header, and any action with component action:menu." + "description": "How many header actions render as inline buttons on desktop before the rest fold into the overflow menu. A positive integer — the contract rejects 0 and fractional values. Two kinds of action are routed to the overflow menu regardless of this budget and never occupy an inline slot: an action whose locations declare record_more without record_header, and any action with component action:menu. The host's own buttons (the record page's Edit) take no slot and never fold. The first inline action, or the one declaring variant primary, is the one filled primary button; the others are outline buttons." }, { "name": "mobileMaxVisible", From 0136ab25c8b78c15922351d0e15ccb1964aa2294 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 16 Oct 2026 14:44:36 +0000 Subject: [PATCH 3/3] ci(spec-shape-gate): register #23846's select-option kind against objectui#12711 Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01FQ8CFdsfm5FTPhm4HHxGN8 --- scripts/ci/spec-shape-retirements.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/ci/spec-shape-retirements.json b/scripts/ci/spec-shape-retirements.json index 29d6cdcab65..07133694a65 100644 --- a/scripts/ci/spec-shape-retirements.json +++ b/scripts/ci/spec-shape-retirements.json @@ -19,6 +19,20 @@ "message": "Type 'string' is not assignable to type '{ '[REMOVED] Key retired: run `os validate` for its migration.': never; }'." } ] + }, + { + "retired": "nothing retired -- the spec ADDED an optional key: the select option's lifecycle `kind` (`open` | `won` | `lost`, required only under a `stageField`, #23809). objectui's select-option convergence pins assert by design that the converged form and metadata faces gained no key beyond `description` / `default`, so a new spec key reds them (TS2344 `Equal` pins, compiled only by the package's chained test project); the entry is deleted when objectui re-pins the faces", + "objectstack_pr": 23846, + "objectstack_commit": "adad73f71483abf84b470e90367fe8080c44a4e0", + "downstream_card": "objectstack-ai/objectui#12711", + "registered_at": "2026-10-16", + "matches": [ + { + "file": "packages/types/src/__tests__/select-option-tier1-convergence-7014.test.ts", + "code": "TS2344", + "message": "Type 'false' does not satisfy the constraint 'true'." + } + ] } ] }