Repository navigation
chore: release packages - #13289
Open
github-actions[bot] wants to merge 1 commit into
Open
chore: release packages#13289github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
October 21, 2026 06:23
66b7b4e to
01ae825
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
October 21, 2026 12:20
01ae825 to
3709893
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@object-ui/components@18.1.0
Minor Changes
8701f1e: The record page heading draws a
nameFieldthat declares a widget with a read face of its own through that face, the one the field's list column draws (objectui#13216). A record share (nameField: 'recipient_id', which declareswidget: 'recipient-picker'anddependsOn: ['recipient_type']) now heads its page with the recipient's name instead of the user id it stores. Every other heading is unchanged: a plain text or selectnameField, atitleFormat, an explicittitle, an object with nonameField, a widget with no read face of its own, a widget whose key has no face registered under it (it draws the stored text), and a host that does not load@object-ui/fields.@object-ui/componentsadds a field-face seam on its entry:setFieldReadFaceResolver(resolver)installs the resolver,resolveFieldReadFace(field)asks it, and the typesFieldReadFace,FieldReadFacePropsandFieldReadFaceResolverdescribe them.@object-ui/fieldsfills it when it loads, with the samegetCellRenderer(resolveCellRendererType(field))lookup the grid's cells make, so a host has nothing to wire.RecordTitleChipgains an optionaltitleNodeprop, drawn inside its heading in place of thetitletext;titlestays a required string.Patch Changes
7c405b7: A
page:tabsitem whosevisibleWhenfaults on evaluation is no longer drawn (objectui#13286).A predicate that cannot be evaluated (a source over the CEL engine's AST bound, a type error, an unbound root, a missing function) used to fall back to visible, so the tab drew for a viewer the predicate was written to exclude. It now fails closed: the tab, header and panel, is withheld, and the fault is logged once per authored source through the same console report as before, now saying the tab was withheld. If the withheld tab was the active one, the strip falls back to the first visible tab. A tab with no
visibleWhen, or a blank one, is still shown, and a predicate that evaluates decides exactly as before. Form field rules keep their documented fail-open.3aafc0d: A page node whose declared
visibleWhen/visible/visibleOnpredicate cannot be evaluated (over the CEL bounds, a type error, an unbound root, a missing function) is no longer rendered: page visibility gates now fail closed, as apage:tabsitem already did. The fault is still reported once, and the console line says the node was withheld. A blank gate still means "no gate", and a predicate that evaluates decides as before. Apage:tabsbadge no longer counts a related list withheld this way. Form field rules keep their fail-open (objectui#13299).fbb4b23: data-table / VirtualGrid: selecting a cell's text no longer opens the record or starts an inline edit, and Ctrl/Cmd+C copies the selected text instead of the whole cell value. A plain click still opens or edits as before (objectui#13188).
c8f8b10: data-table: with row numbers on, the header's select-all checkbox, each row's checkbox and the row number now share one centre line in the leading column (objectui#13293).
Updated dependencies [8556295]
Updated dependencies [5235d6d]
Updated dependencies [0093b2c]
Updated dependencies [3aafc0d]
Updated dependencies [601c406]
@object-ui/types@18.1.0
Minor Changes
8556295:
NavigationItemSchemanow refuses a navigation entry whosevisiblereadsdatabut which declares nodataSource, as@objectstack/spec'sNavigationItemSchemaalready does (objectui#13076). The rule is the spec's own exportednavItemVisibleDataNeedsDataSource, chained on every navigation arm (the flat arm and thedocarm), not restated, soobjectui validateand the platform's save door refuse the same entry with the same issue atvisible.This narrows the published validator toward the spec: an entry such as
{ id: 'nav_envs', type: 'object', objectName: 'sys_environment', visible: 'data.total == 1' }validated clean here and failed at publish; it is now refused here too. Declare thedataSourcewhose bound valuevisiblereads, or gate oncurrent_userorfeaturesinstead. An entry with adataSource, or whosevisibleis a boolean, absent, or reads nodata, is unaffected.@object-ui/console@18.1.0
Patch Changes
a91f6bb: The Approvals Inbox opens a request on the page the platform serves for it, and its side sheet is gone (objectui#12484).
A row, a mobile card, Enter on the focused row, and a notification's
?request=deep link now open the request's record page: thesys_approval_request_detailpage@objectstack/plugin-approvalsserves, on the console's standard record route. That page shows the request's title (the flow's label), its decision panel (the declared amount and snapshot summary, the approvers, the step line and the decisions), its highlights, its target record, and its timeline. The deep link takes its own place in the browser history, so Back returns to where the reader came from; from a row, Back returns to the inbox.The inbox's own request sheet is deleted. Its quick paths stay: inline approve and reject, bulk decisions, filters, sorting and keyboard navigation.
0093b2c: Settings pages: a
url,email,phoneorcolorvalue that misses the format its type declares now blocks Save (objectui#13287). No request goes out, the row is marked inline with a message naming what the format expects, and focus moves to the first such row, on the same path as therequiredcheck. The grammars are the settings service's own (objectstack#24882), judged on the trimmed value; an empty value is left torequired, and a hidden or env-locked row is not judged. Addsconsole.settingsView.invalidPhoneandconsole.settingsView.invalidColorto every locale pack;emailandurlreusevalidation.emailandvalidation.url.@object-ui/sdui-parser@18.1.0
@object-ui/app-shell@18.1.0
Patch Changes
b001d21: The README's "Setup half of an item" now says what objectstack's shipped organization administrator set does on the assignment objects: it creates and removes rows on
sys_user_positionandsys_user_permission_setand never edits them, bounded on the server by the delegated-administration gate, so that administrator sees Add and Remove on a position's and a permission set's holders. No behaviour change.36b70c0: The package edit dialog (Studio / Setup) now edits a package's
dependencies. The row is no longer locked once the package exists, and saving sends it toPATCH /api/v1/packages/:idbeside the name, description and version when the author changed it; emptying it sends{}, which clears the declaration. The server's400 VALIDATION_ERRORfor a malformed row and422 WRITABLE_PACKAGE_REQUIREDfor a read-only package show in the dialog, which stays open.5235d6d: Setup › Packaged automation: the clone result now offers the next steps (objectui#13270).
A clone of a packaged flow is created
draft, which does not switch it off, so a cloned record-change or schedule flow runs beside the flow it was copied from. The result used to show the server's notice and nothing to click. It now keeps that notice and adds:/studio/~org/automations) opened on the clone.The clone itself is unchanged. Three new language-pack keys,
packagedAutomation.cloneSwitchSourceOff,.cloneSourceOffand.cloneOpen, in all ten packs.cf153eb: The permission-set editor no longer keeps the clone notice once the copy is held or saved (objectui#13272).
"Clone to customize" opens the copy with the server's notice: what was not copied, and that the copy is held by nobody yet. The notice is the server's answer at the moment of the clone. It stayed on the copy for as long as the copy was open, so after a user was assigned and the copy was saved it still said nobody held it. The notice now goes when the copy's Assigned Users list first shows anyone (a direct grant or a holder through a position), or when a save of the copy succeeds. A refused save keeps it, and so does a failed read of the holders. On an embedded host, where the copy is announced on the set it was cloned from, saving that set keeps it too. While the notice shows, it is still shown whole and in the server's words.
9e1bff6: The app's report index (
/apps/APP/reports) and the ⌘K palette's report list now include the reports a module contributes to the app's navigation (navigationContributions), not only the reports the app's own package owns. The index lists the union of the app package's reports and every report atype: 'report'navigation entry names, deduplicated by name; an entry naming a report the server does not serve is left out, and the dataset read gate still hides a report the member may not read.53dea27: The package dialog's Dependencies row is now an author-facing editor (objectui#13278). It used to be the spec form's raw JSON box under the developer hint "widget object-fields — falling back to JSON until a custom renderer is registered", because the manifest's
dependenciesis a string map the spec form has no renderer for.The row now lists one line per dependency, a package name and a version range, with add and remove, in create, edit and view mode. It sends the same flat map as before: in edit mode only when changed, and
{}when every row is removed. An empty or duplicate package name is flagged under its row and keeps save disabled. The ranges are judged by the server, whose refusals render in the dialog as before.Nothing is added to the package entry: no export, prop or type member. The new copy lives in the metadata-admin designer's own string tables (en and zh).
7e9708e: The console home blocks
hero,stat,usage-bar,checklistandtile-gridregister under theapp-shellnamespace, so the console no longer logs a "without a namespace is deprecated" warning for each on every boot (objectui#13301).Pages keep writing the bare key:
type: 'hero'still draws the block through the registry's bare fallback.objectui checknow knows the fiveapp-shell:keys as registered, andobjectui validaterefuses them attype, so the bare spelling stays the one authorable key.2794254: The Position preview lists the permission sets a position declares in
permissionSets(ADR-0131 D4), by machine name in declared order. The "positions don't grant data access on their own — bind it to Permission Sets" note now shows only for a position that declares none (objectui#13304).78bd6d7: The
/datapage's generated filter bar now offers single-value relation fields (lookup,master_detailanduser) beside the picklist fields (objectui#13310). A relation chip opens the list's existing remote-search picker, which queries the related object through the caller's data source, and a pick filters the rows by the related record's id. The selection persists in the sameuf_*URL params as the picklist filters, so it survives a reload; an id that no longer resolves shows as the id.So an organization's Members "View all" page, which anchors no declared view, can now be filtered by User as well as by Role.
Picklist fields keep their slots: relation fields follow them in declaration order and take only the slots the picklists leave under the bar's four-field cap. A multi-value relation (
multiple: true), a hidden field and a field the caller cannot read are not offered. An object without a single-value relation field renders the same bar as before.Updated dependencies [8556295]
Updated dependencies [8701f1e]
Updated dependencies [5235d6d]
Updated dependencies [8e649da]
Updated dependencies [7c405b7]
Updated dependencies [0093b2c]
Updated dependencies [f669732]
Updated dependencies [813c3d9]
Updated dependencies [3aafc0d]
Updated dependencies [601c406]
Updated dependencies [fbb4b23]
Updated dependencies [c8f8b10]
@object-ui/cli@18.1.0
Patch Changes
7e9708e: The console home blocks
hero,stat,usage-bar,checklistandtile-gridregister under theapp-shellnamespace, so the console no longer logs a "without a namespace is deprecated" warning for each on every boot (objectui#13301).Pages keep writing the bare key:
type: 'hero'still draws the block through the registry's bare fallback.objectui checknow knows the fiveapp-shell:keys as registered, andobjectui validaterefuses them attype, so the bare spelling stays the one authorable key.Updated dependencies [8556295]
Updated dependencies [8701f1e]
Updated dependencies [7c405b7]
Updated dependencies [3aafc0d]
Updated dependencies [601c406]
Updated dependencies [fbb4b23]
Updated dependencies [c8f8b10]
@object-ui/collaboration@18.1.0
Patch Changes
@object-ui/core@18.1.0
Patch Changes
@object-ui/data-objectstack@18.1.0
Patch Changes
@object-ui/fields@18.1.0
Patch Changes
8701f1e: The record page heading draws a
nameFieldthat declares a widget with a read face of its own through that face, the one the field's list column draws (objectui#13216). A record share (nameField: 'recipient_id', which declareswidget: 'recipient-picker'anddependsOn: ['recipient_type']) now heads its page with the recipient's name instead of the user id it stores. Every other heading is unchanged: a plain text or selectnameField, atitleFormat, an explicittitle, an object with nonameField, a widget with no read face of its own, a widget whose key has no face registered under it (it draws the stored text), and a host that does not load@object-ui/fields.@object-ui/componentsadds a field-face seam on its entry:setFieldReadFaceResolver(resolver)installs the resolver,resolveFieldReadFace(field)asks it, and the typesFieldReadFace,FieldReadFacePropsandFieldReadFaceResolverdescribe them.@object-ui/fieldsfills it when it loads, with the samegetCellRenderer(resolveCellRendererType(field))lookup the grid's cells make, so a host has nothing to wire.RecordTitleChipgains an optionaltitleNodeprop, drawn inside its heading in place of thetitletext;titlestays a required string.8e649da: A row action's
defaultFromRowparam backed by a relation is seeded with the related record's id again, not the whole record (objectui#13271).Related lists read their rows with the relations they show expanded, so a
lookup,master_detail,userortreevalue arrives as the related record. The param seed copied that record verbatim, and the action sent it where the endpoint expects the id. Setup → Teams → Remove from Team answered 400 "User is not a member of the organization" for every member.The seed now uses the row's stored form, by the same field-type rule the predicate and Undo paths use: a field the row's object declares relational becomes its id, and a
multipleone becomes the array of ids. Every other field, including ajsonvalue that has anidkey, is seeded exactly as before. The dialog still shows the related record's name. Nothing is added to the package entry.813c3d9: A password or secret input now tells the browser what it is for (objectui#13295).
The password widget's editable input carries an
autocompletetoken. A field or action parameter whose name reads as the user's existing password (a wordcurrent,oldorexistingin the name, as incurrent_passwordoroldPassword) getscurrent-password; every other password or secret getsnew-password. Before, the input had no token, so a browser treated each one as a sign-in field: it offered the saved site password for an API key or a new password, and its password manager could not tell the old password from the new one in a change-password dialog. The masked input and its show/hide toggle are unchanged.Updated dependencies [8556295]
Updated dependencies [8701f1e]
Updated dependencies [5235d6d]
Updated dependencies [7c405b7]
Updated dependencies [0093b2c]
Updated dependencies [3aafc0d]
Updated dependencies [601c406]
Updated dependencies [fbb4b23]
Updated dependencies [c8f8b10]
@object-ui/i18n@18.1.0
Patch Changes
5235d6d: Setup › Packaged automation: the clone result now offers the next steps (objectui#13270).
A clone of a packaged flow is created
draft, which does not switch it off, so a cloned record-change or schedule flow runs beside the flow it was copied from. The result used to show the server's notice and nothing to click. It now keeps that notice and adds:/studio/~org/automations) opened on the clone.The clone itself is unchanged. Three new language-pack keys,
packagedAutomation.cloneSwitchSourceOff,.cloneSourceOffand.cloneOpen, in all ten packs.0093b2c: Settings pages: a
url,email,phoneorcolorvalue that misses the format its type declares now blocks Save (objectui#13287). No request goes out, the row is marked inline with a message naming what the format expects, and focus moves to the first such row, on the same path as therequiredcheck. The grammars are the settings service's own (objectstack#24882), judged on the trimmed value; an empty value is left torequired, and a hidden or env-locked row is not judged. Addsconsole.settingsView.invalidPhoneandconsole.settingsView.invalidColorto every locale pack;emailandurlreusevalidation.emailandvalidation.url.@object-ui/core@18.1.0
@object-ui/layout@18.1.0
Patch Changes
@object-ui/mobile@18.1.0
Patch Changes
@object-ui/permissions@18.1.0
Patch Changes
@object-ui/plugin-ai@18.1.0
Patch Changes
@object-ui/plugin-calendar@18.1.0
Patch Changes
@object-ui/plugin-charts@18.1.0
Patch Changes
@object-ui/plugin-chatbot@18.1.0
Patch Changes
@object-ui/plugin-dashboard@18.1.0
Patch Changes
@object-ui/plugin-designer@18.1.0
Patch Changes
@object-ui/plugin-detail@18.1.0
Patch Changes
f669732: The inline-edit save bar shows an object-level rule's refusal as the rule's own message, without a field label (objectui#13292).
The server names an object-level rule (a
scriptrule, or one that lists no fields) with the_recordsentinel. The bar used to print that sentinel as a field label, so the banner read_record: …. Now an entry that names_record, or names no field of the record, is shown alone in the banner and is not published as a per-field hint. Field-level entries are unchanged: they keep their label and their hint beside the input.Updated dependencies [8556295]
Updated dependencies [8701f1e]
Updated dependencies [5235d6d]
Updated dependencies [8e649da]
Updated dependencies [7c405b7]
Updated dependencies [0093b2c]
Updated dependencies [813c3d9]
Updated dependencies [3aafc0d]
Updated dependencies [601c406]
Updated dependencies [fbb4b23]
Updated dependencies [c8f8b10]
@object-ui/plugin-editor@18.1.0
Patch Changes
@object-ui/plugin-form@18.1.0
Patch Changes
@object-ui/plugin-gantt@18.1.0
Patch Changes
@object-ui/plugin-grid@18.1.0
Patch Changes
@object-ui/plugin-kanban@18.1.0
Patch Changes
@object-ui/plugin-list@18.1.0
Patch Changes
@object-ui/plugin-map@18.1.0
Patch Changes
@object-ui/plugin-markdown@18.1.0
Patch Changes
@object-ui/plugin-report@18.1.0
Patch Changes
@object-ui/plugin-timeline@18.1.0
Patch Changes
@object-ui/plugin-tree@18.1.0
Patch Changes
@object-ui/plugin-view@18.1.0
Patch Changes
@object-ui/providers@18.1.0
Patch Changes
@object-ui/react@18.1.0
Patch Changes
visibleWhen/visible/visibleOnpredicate cannot be evaluated (over the CEL bounds, a type error, an unbound root, a missing function) is no longer rendered: page visibility gates now fail closed, as apage:tabsitem already did. The fault is still reported once, and the console line says the node was withheld. A blank gate still means "no gate", and a predicate that evaluates decides as before. Apage:tabsbadge no longer counts a related list withheld this way. Form field rules keep their fail-open (objectui#13299).page:tabsitem and a page node, so it now says "an element whose visibility predicate cannot be evaluated is WITHHELD". The verdict, the line's opening, and when it is printed are unchanged (objectui#13303).@object-ui/runner@18.1.0
Patch Changes
@object-ui/auth@18.1.0
@object-ui/create-plugin@18.1.0
@object-ui/react-runtime@18.1.0
@object-ui/sdui-parser@18.1.0
object-ui@18.1.0
Patch Changes