From 4f4055ce783f85771e7e1dca73bfbe2f46c1303d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:43:07 +0000 Subject: [PATCH] chore: release packages --- ...apt-atomic-publish-and-honest-discovery.md | 6 - .changeset/ai-plan-approve-feedback.md | 12 -- .changeset/approval-band-request-tracked.md | 17 --- .../approver-type-membership-tier-picker.md | 24 ---- .changeset/cascade-select-dependent-values.md | 23 ---- .changeset/listview-spec-derive.md | 35 ------ .changeset/login-config-race-sso-timeout.md | 21 ---- .changeset/login-dev-admin-hint.md | 6 - .changeset/oidc-signin-social-route.md | 15 --- .changeset/register-double-divider.md | 8 -- .changeset/row-crud-cel-predicates-2614.md | 22 ---- .changeset/spec-15-ui-schema-reexports.md | 9 -- .changeset/spec-bridge-listview-types.md | 15 --- .changeset/welcome-cta-autocreate.md | 14 --- apps/console/CHANGELOG.md | 8 ++ apps/console/package.json | 2 +- packages/app-shell/CHANGELOG.md | 109 ++++++++++++++++++ packages/app-shell/package.json | 2 +- packages/auth/CHANGELOG.md | 43 +++++++ packages/auth/package.json | 2 +- packages/cli/CHANGELOG.md | 16 +++ packages/cli/package.json | 2 +- packages/collaboration/CHANGELOG.md | 9 ++ packages/collaboration/package.json | 2 +- packages/components/CHANGELOG.md | 63 ++++++++++ packages/components/package.json | 2 +- packages/core/CHANGELOG.md | 9 ++ packages/core/package.json | 2 +- packages/create-plugin/CHANGELOG.md | 2 + packages/create-plugin/package.json | 2 +- packages/data-objectstack/CHANGELOG.md | 10 ++ packages/data-objectstack/package.json | 2 +- packages/fields/CHANGELOG.md | 20 ++++ packages/fields/package.json | 2 +- packages/i18n/CHANGELOG.md | 6 + packages/i18n/package.json | 2 +- packages/layout/CHANGELOG.md | 17 +++ packages/layout/package.json | 2 +- packages/mobile/CHANGELOG.md | 9 ++ packages/mobile/package.json | 2 +- packages/permissions/CHANGELOG.md | 9 ++ packages/permissions/package.json | 2 +- packages/plugin-ai/CHANGELOG.md | 17 +++ packages/plugin-ai/package.json | 2 +- packages/plugin-calendar/CHANGELOG.md | 22 ++++ packages/plugin-calendar/package.json | 2 +- packages/plugin-charts/CHANGELOG.md | 19 +++ packages/plugin-charts/package.json | 2 +- packages/plugin-chatbot/CHANGELOG.md | 24 ++++ packages/plugin-chatbot/package.json | 2 +- packages/plugin-dashboard/CHANGELOG.md | 20 ++++ packages/plugin-dashboard/package.json | 2 +- packages/plugin-designer/CHANGELOG.md | 23 ++++ packages/plugin-designer/package.json | 2 +- packages/plugin-detail/CHANGELOG.md | 49 ++++++++ packages/plugin-detail/package.json | 2 +- packages/plugin-editor/CHANGELOG.md | 17 +++ packages/plugin-editor/package.json | 2 +- packages/plugin-form/CHANGELOG.md | 35 ++++++ packages/plugin-form/package.json | 2 +- packages/plugin-gantt/CHANGELOG.md | 21 ++++ packages/plugin-gantt/package.json | 2 +- packages/plugin-grid/CHANGELOG.md | 37 ++++++ packages/plugin-grid/package.json | 2 +- packages/plugin-kanban/CHANGELOG.md | 21 ++++ packages/plugin-kanban/package.json | 2 +- packages/plugin-list/CHANGELOG.md | 22 ++++ packages/plugin-list/package.json | 2 +- packages/plugin-map/CHANGELOG.md | 17 +++ packages/plugin-map/package.json | 2 +- packages/plugin-markdown/CHANGELOG.md | 17 +++ packages/plugin-markdown/package.json | 2 +- packages/plugin-report/CHANGELOG.md | 21 ++++ packages/plugin-report/package.json | 2 +- packages/plugin-timeline/CHANGELOG.md | 18 +++ packages/plugin-timeline/package.json | 2 +- packages/plugin-tree/CHANGELOG.md | 17 +++ packages/plugin-tree/package.json | 2 +- packages/plugin-view/CHANGELOG.md | 21 ++++ packages/plugin-view/package.json | 2 +- packages/providers/CHANGELOG.md | 9 ++ packages/providers/package.json | 2 +- packages/react-runtime/CHANGELOG.md | 2 + packages/react-runtime/package.json | 2 +- packages/react/CHANGELOG.md | 41 +++++++ packages/react/package.json | 2 +- packages/runner/CHANGELOG.md | 19 +++ packages/runner/package.json | 2 +- packages/sdui-parser/CHANGELOG.md | 2 + packages/sdui-parser/package.json | 2 +- packages/types/CHANGELOG.md | 58 ++++++++++ packages/types/package.json | 2 +- packages/vscode-extension/CHANGELOG.md | 10 ++ packages/vscode-extension/package.json | 2 +- 94 files changed, 949 insertions(+), 267 deletions(-) delete mode 100644 .changeset/adapt-atomic-publish-and-honest-discovery.md delete mode 100644 .changeset/ai-plan-approve-feedback.md delete mode 100644 .changeset/approval-band-request-tracked.md delete mode 100644 .changeset/approver-type-membership-tier-picker.md delete mode 100644 .changeset/cascade-select-dependent-values.md delete mode 100644 .changeset/listview-spec-derive.md delete mode 100644 .changeset/login-config-race-sso-timeout.md delete mode 100644 .changeset/login-dev-admin-hint.md delete mode 100644 .changeset/oidc-signin-social-route.md delete mode 100644 .changeset/register-double-divider.md delete mode 100644 .changeset/row-crud-cel-predicates-2614.md delete mode 100644 .changeset/spec-15-ui-schema-reexports.md delete mode 100644 .changeset/spec-bridge-listview-types.md delete mode 100644 .changeset/welcome-cta-autocreate.md diff --git a/.changeset/adapt-atomic-publish-and-honest-discovery.md b/.changeset/adapt-atomic-publish-and-honest-discovery.md deleted file mode 100644 index 789343681..000000000 --- a/.changeset/adapt-atomic-publish-and-honest-discovery.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@object-ui/react": minor -"@object-ui/app-shell": minor ---- - -Adapt to framework 15.1: (1) ADR-0067 D2 all-or-nothing publishes — `formatPublishFailures` renders a rolled-back batch as ONE banner anchored on the causal item (`batch_aborted` entries are summarized, not listed as parallel errors); PackagesPage says "rolled back because X" instead of "{n} failed"; the AI chat publish toast surfaces the real reason instead of a bare count. Pre-15.1 partial-publish responses keep their per-item rendering. (2) ADR-0076 D12 honest discovery — `DiscoveryServiceStatus` gains `handlerReady` + `degraded`/`stub` statuses, new backward-tolerant `isServiceUsable()` helper (absent fields keep the pre-15.1 default; `stub`/`handlerReady:false` gate off; `degraded` stays usable), consumed by `isAuthEnabled`/`isAiEnabled` and `ConditionalAuthWrapper`. diff --git a/.changeset/ai-plan-approve-feedback.md b/.changeset/ai-plan-approve-feedback.md deleted file mode 100644 index 65edf2c81..000000000 --- a/.changeset/ai-plan-approve-feedback.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@object-ui/plugin-chatbot': patch -'@object-ui/app-shell': patch ---- - -Plan-card approval gives immediate in-card feedback (#2627): clicking -"Build it" flips the clicked card to a spinning "Building…" badge right away -(the approval's chat-level effects land at the bottom of the thread, outside -the viewport, so the card looked untouched for ~10s and users double-clicked). -The durable Built state still derives from the message stream; an approval -that never left the client (rate limit / offline) rolls the badge back so the -button returns. New `planBuildingLabel` prop (AiChatPage passes zh). diff --git a/.changeset/approval-band-request-tracked.md b/.changeset/approval-band-request-tracked.md deleted file mode 100644 index c0a43a5b7..000000000 --- a/.changeset/approval-band-request-tracked.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@object-ui/react": patch -"@object-ui/plugin-detail": patch -"@object-ui/app-shell": patch ---- - -fix(detail): show the "Locked for approval" band on request-tracked backends (objectui#2618) - -The DetailView approval-lock band keyed only off the record's own -`approval_status` field, so it never rendered on backends that track the lock -via an open approval request and never materialize that field — even though -the lock was real (writes rejected with `RECORD_LOCKED`). The record-level -`InlineEditContext` now carries the host's `locked`/`lockedReason` signal -(the same dual-source `approvalLocked` that already gates `canEdit` in -`RecordDetailView`), and the band renders from it while keeping `DetailView` -DataSource-agnostic. Also backfills the approval-lock strings into the detail -translation defaults so a bare DetailView shows the label, not the raw i18n key. diff --git a/.changeset/approver-type-membership-tier-picker.md b/.changeset/approver-type-membership-tier-picker.md deleted file mode 100644 index 3ccc9a4b7..000000000 --- a/.changeset/approver-type-membership-tier-picker.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -"@object-ui/app-shell": patch ---- - -fix(studio): approver Type is a real dropdown that drops the deprecated `role` spelling (framework #3133) - -The flow designer's approver `Type` control silently rendered as free text: -`FlowObjectListField` had no `select` branch, so an objectList column of kind -`select` (which the approver type is, derived from the spec enum) fell through -to a plain `` and its computed options were never shown. Added the -missing branch — it renders a real dropdown from the column's `options`, and -keeps a **stored** value that is no longer offered (a deprecated enum member) -visible-but-flagged so editing a legacy row can't silently blank it. - -With the dropdown live, it honors framework's new `xEnumDeprecated` schema -annotation (ADR-0090 D3): the deprecated `role` approver type is dropped from -the options while `org_membership_level` is offered, so Studio no longer walks -authors into the trap of picking `role` (which resolves against the better-auth -membership tier and silently matches nobody). - -Also: the `org-membership-level` reference picker is a fixed three-value enum -(owner/admin/member) instead of the dead `client.list('role')` — the `role` -metadata type was removed by ADR-0090 D3, so that call returned nothing and the -Value box degraded to free text. diff --git a/.changeset/cascade-select-dependent-values.md b/.changeset/cascade-select-dependent-values.md deleted file mode 100644 index 85a964628..000000000 --- a/.changeset/cascade-select-dependent-values.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -'@object-ui/components': patch ---- - -fix(form): thread live `dependentValues` to cascading option fields (#2284/#1583) - -The form renderer only injected the live form record into data-source widgets -(`lookup`/`master_detail`/… — the `DATA_SOURCE_FIELD_TYPES` set). Registered -option widgets (`field:select`/`field:radio`/`field:multiselect`) that carry -per-option `visibleWhen` + `dependsOn` cascading were **excluded**, so -`stripRegisteredFieldProps` dropped `dependentValues` before it reached -`SelectField`. With no live record and no `formValues` context fallback, a -cascading `select` never saw its controlling field: in a create form the -dependent field stayed permanently gated on the "Select the parent first" hint -even after the parent was chosen (reproduced on the showcase `showcase_cascade` -B3 fixture — country → province never unlocked). - -Option field types now receive `dependentValues` too, so the widget's -`dependsOn` gate lifts and its `visibleWhen` set re-filters live as the parent -changes — the same channel the lookup fix (#2215/#2216) already used. Regression -guard added in `form-dependent-values.test.tsx` (drives the registered -`field:select` path, not just the builtin `case 'select'` fallback the prior -cascading-select test covered). diff --git a/.changeset/listview-spec-derive.md b/.changeset/listview-spec-derive.md deleted file mode 100644 index 667796206..000000000 --- a/.changeset/listview-spec-derive.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -"@object-ui/types": minor ---- - -feat(types): derive `ListViewSchema` from `@objectstack/spec/ui` instead of a hand-written copy (#2231) - -`@object-ui/types` shipped a hand-written mirror of the spec's UI ListView zod -(`packages/types/src/zod/objectql.zod.ts`) plus a parallel hand-written TS `interface` -(`objectql.ts`). Both had drifted from the authoritative `@objectstack/spec/ui` -`ListViewSchema`, with nothing enforcing they stay in sync. - -- The zod `ListViewSchema` now **derives** from the spec's `ListViewSchema`: spec-owned - fields (`filter`, `sort`, `selection`, `navigation`, `pagination`, `grouping`, - `rowColor`, `userActions`, `appearance`, `tabs`, `addRecord`, `rowHeight`, `sharing`, - `chart`/`tree` configs, `responsive`, `performance`, …) flow in **by reference** instead - of being re-typed. The component envelope (`type: 'list-view'` discriminator + - `objectName`) and the legacy objectui vocabulary (`viewType`, `fields`, `filters`, the - `show*` toolbar flags, `densityMode`, `color`, …) plus the configs whose objectui shape - is intentionally broader than spec's (`userFilters`, `sharing`, `aria`, - `conditionalFormatting`, `exportOptions`, `kanban`/`calendar`/`gantt`/`gallery`/ - `timeline`) remain as sanctioned local `.extend()`s. Existing payloads keep validating; - spec-canonical payloads (`columns`/`filter`/`userActions`) now validate too. -- The hand-written TS `interface ListViewSchema` is replaced by - `z.infer & ListViewRuntimeProps`, so the type can no longer drift - from the schema. Non-serializable runtime-only props (`onNavigate`, `onDensityChange`, - `refreshTrigger`) live in `ListViewRuntimeProps`. -- Added a drift-guard test (`list-view-spec-parity.test.ts`) that fails if the spec grows a - field objectui hasn't triaged, renames an aliased anchor (`type`/`columns`/`filter`), or - an objectui-only field is added outside the sanctioned-local set. -- Bumped the `@objectstack/spec` dependency `^14.6.0` → `^15.1.0` across the workspace - (15.1.0 carries the framework#3021 `lazySchema`/`z.toJSONSchema` identity fix that the - spec-derived Page/View inspectors depend on). - -Migrating the legacy vocabulary to the spec-canonical keys and adopting spec's narrower -sub-shapes are deferred follow-ups (see #2231). No runtime behavior change. diff --git a/.changeset/login-config-race-sso-timeout.md b/.changeset/login-config-race-sso-timeout.md deleted file mode 100644 index 038e22666..000000000 --- a/.changeset/login-config-race-sso-timeout.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@object-ui/auth': patch ---- - -Login-page auth-config hardening (#2625, #2626): - -- `createAuthClient.getConfig` now single-flights + caches the `/auth/config` - fetch (the login page's three consumers used to fire three requests) and - retries failures with backoff (500ms/1.5s/3.5s, 8s per-attempt abort) before - rejecting. A cold-starting environment kernel no longer strands the page - without its SSO buttons; a final failure clears the cache so later callers - retry. -- `LoginForm` holds a spinner instead of painting the password-form defaults - while config resolves — an SSO-only deployment must never flash a password - wall at JIT users who have no password. A failed config still falls back to - the password form (break-glass beats lock-out). -- `signInWithProvider` gains a 20s watchdog: a sign-in request that hangs now - rejects with a clear timeout error so the provider button recovers instead - of spinning forever. -- Removed LoginForm's duplicate "or" divider — SocialSignInButtons already - renders its own, and the stacked pair read as a rendering glitch. diff --git a/.changeset/login-dev-admin-hint.md b/.changeset/login-dev-admin-hint.md deleted file mode 100644 index e9ed48c0d..000000000 --- a/.changeset/login-dev-admin-hint.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@object-ui/console": patch -"@object-ui/i18n": patch ---- - -Login page surfaces the dev-seeded admin credentials. The framework runtime seeds `admin@objectos.ai` on an empty development database, but nothing on the login page said so — new users clicked "Sign up" and landed in an empty non-admin workspace (15.1 third-party eval). When `GET /api/v1/auth/config` reports `devSeedAdmin` (dev-only; the server omits the field in production and once the default password is changed), the page renders a dismissible amber banner with the credentials. Dismissal persists per browser via localStorage. diff --git a/.changeset/oidc-signin-social-route.md b/.changeset/oidc-signin-social-route.md deleted file mode 100644 index 337df201b..000000000 --- a/.changeset/oidc-signin-social-route.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@object-ui/auth': patch ---- - -`signInWithProvider` with `type: 'oidc'` now signs in through better-auth's -core social route (`POST /sign-in/social`) and only falls back to the legacy -`POST /sign-in/oauth2` endpoint when the social route rejects the provider. - -better-auth ≥ 1.7 restructured the `genericOAuth` plugin: generic OAuth/OIDC -providers are injected into the core social sign-in flow and the dedicated -`/sign-in/oauth2` endpoint no longer exists. The old client therefore 404'd on -every "Continue with ObjectStack" click (platform SSO broken end-to-end on -current framework). The fallback keeps the button working against older -(< 1.7) servers during the coordinated rollout; when both routes fail, the -social-route error is surfaced since on a ≥ 1.7 server it is the real failure. diff --git a/.changeset/register-double-divider.md b/.changeset/register-double-divider.md deleted file mode 100644 index 0c8342810..000000000 --- a/.changeset/register-double-divider.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@object-ui/auth': patch ---- - -RegisterForm: drop the duplicate "or" divider (matching the LoginForm fix in -#2629). SocialSignInButtons already renders its own "or continue with email" -divider under the provider buttons; RegisterForm stacked a second "OR" line on -top, which read as a rendering glitch on the sign-up page. diff --git a/.changeset/row-crud-cel-predicates-2614.md b/.changeset/row-crud-cel-predicates-2614.md deleted file mode 100644 index ae1d1be33..000000000 --- a/.changeset/row-crud-cel-predicates-2614.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -'@object-ui/plugin-grid': minor -'@object-ui/components': minor -'@object-ui/plugin-detail': minor -'@object-ui/plugin-form': patch -'@object-ui/app-shell': minor -'@object-ui/types': minor ---- - -feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) - -The object's `userActions.edit` / `userActions.delete` now also accept an -object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are -evaluated per row on the canonical CEL engine (`useRowPredicate`, the same -machinery custom row actions use): `visibleWhen` false → the built-in -Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` -true → rendered disabled (fail-soft). Wired through ObjectGrid's -RowActionMenu and the data-table's row overflow menu (the related-list -path), with the app-shell `crudAffordances` mirror kept in lockstep. -Omitting the predicates (or using plain booleans) keeps today's behavior -bit-for-bit; declared predicates evaluate only when a row's menu opens, so -grid rendering cost is unchanged. diff --git a/.changeset/spec-15-ui-schema-reexports.md b/.changeset/spec-15-ui-schema-reexports.md deleted file mode 100644 index d5e7beaf8..000000000 --- a/.changeset/spec-15-ui-schema-reexports.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@object-ui/types': major ---- - -Adopt `@objectstack/spec` 15 across the workspace and drop the value-erased `…Schema` re-exports from `@object-ui/types` (#2561). - -**Removed exports.** `packages/types` re-exported the `@objectstack/spec/ui` surface inside `export type { … }` blocks, and those blocks included the zod validators (`DndConfigSchema`, `SpecFormViewSchema`, `ThemeModeSchema`, … 84 names in total). Under `export type` a zod value is erased, so importing any of them as a value from `@object-ui/types` silently yielded `undefined` at runtime. Per the #2561 decision (option a) the schema names are removed from the public surface instead of being converted to value re-exports — consumers that need the runtime validators import them from `@objectstack/spec/ui` directly. The inferred types (`DndConfig`, `SpecFormView`, …) are unchanged, and the genuine value re-exports (`defineStack`, `ObjectStackSchema`, `SpecReportSchema`, …) keep working. `BreakpointColumnMapSchema` / `BreakpointOrderMapSchema` are dropped without a type replacement (the spec exports no companion inferred type). A guardrail test (`spec-ui-schema-reexports.test.ts`) pins the contract. - -**Spec 15.** Every workspace package now depends on `@objectstack/spec` ^15.1.1. The `/ui` export-name set is identical to 14.6; the spec-level breaking change is ADR-0089 D3a — `FormFieldSchema` / `FormSectionSchema` / `PageComponentSchema` are `.strict()` and reject undeclared keys, which the workspace test suite passes under. The floor is 15.1.1 (not 15.0.0) because D3a's `.strict().transform(…)` pipes crashed `z.toJSONSchema` over spec's lazySchema proxies (`Cannot set properties of undefined (setting 'ref')`), breaking Studio's spec-derived Page/View inspector schemas; fixed upstream in framework#3021, which shipped in spec 15.1.1. New `view-schema.test.ts` pins the View-inspector derivation (previously untested — it degraded silently). diff --git a/.changeset/spec-bridge-listview-types.md b/.changeset/spec-bridge-listview-types.md deleted file mode 100644 index fe60e9d08..000000000 --- a/.changeset/spec-bridge-listview-types.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"@object-ui/react": patch ---- - -refactor(spec-bridge): retire the hand-written `ListViewSpec`/`ListColumn` mirrors in the list-view bridge (#2231 follow-up) - -The SpecBridge's list-view bridge kept a third hand-written copy of the ListView shape -(after the zod schema and the TS interface unified in the previous #2231 PR). It now -derives its input type from `@objectstack/spec/ui` (`Partial`, spec `ListColumn`), -so the bridge can no longer drift from the protocol. - -Behavior fix surfaced by the real types: spec `columns` is `string[] | ListColumn[]`, but -the old local interface only admitted `ListColumn[]` — a bare field-name column would have -produced a broken `{ accessorKey: undefined }` mapping. String columns now map to a default -column (`{ accessorKey: field, header: field }`). diff --git a/.changeset/welcome-cta-autocreate.md b/.changeset/welcome-cta-autocreate.md deleted file mode 100644 index ed4cef79e..000000000 --- a/.changeset/welcome-cta-autocreate.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@object-ui/components': patch -'@object-ui/app-shell': patch ---- - -Welcome-page "Create your environment" deep-links straight into the create -dialog (#844): `action:button` gains a client-side `autoTrigger` flag (runs -the action once on mount — same execute path as a click, so param dialogs / -confirms / entitlement gates still apply), and the environments list consumes -`?runAction=create_environment` to mark its create action once entitlements -resolve (upgrade-locked orgs get the upgrade prompt instead; the param is -stripped after consumption so refresh/back don't re-open). Also localizes the -EnvironmentListToolbar's state-aware label overrides ({en,zh}) — they were -hard-coded English inside a zh console. diff --git a/apps/console/CHANGELOG.md b/apps/console/CHANGELOG.md index 9d3923857..34cd71b66 100644 --- a/apps/console/CHANGELOG.md +++ b/apps/console/CHANGELOG.md @@ -1,5 +1,13 @@ # @object-ui/console +## 16.0.0 + +### Patch Changes + +- ca0f5f0: Login page surfaces the dev-seeded admin credentials. The framework runtime seeds `admin@objectos.ai` on an empty development database, but nothing on the login page said so — new users clicked "Sign up" and landed in an empty non-admin workspace (15.1 third-party eval). When `GET /api/v1/auth/config` reports `devSeedAdmin` (dev-only; the server omits the field in production and once the default password is changed), the page renders a dismissible amber banner with the credentials. Dismissal persists per browser via localStorage. + - @object-ui/react-runtime@16.0.0 + - @object-ui/sdui-parser@16.0.0 + ## 15.0.0 ### Major Changes diff --git a/apps/console/package.json b/apps/console/package.json index 735fb4c47..bc150a362 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/console", - "version": "15.0.0", + "version": "16.0.0", "description": "ObjectStack Console — opinionated, fork-ready runtime console built on @object-ui/app-shell with the full plugin set wired up. Ships as a Hono UI plugin serving a pre-built SPA.", "license": "MIT", "type": "module", diff --git a/packages/app-shell/CHANGELOG.md b/packages/app-shell/CHANGELOG.md index ef0ffb329..753309982 100644 --- a/packages/app-shell/CHANGELOG.md +++ b/packages/app-shell/CHANGELOG.md @@ -1,5 +1,114 @@ # @object-ui/app-shell — Changelog +## 16.0.0 + +### Minor Changes + +- d3e19ed: Adapt to framework 15.1: (1) ADR-0067 D2 all-or-nothing publishes — `formatPublishFailures` renders a rolled-back batch as ONE banner anchored on the causal item (`batch_aborted` entries are summarized, not listed as parallel errors); PackagesPage says "rolled back because X" instead of "{n} failed"; the AI chat publish toast surfaces the real reason instead of a bare count. Pre-15.1 partial-publish responses keep their per-item rendering. (2) ADR-0076 D12 honest discovery — `DiscoveryServiceStatus` gains `handlerReady` + `degraded`/`stub` statuses, new backward-tolerant `isServiceUsable()` helper (absent fields keep the pre-15.1 default; `stub`/`handlerReady:false` gate off; `degraded` stays usable), consumed by `isAuthEnabled`/`isAiEnabled` and `ConditionalAuthWrapper`. +- 5534535: feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) + + The object's `userActions.edit` / `userActions.delete` now also accept an + object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are + evaluated per row on the canonical CEL engine (`useRowPredicate`, the same + machinery custom row actions use): `visibleWhen` false → the built-in + Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` + true → rendered disabled (fail-soft). Wired through ObjectGrid's + RowActionMenu and the data-table's row overflow menu (the related-list + path), with the app-shell `crudAffordances` mirror kept in lockstep. + Omitting the predicates (or using plain booleans) keeps today's behavior + bit-for-bit; declared predicates evaluate only when a row's menu opens, so + grid rendering cost is unchanged. + +### Patch Changes + +- c0bd483: Plan-card approval gives immediate in-card feedback (#2627): clicking + "Build it" flips the clicked card to a spinning "Building…" badge right away + (the approval's chat-level effects land at the bottom of the thread, outside + the viewport, so the card looked untouched for ~10s and users double-clicked). + The durable Built state still derives from the message stream; an approval + that never left the client (rate limit / offline) rolls the badge back so the + button returns. New `planBuildingLabel` prop (AiChatPage passes zh). +- 59d4fa9: fix(detail): show the "Locked for approval" band on request-tracked backends (objectui#2618) + + The DetailView approval-lock band keyed only off the record's own + `approval_status` field, so it never rendered on backends that track the lock + via an open approval request and never materialize that field — even though + the lock was real (writes rejected with `RECORD_LOCKED`). The record-level + `InlineEditContext` now carries the host's `locked`/`lockedReason` signal + (the same dual-source `approvalLocked` that already gates `canEdit` in + `RecordDetailView`), and the band renders from it while keeping `DetailView` + DataSource-agnostic. Also backfills the approval-lock strings into the detail + translation defaults so a bare DetailView shows the label, not the raw i18n key. + +- 6c53960: fix(studio): approver Type is a real dropdown that drops the deprecated `role` spelling (framework #3133) + + The flow designer's approver `Type` control silently rendered as free text: + `FlowObjectListField` had no `select` branch, so an objectList column of kind + `select` (which the approver type is, derived from the spec enum) fell through + to a plain `` and its computed options were never shown. Added the + missing branch — it renders a real dropdown from the column's `options`, and + keeps a **stored** value that is no longer offered (a deprecated enum member) + visible-but-flagged so editing a legacy row can't silently blank it. + + With the dropdown live, it honors framework's new `xEnumDeprecated` schema + annotation (ADR-0090 D3): the deprecated `role` approver type is dropped from + the options while `org_membership_level` is offered, so Studio no longer walks + authors into the trap of picking `role` (which resolves against the better-auth + membership tier and silently matches nobody). + + Also: the `org-membership-level` reference picker is a fixed three-value enum + (owner/admin/member) instead of the dead `client.list('role')` — the `role` + metadata type was removed by ADR-0090 D3, so that call returned nothing and the + Value box degraded to free text. + +- 33b4995: Welcome-page "Create your environment" deep-links straight into the create + dialog (#844): `action:button` gains a client-side `autoTrigger` flag (runs + the action once on mount — same execute path as a click, so param dialogs / + confirms / entitlement gates still apply), and the environments list consumes + `?runAction=create_environment` to mark its create action once entitlements + resolve (upgrade-locked orgs get the upgrade prompt instead; the param is + stripped after consumption so refresh/back don't re-open). Also localizes the + EnvironmentListToolbar's state-aware label overrides ({en,zh}) — they were + hard-coded English inside a zh console. +- Updated dependencies [d3e19ed] +- Updated dependencies [c0bd483] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [45c6fb4] +- Updated dependencies [ca0f5f0] +- Updated dependencies [077e45b] +- Updated dependencies [022735f] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/plugin-chatbot@16.0.0 + - @object-ui/plugin-detail@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/auth@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/plugin-grid@16.0.0 + - @object-ui/plugin-form@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/layout@16.0.0 + - @object-ui/plugin-calendar@16.0.0 + - @object-ui/plugin-charts@16.0.0 + - @object-ui/plugin-dashboard@16.0.0 + - @object-ui/plugin-designer@16.0.0 + - @object-ui/plugin-editor@16.0.0 + - @object-ui/plugin-kanban@16.0.0 + - @object-ui/plugin-list@16.0.0 + - @object-ui/plugin-report@16.0.0 + - @object-ui/plugin-view@16.0.0 + - @object-ui/collaboration@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/data-objectstack@16.0.0 + - @object-ui/permissions@16.0.0 + - @object-ui/providers@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/app-shell/package.json b/packages/app-shell/package.json index b06108908..1fad9582a 100644 --- a/packages/app-shell/package.json +++ b/packages/app-shell/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/app-shell", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Minimal application shell for ObjectUI - framework-agnostic rendering engine", diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index 23da52419..1c31fae4d 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -1,5 +1,48 @@ # @object-ui/auth +## 16.0.0 + +### Patch Changes + +- 45c6fb4: Login-page auth-config hardening (#2625, #2626): + + - `createAuthClient.getConfig` now single-flights + caches the `/auth/config` + fetch (the login page's three consumers used to fire three requests) and + retries failures with backoff (500ms/1.5s/3.5s, 8s per-attempt abort) before + rejecting. A cold-starting environment kernel no longer strands the page + without its SSO buttons; a final failure clears the cache so later callers + retry. + - `LoginForm` holds a spinner instead of painting the password-form defaults + while config resolves — an SSO-only deployment must never flash a password + wall at JIT users who have no password. A failed config still falls back to + the password form (break-glass beats lock-out). + - `signInWithProvider` gains a 20s watchdog: a sign-in request that hangs now + rejects with a clear timeout error so the provider button recovers instead + of spinning forever. + - Removed LoginForm's duplicate "or" divider — SocialSignInButtons already + renders its own, and the stacked pair read as a rendering glitch. + +- 077e45b: `signInWithProvider` with `type: 'oidc'` now signs in through better-auth's + core social route (`POST /sign-in/social`) and only falls back to the legacy + `POST /sign-in/oauth2` endpoint when the social route rejects the provider. + + better-auth ≥ 1.7 restructured the `genericOAuth` plugin: generic OAuth/OIDC + providers are injected into the core social sign-in flow and the dedicated + `/sign-in/oauth2` endpoint no longer exists. The old client therefore 404'd on + every "Continue with ObjectStack" click (platform SSO broken end-to-end on + current framework). The fallback keeps the button working against older + (< 1.7) servers during the coordinated rollout; when both routes fail, the + social-route error is surfaced since on a ≥ 1.7 server it is the real failure. + +- 022735f: RegisterForm: drop the duplicate "or" divider (matching the LoginForm fix in + #2629). SocialSignInButtons already renders its own "or continue with email" + divider under the provider buttons; RegisterForm stacked a second "OR" line on + top, which read as a rendering glitch on the sign-up page. +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/auth/package.json b/packages/auth/package.json index 4ab2b8441..f50949929 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/auth", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Authentication system for Object UI with AuthProvider, useAuth hook, AuthGuard, and form components.", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index dec3466f2..be3cb5f0b 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,21 @@ # @object-ui/cli +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 757ad05a0..3d52db7ce 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/cli", - "version": "15.0.0", + "version": "16.0.0", "description": "Standalone CLI for Object UI — scaffold, develop, build and validate JSON/YAML schema-driven applications.", "type": "module", "homepage": "https://www.objectui.org/docs/utilities/cli", diff --git a/packages/collaboration/CHANGELOG.md b/packages/collaboration/CHANGELOG.md index c70dfed20..edf87ebe4 100644 --- a/packages/collaboration/CHANGELOG.md +++ b/packages/collaboration/CHANGELOG.md @@ -1,5 +1,14 @@ # @object-ui/collaboration +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/collaboration/package.json b/packages/collaboration/package.json index 1363132f8..763c33695 100644 --- a/packages/collaboration/package.json +++ b/packages/collaboration/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/collaboration", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Real-time collaboration for Object UI with presence tracking, live cursors, conflict resolution, and comment threads.", diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 0ff23346b..58634e642 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,68 @@ # @object-ui/components +## 16.0.0 + +### Minor Changes + +- 5534535: feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) + + The object's `userActions.edit` / `userActions.delete` now also accept an + object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are + evaluated per row on the canonical CEL engine (`useRowPredicate`, the same + machinery custom row actions use): `visibleWhen` false → the built-in + Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` + true → rendered disabled (fail-soft). Wired through ObjectGrid's + RowActionMenu and the data-table's row overflow menu (the related-list + path), with the app-shell `crudAffordances` mirror kept in lockstep. + Omitting the predicates (or using plain booleans) keeps today's behavior + bit-for-bit; declared predicates evaluate only when a row's menu opens, so + grid rendering cost is unchanged. + +### Patch Changes + +- 4c7c47f: fix(form): thread live `dependentValues` to cascading option fields (#2284/#1583) + + The form renderer only injected the live form record into data-source widgets + (`lookup`/`master_detail`/… — the `DATA_SOURCE_FIELD_TYPES` set). Registered + option widgets (`field:select`/`field:radio`/`field:multiselect`) that carry + per-option `visibleWhen` + `dependsOn` cascading were **excluded**, so + `stripRegisteredFieldProps` dropped `dependentValues` before it reached + `SelectField`. With no live record and no `formValues` context fallback, a + cascading `select` never saw its controlling field: in a create form the + dependent field stayed permanently gated on the "Select the parent first" hint + even after the parent was chosen (reproduced on the showcase `showcase_cascade` + B3 fixture — country → province never unlocked). + + Option field types now receive `dependentValues` too, so the widget's + `dependsOn` gate lifts and its `visibleWhen` set re-filters live as the parent + changes — the same channel the lookup fix (#2215/#2216) already used. Regression + guard added in `form-dependent-values.test.tsx` (drives the registered + `field:select` path, not just the builtin `case 'select'` fallback the prior + cascading-select test covered). + +- 33b4995: Welcome-page "Create your environment" deep-links straight into the create + dialog (#844): `action:button` gains a client-side `autoTrigger` flag (runs + the action once on mount — same execute path as a click, so param dialogs / + confirms / entitlement gates still apply), and the environments list consumes + `?runAction=create_environment` to mark its create action once entitlements + resolve (upgrade-locked orgs get the upgrade prompt instead; the param is + stripped after consumption so refresh/back don't re-open). Also localizes the + EnvironmentListToolbar's state-aware label overrides ({en,zh}) — they were + hard-coded English inside a zh console. +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] + - @object-ui/react@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/react-runtime@16.0.0 + - @object-ui/sdui-parser@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/components/package.json b/packages/components/package.json index ca8ab6aff..3b5c0b6f9 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/components", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Standard UI component library for Object UI, built with Shadcn UI + Tailwind CSS", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index aa2648068..ce922c5df 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,14 @@ # @object-ui/core +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 98eb75e55..12fa4df21 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/core", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "sideEffects": false, "license": "MIT", diff --git a/packages/create-plugin/CHANGELOG.md b/packages/create-plugin/CHANGELOG.md index 8cb405f10..b8c4c5338 100644 --- a/packages/create-plugin/CHANGELOG.md +++ b/packages/create-plugin/CHANGELOG.md @@ -1,5 +1,7 @@ # @object-ui/create-plugin +## 16.0.0 + ## 15.0.0 ## 14.1.0 diff --git a/packages/create-plugin/package.json b/packages/create-plugin/package.json index 0b108c41f..db125b272 100644 --- a/packages/create-plugin/package.json +++ b/packages/create-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/create-plugin", - "version": "15.0.0", + "version": "16.0.0", "description": "CLI tool to scaffold ObjectUI plugins", "type": "module", "license": "MIT", diff --git a/packages/data-objectstack/CHANGELOG.md b/packages/data-objectstack/CHANGELOG.md index 2aa4ebc14..27f60f875 100644 --- a/packages/data-objectstack/CHANGELOG.md +++ b/packages/data-objectstack/CHANGELOG.md @@ -1,5 +1,15 @@ # @object-ui/data-objectstack +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/data-objectstack/package.json b/packages/data-objectstack/package.json index 907438b58..89b1c7ba6 100644 --- a/packages/data-objectstack/package.json +++ b/packages/data-objectstack/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/data-objectstack", - "version": "15.0.0", + "version": "16.0.0", "description": "ObjectStack Data Adapter for Object UI", "license": "MIT", "type": "module", diff --git a/packages/fields/CHANGELOG.md b/packages/fields/CHANGELOG.md index 20b8f516c..8257c8898 100644 --- a/packages/fields/CHANGELOG.md +++ b/packages/fields/CHANGELOG.md @@ -1,5 +1,25 @@ # @object-ui/fields +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/providers@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/fields/package.json b/packages/fields/package.json index cda7d4209..6761c6a18 100644 --- a/packages/fields/package.json +++ b/packages/fields/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/fields", - "version": "15.0.0", + "version": "16.0.0", "description": "Field renderers and registry for Object UI", "license": "MIT", "type": "module", diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index edeb7eac1..070d71d2c 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -1,5 +1,11 @@ # @object-ui/i18n +## 16.0.0 + +### Patch Changes + +- ca0f5f0: Login page surfaces the dev-seeded admin credentials. The framework runtime seeds `admin@objectos.ai` on an empty development database, but nothing on the login page said so — new users clicked "Sign up" and landed in an empty non-admin workspace (15.1 third-party eval). When `GET /api/v1/auth/config` reports `devSeedAdmin` (dev-only; the server omits the field in production and once the default password is changed), the page renders a dismissible amber banner with the credentials. Dismissal persists per browser via localStorage. + ## 15.0.0 ## 14.1.0 diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 3f152fec6..0926cc3a5 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/i18n", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "sideEffects": false, "license": "MIT", diff --git a/packages/layout/CHANGELOG.md b/packages/layout/CHANGELOG.md index 238c40d36..a7b3c3288 100644 --- a/packages/layout/CHANGELOG.md +++ b/packages/layout/CHANGELOG.md @@ -1,5 +1,22 @@ # @object-ui/layout +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/layout/package.json b/packages/layout/package.json index 01eeefab0..854540216 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/layout", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "sideEffects": false, "main": "dist/index.umd.cjs", diff --git a/packages/mobile/CHANGELOG.md b/packages/mobile/CHANGELOG.md index 54c589069..d0367468c 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -1,5 +1,14 @@ # @object-ui/mobile +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 2b9138a48..2d3131131 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/mobile", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Mobile optimization for Object UI with responsive components, PWA support, and touch gesture handling.", diff --git a/packages/permissions/CHANGELOG.md b/packages/permissions/CHANGELOG.md index 7283c8c83..de7965bc9 100644 --- a/packages/permissions/CHANGELOG.md +++ b/packages/permissions/CHANGELOG.md @@ -1,5 +1,14 @@ # @object-ui/permissions +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/permissions/package.json b/packages/permissions/package.json index 73102a795..f6b8069b4 100644 --- a/packages/permissions/package.json +++ b/packages/permissions/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/permissions", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "RBAC permission system for Object UI with object/field/row-level access control, permission guards, and hooks.", diff --git a/packages/plugin-ai/CHANGELOG.md b/packages/plugin-ai/CHANGELOG.md index 933667e14..9f8ea89db 100644 --- a/packages/plugin-ai/CHANGELOG.md +++ b/packages/plugin-ai/CHANGELOG.md @@ -1,5 +1,22 @@ # @object-ui/plugin-ai +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-ai/package.json b/packages/plugin-ai/package.json index 13f7f3945..b74c892b1 100644 --- a/packages/plugin-ai/package.json +++ b/packages/plugin-ai/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-ai", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "main": "dist/index.umd.cjs", "module": "dist/index.js", diff --git a/packages/plugin-calendar/CHANGELOG.md b/packages/plugin-calendar/CHANGELOG.md index 11181f206..8cebef296 100644 --- a/packages/plugin-calendar/CHANGELOG.md +++ b/packages/plugin-calendar/CHANGELOG.md @@ -1,5 +1,27 @@ # @object-ui/plugin-calendar +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/plugin-detail@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/mobile@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-calendar/package.json b/packages/plugin-calendar/package.json index be208a5fa..2d1f40a77 100644 --- a/packages/plugin-calendar/package.json +++ b/packages/plugin-calendar/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-calendar", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Calendar view plugins for Object UI - includes both ObjectQL-integrated and standalone calendar components", diff --git a/packages/plugin-charts/CHANGELOG.md b/packages/plugin-charts/CHANGELOG.md index 6c112a737..cfe61b825 100644 --- a/packages/plugin-charts/CHANGELOG.md +++ b/packages/plugin-charts/CHANGELOG.md @@ -1,5 +1,24 @@ # @object-ui/plugin-charts +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-charts/package.json b/packages/plugin-charts/package.json index 68aa0fc3d..3b6ed5fba 100644 --- a/packages/plugin-charts/package.json +++ b/packages/plugin-charts/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-charts", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Chart components plugin for Object UI, powered by Recharts", diff --git a/packages/plugin-chatbot/CHANGELOG.md b/packages/plugin-chatbot/CHANGELOG.md index 489481f6c..35d23b34d 100644 --- a/packages/plugin-chatbot/CHANGELOG.md +++ b/packages/plugin-chatbot/CHANGELOG.md @@ -1,5 +1,29 @@ # @object-ui/plugin-chatbot +## 16.0.0 + +### Patch Changes + +- c0bd483: Plan-card approval gives immediate in-card feedback (#2627): clicking + "Build it" flips the clicked card to a spinning "Building…" badge right away + (the approval's chat-level effects land at the bottom of the thread, outside + the viewport, so the card looked untouched for ~10s and users double-clicked). + The durable Built state still derives from the message stream; an approval + that never left the client (rate limit / offline) rolls the badge back so the + button returns. New `planBuildingLabel` prop (AiChatPage passes zh). +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-chatbot/package.json b/packages/plugin-chatbot/package.json index c865c3d98..36df0c764 100644 --- a/packages/plugin-chatbot/package.json +++ b/packages/plugin-chatbot/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-chatbot", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Chatbot interface plugin for Object UI", diff --git a/packages/plugin-dashboard/CHANGELOG.md b/packages/plugin-dashboard/CHANGELOG.md index 6bc54b588..0aa70c6ff 100644 --- a/packages/plugin-dashboard/CHANGELOG.md +++ b/packages/plugin-dashboard/CHANGELOG.md @@ -1,5 +1,25 @@ # @object-ui/plugin-dashboard +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-dashboard/package.json b/packages/plugin-dashboard/package.json index f706da2a9..2fe86dee1 100644 --- a/packages/plugin-dashboard/package.json +++ b/packages/plugin-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-dashboard", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Dashboard plugin for Object UI", diff --git a/packages/plugin-designer/CHANGELOG.md b/packages/plugin-designer/CHANGELOG.md index 6e2e7507b..1c8f7fc95 100644 --- a/packages/plugin-designer/CHANGELOG.md +++ b/packages/plugin-designer/CHANGELOG.md @@ -1,5 +1,28 @@ # @object-ui/plugin-designer +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/plugin-grid@16.0.0 + - @object-ui/plugin-form@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/data-objectstack@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-designer/package.json b/packages/plugin-designer/package.json index 7a042395a..10b98b17b 100644 --- a/packages/plugin-designer/package.json +++ b/packages/plugin-designer/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-designer", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Visual designer plugin for Object UI with page, data model, process, and report designers plus collaborative editing.", diff --git a/packages/plugin-detail/CHANGELOG.md b/packages/plugin-detail/CHANGELOG.md index e9b584268..78864a55e 100644 --- a/packages/plugin-detail/CHANGELOG.md +++ b/packages/plugin-detail/CHANGELOG.md @@ -1,5 +1,54 @@ # @object-ui/plugin-detail +## 16.0.0 + +### Minor Changes + +- 5534535: feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) + + The object's `userActions.edit` / `userActions.delete` now also accept an + object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are + evaluated per row on the canonical CEL engine (`useRowPredicate`, the same + machinery custom row actions use): `visibleWhen` false → the built-in + Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` + true → rendered disabled (fail-soft). Wired through ObjectGrid's + RowActionMenu and the data-table's row overflow menu (the related-list + path), with the app-shell `crudAffordances` mirror kept in lockstep. + Omitting the predicates (or using plain booleans) keeps today's behavior + bit-for-bit; declared predicates evaluate only when a row's menu opens, so + grid rendering cost is unchanged. + +### Patch Changes + +- 59d4fa9: fix(detail): show the "Locked for approval" band on request-tracked backends (objectui#2618) + + The DetailView approval-lock band keyed only off the record's own + `approval_status` field, so it never rendered on backends that track the lock + via an open approval request and never materialize that field — even though + the lock was real (writes rejected with `RECORD_LOCKED`). The record-level + `InlineEditContext` now carries the host's `locked`/`lockedReason` signal + (the same dual-source `approvalLocked` that already gates `canEdit` in + `RecordDetailView`), and the band renders from it while keeping `DetailView` + DataSource-agnostic. Also backfills the approval-lock strings into the detail + translation defaults so a bare DetailView shows the label, not the raw i18n key. + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/permissions@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-detail/package.json b/packages/plugin-detail/package.json index 012b0b5f8..d4d11be5a 100644 --- a/packages/plugin-detail/package.json +++ b/packages/plugin-detail/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-detail", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "DetailView plugin for Object UI - comprehensive detail page with sections, tabs, and related lists", diff --git a/packages/plugin-editor/CHANGELOG.md b/packages/plugin-editor/CHANGELOG.md index 5f2710264..789b40f8c 100644 --- a/packages/plugin-editor/CHANGELOG.md +++ b/packages/plugin-editor/CHANGELOG.md @@ -1,5 +1,22 @@ # @object-ui/plugin-editor +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-editor/package.json b/packages/plugin-editor/package.json index 6c0fc31be..3bf9f80dd 100644 --- a/packages/plugin-editor/package.json +++ b/packages/plugin-editor/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-editor", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Rich text editor plugin for Object UI, powered by Monaco Editor", diff --git a/packages/plugin-form/CHANGELOG.md b/packages/plugin-form/CHANGELOG.md index 680ec3afc..bf284f109 100644 --- a/packages/plugin-form/CHANGELOG.md +++ b/packages/plugin-form/CHANGELOG.md @@ -1,5 +1,40 @@ # @object-ui/plugin-form +## 16.0.0 + +### Patch Changes + +- 5534535: feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) + + The object's `userActions.edit` / `userActions.delete` now also accept an + object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are + evaluated per row on the canonical CEL engine (`useRowPredicate`, the same + machinery custom row actions use): `visibleWhen` false → the built-in + Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` + true → rendered disabled (fail-soft). Wired through ObjectGrid's + RowActionMenu and the data-table's row overflow menu (the related-list + path), with the app-shell `crudAffordances` mirror kept in lockstep. + Omitting the predicates (or using plain booleans) keeps today's behavior + bit-for-bit; declared predicates evaluate only when a row's menu opens, so + grid rendering cost is unchanged. + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/permissions@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-form/package.json b/packages/plugin-form/package.json index 95595fb07..09b2fc1f9 100644 --- a/packages/plugin-form/package.json +++ b/packages/plugin-form/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-form", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Form plugin for Object UI", diff --git a/packages/plugin-gantt/CHANGELOG.md b/packages/plugin-gantt/CHANGELOG.md index f181ca048..23094248f 100644 --- a/packages/plugin-gantt/CHANGELOG.md +++ b/packages/plugin-gantt/CHANGELOG.md @@ -1,5 +1,26 @@ # @object-ui/plugin-gantt +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/plugin-detail@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-gantt/package.json b/packages/plugin-gantt/package.json index 2de086598..f8698d849 100644 --- a/packages/plugin-gantt/package.json +++ b/packages/plugin-gantt/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-gantt", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Gantt chart plugin for Object UI", diff --git a/packages/plugin-grid/CHANGELOG.md b/packages/plugin-grid/CHANGELOG.md index 67414fd7a..7b93396ce 100644 --- a/packages/plugin-grid/CHANGELOG.md +++ b/packages/plugin-grid/CHANGELOG.md @@ -1,5 +1,42 @@ # @object-ui/plugin-grid +## 16.0.0 + +### Minor Changes + +- 5534535: feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) + + The object's `userActions.edit` / `userActions.delete` now also accept an + object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are + evaluated per row on the canonical CEL engine (`useRowPredicate`, the same + machinery custom row actions use): `visibleWhen` false → the built-in + Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` + true → rendered disabled (fail-soft). Wired through ObjectGrid's + RowActionMenu and the data-table's row overflow menu (the related-list + path), with the app-shell `crudAffordances` mirror kept in lockstep. + Omitting the predicates (or using plain booleans) keeps today's behavior + bit-for-bit; declared predicates evaluate only when a row's menu opens, so + grid rendering cost is unchanged. + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/mobile@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-grid/package.json b/packages/plugin-grid/package.json index 9fa7170fc..44690de82 100644 --- a/packages/plugin-grid/package.json +++ b/packages/plugin-grid/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-grid", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Grid plugin for Object UI", diff --git a/packages/plugin-kanban/CHANGELOG.md b/packages/plugin-kanban/CHANGELOG.md index ce04d7dcd..891187cd3 100644 --- a/packages/plugin-kanban/CHANGELOG.md +++ b/packages/plugin-kanban/CHANGELOG.md @@ -1,5 +1,26 @@ # @object-ui/plugin-kanban +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/plugin-detail@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-kanban/package.json b/packages/plugin-kanban/package.json index d7b0341f9..e16f9f11e 100644 --- a/packages/plugin-kanban/package.json +++ b/packages/plugin-kanban/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-kanban", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Kanban board plugin for Object UI, powered by dnd-kit", diff --git a/packages/plugin-list/CHANGELOG.md b/packages/plugin-list/CHANGELOG.md index 6d4e72de2..73e9b451e 100644 --- a/packages/plugin-list/CHANGELOG.md +++ b/packages/plugin-list/CHANGELOG.md @@ -1,5 +1,27 @@ # @object-ui/plugin-list +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/mobile@16.0.0 + - @object-ui/permissions@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-list/package.json b/packages/plugin-list/package.json index 04a39a65f..38a13dbc4 100644 --- a/packages/plugin-list/package.json +++ b/packages/plugin-list/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-list", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "ListView plugin for Object UI - unified view component with view type switching", diff --git a/packages/plugin-map/CHANGELOG.md b/packages/plugin-map/CHANGELOG.md index 46dcc69df..16ef348d4 100644 --- a/packages/plugin-map/CHANGELOG.md +++ b/packages/plugin-map/CHANGELOG.md @@ -1,5 +1,22 @@ # @object-ui/plugin-map +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-map/package.json b/packages/plugin-map/package.json index d31754610..c110f7a74 100644 --- a/packages/plugin-map/package.json +++ b/packages/plugin-map/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-map", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Map visualization plugin for Object UI", diff --git a/packages/plugin-markdown/CHANGELOG.md b/packages/plugin-markdown/CHANGELOG.md index 1b0f49dde..8a9407236 100644 --- a/packages/plugin-markdown/CHANGELOG.md +++ b/packages/plugin-markdown/CHANGELOG.md @@ -1,5 +1,22 @@ # @object-ui/plugin-markdown +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-markdown/package.json b/packages/plugin-markdown/package.json index 546817e9a..e7a3328c7 100644 --- a/packages/plugin-markdown/package.json +++ b/packages/plugin-markdown/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-markdown", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Markdown rendering plugin for Object UI, powered by react-markdown", diff --git a/packages/plugin-report/CHANGELOG.md b/packages/plugin-report/CHANGELOG.md index 8b92f47e1..65e862125 100644 --- a/packages/plugin-report/CHANGELOG.md +++ b/packages/plugin-report/CHANGELOG.md @@ -1,5 +1,26 @@ # @object-ui/plugin-report +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/plugin-grid@16.0.0 + - @object-ui/fields@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-report/package.json b/packages/plugin-report/package.json index 60982ced3..f88940e7d 100644 --- a/packages/plugin-report/package.json +++ b/packages/plugin-report/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-report", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "main": "dist/index.umd.cjs", "module": "dist/index.js", diff --git a/packages/plugin-timeline/CHANGELOG.md b/packages/plugin-timeline/CHANGELOG.md index 0b094f862..4f1a06da8 100644 --- a/packages/plugin-timeline/CHANGELOG.md +++ b/packages/plugin-timeline/CHANGELOG.md @@ -1,5 +1,23 @@ # @object-ui/plugin-timeline +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/mobile@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-timeline/package.json b/packages/plugin-timeline/package.json index 41ab7850a..54ccb06b4 100644 --- a/packages/plugin-timeline/package.json +++ b/packages/plugin-timeline/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-timeline", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Timeline component plugin for Object UI", diff --git a/packages/plugin-tree/CHANGELOG.md b/packages/plugin-tree/CHANGELOG.md index a19783845..4bbee3026 100644 --- a/packages/plugin-tree/CHANGELOG.md +++ b/packages/plugin-tree/CHANGELOG.md @@ -1,5 +1,22 @@ # @object-ui/plugin-tree +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-tree/package.json b/packages/plugin-tree/package.json index 748bd14ba..8f972a562 100644 --- a/packages/plugin-tree/package.json +++ b/packages/plugin-tree/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-tree", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Tree / tree-grid visualization plugin for Object UI", diff --git a/packages/plugin-view/CHANGELOG.md b/packages/plugin-view/CHANGELOG.md index e16a482fc..ed455350b 100644 --- a/packages/plugin-view/CHANGELOG.md +++ b/packages/plugin-view/CHANGELOG.md @@ -1,5 +1,26 @@ # @object-ui/plugin-view +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/plugin-grid@16.0.0 + - @object-ui/plugin-form@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/plugin-view/package.json b/packages/plugin-view/package.json index 53dbe718b..6bee0eb6b 100644 --- a/packages/plugin-view/package.json +++ b/packages/plugin-view/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/plugin-view", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Object View plugin for Object UI", diff --git a/packages/providers/CHANGELOG.md b/packages/providers/CHANGELOG.md index e30488ea3..b1709e127 100644 --- a/packages/providers/CHANGELOG.md +++ b/packages/providers/CHANGELOG.md @@ -1,5 +1,14 @@ # @object-ui/providers — Changelog +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/providers/package.json b/packages/providers/package.json index 97bce9714..32bf22756 100644 --- a/packages/providers/package.json +++ b/packages/providers/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/providers", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "Reusable context providers for ObjectUI applications", diff --git a/packages/react-runtime/CHANGELOG.md b/packages/react-runtime/CHANGELOG.md index d68783250..9d59847c9 100644 --- a/packages/react-runtime/CHANGELOG.md +++ b/packages/react-runtime/CHANGELOG.md @@ -1,5 +1,7 @@ # @object-ui/react-runtime +## 16.0.0 + ## 15.0.0 ## 14.1.0 diff --git a/packages/react-runtime/package.json b/packages/react-runtime/package.json index 9c2419fae..45c4c1e1d 100644 --- a/packages/react-runtime/package.json +++ b/packages/react-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/react-runtime", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "sideEffects": false, "license": "MIT", diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 46ef00bfe..a276c7fea 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,46 @@ # @object-ui/react +## 16.0.0 + +### Minor Changes + +- d3e19ed: Adapt to framework 15.1: (1) ADR-0067 D2 all-or-nothing publishes — `formatPublishFailures` renders a rolled-back batch as ONE banner anchored on the causal item (`batch_aborted` entries are summarized, not listed as parallel errors); PackagesPage says "rolled back because X" instead of "{n} failed"; the AI chat publish toast surfaces the real reason instead of a bare count. Pre-15.1 partial-publish responses keep their per-item rendering. (2) ADR-0076 D12 honest discovery — `DiscoveryServiceStatus` gains `handlerReady` + `degraded`/`stub` statuses, new backward-tolerant `isServiceUsable()` helper (absent fields keep the pre-15.1 default; `stub`/`handlerReady:false` gate off; `degraded` stays usable), consumed by `isAuthEnabled`/`isAiEnabled` and `ConditionalAuthWrapper`. + +### Patch Changes + +- 59d4fa9: fix(detail): show the "Locked for approval" band on request-tracked backends (objectui#2618) + + The DetailView approval-lock band keyed only off the record's own + `approval_status` field, so it never rendered on backends that track the lock + via an open approval request and never materialize that field — even though + the lock was real (writes rejected with `RECORD_LOCKED`). The record-level + `InlineEditContext` now carries the host's `locked`/`lockedReason` signal + (the same dual-source `approvalLocked` that already gates `canEdit` in + `RecordDetailView`), and the band renders from it while keeping `DetailView` + DataSource-agnostic. Also backfills the approval-lock strings into the detail + translation defaults so a bare DetailView shows the label, not the raw i18n key. + +- 195a651: refactor(spec-bridge): retire the hand-written `ListViewSpec`/`ListColumn` mirrors in the list-view bridge (#2231 follow-up) + + The SpecBridge's list-view bridge kept a third hand-written copy of the ListView shape + (after the zod schema and the TS interface unified in the previous #2231 PR). It now + derives its input type from `@objectstack/spec/ui` (`Partial`, spec `ListColumn`), + so the bridge can no longer drift from the protocol. + + Behavior fix surfaced by the real types: spec `columns` is `string[] | ListColumn[]`, but + the old local interface only admitted `ListColumn[]` — a bare field-name column would have + produced a broken `{ accessorKey: undefined }` mapping. String columns now map to a default + column (`{ accessorKey: field, header: field }`). + +- Updated dependencies [b4ef588] +- Updated dependencies [ca0f5f0] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + - @object-ui/i18n@16.0.0 + - @object-ui/core@16.0.0 + - @object-ui/data-objectstack@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index 0f2214722..a7f63bac0 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/react", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "license": "MIT", "description": "React bindings and SchemaRenderer component for Object UI", diff --git a/packages/runner/CHANGELOG.md b/packages/runner/CHANGELOG.md index ab3a13a3f..54dc5786f 100644 --- a/packages/runner/CHANGELOG.md +++ b/packages/runner/CHANGELOG.md @@ -1,5 +1,24 @@ # @object-ui/runner +## 16.0.0 + +### Patch Changes + +- Updated dependencies [d3e19ed] +- Updated dependencies [59d4fa9] +- Updated dependencies [4c7c47f] +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] +- Updated dependencies [195a651] +- Updated dependencies [33b4995] + - @object-ui/react@16.0.0 + - @object-ui/components@16.0.0 + - @object-ui/types@16.0.0 + - @object-ui/plugin-charts@16.0.0 + - @object-ui/plugin-kanban@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/runner/package.json b/packages/runner/package.json index 5fb4a6129..43b863937 100644 --- a/packages/runner/package.json +++ b/packages/runner/package.json @@ -1,7 +1,7 @@ { "name": "@object-ui/runner", "private": false, - "version": "15.0.0", + "version": "16.0.0", "description": "Universal Object UI Application Runner", "type": "module", "homepage": "https://www.objectui.org/docs/utilities/runner", diff --git a/packages/sdui-parser/CHANGELOG.md b/packages/sdui-parser/CHANGELOG.md index e4175035e..bd3748717 100644 --- a/packages/sdui-parser/CHANGELOG.md +++ b/packages/sdui-parser/CHANGELOG.md @@ -1,5 +1,7 @@ # @object-ui/sdui-parser +## 16.0.0 + ## 15.0.0 ## 14.1.0 diff --git a/packages/sdui-parser/package.json b/packages/sdui-parser/package.json index 78180c319..34a385d96 100644 --- a/packages/sdui-parser/package.json +++ b/packages/sdui-parser/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/sdui-parser", - "version": "15.0.0", + "version": "16.0.0", "type": "module", "sideEffects": false, "license": "MIT", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 584e8e9aa..f6406540d 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,63 @@ # @object-ui/types +## 16.0.0 + +### Major Changes + +- 9b8f978: Adopt `@objectstack/spec` 15 across the workspace and drop the value-erased `…Schema` re-exports from `@object-ui/types` (#2561). + + **Removed exports.** `packages/types` re-exported the `@objectstack/spec/ui` surface inside `export type { … }` blocks, and those blocks included the zod validators (`DndConfigSchema`, `SpecFormViewSchema`, `ThemeModeSchema`, … 84 names in total). Under `export type` a zod value is erased, so importing any of them as a value from `@object-ui/types` silently yielded `undefined` at runtime. Per the #2561 decision (option a) the schema names are removed from the public surface instead of being converted to value re-exports — consumers that need the runtime validators import them from `@objectstack/spec/ui` directly. The inferred types (`DndConfig`, `SpecFormView`, …) are unchanged, and the genuine value re-exports (`defineStack`, `ObjectStackSchema`, `SpecReportSchema`, …) keep working. `BreakpointColumnMapSchema` / `BreakpointOrderMapSchema` are dropped without a type replacement (the spec exports no companion inferred type). A guardrail test (`spec-ui-schema-reexports.test.ts`) pins the contract. + + **Spec 15.** Every workspace package now depends on `@objectstack/spec` ^15.1.1. The `/ui` export-name set is identical to 14.6; the spec-level breaking change is ADR-0089 D3a — `FormFieldSchema` / `FormSectionSchema` / `PageComponentSchema` are `.strict()` and reject undeclared keys, which the workspace test suite passes under. The floor is 15.1.1 (not 15.0.0) because D3a's `.strict().transform(…)` pipes crashed `z.toJSONSchema` over spec's lazySchema proxies (`Cannot set properties of undefined (setting 'ref')`), breaking Studio's spec-derived Page/View inspector schemas; fixed upstream in framework#3021, which shipped in spec 15.1.1. New `view-schema.test.ts` pins the View-inspector derivation (previously untested — it degraded silently). + +### Minor Changes + +- b4ef588: feat(types): derive `ListViewSchema` from `@objectstack/spec/ui` instead of a hand-written copy (#2231) + + `@object-ui/types` shipped a hand-written mirror of the spec's UI ListView zod + (`packages/types/src/zod/objectql.zod.ts`) plus a parallel hand-written TS `interface` + (`objectql.ts`). Both had drifted from the authoritative `@objectstack/spec/ui` + `ListViewSchema`, with nothing enforcing they stay in sync. + + - The zod `ListViewSchema` now **derives** from the spec's `ListViewSchema`: spec-owned + fields (`filter`, `sort`, `selection`, `navigation`, `pagination`, `grouping`, + `rowColor`, `userActions`, `appearance`, `tabs`, `addRecord`, `rowHeight`, `sharing`, + `chart`/`tree` configs, `responsive`, `performance`, …) flow in **by reference** instead + of being re-typed. The component envelope (`type: 'list-view'` discriminator + + `objectName`) and the legacy objectui vocabulary (`viewType`, `fields`, `filters`, the + `show*` toolbar flags, `densityMode`, `color`, …) plus the configs whose objectui shape + is intentionally broader than spec's (`userFilters`, `sharing`, `aria`, + `conditionalFormatting`, `exportOptions`, `kanban`/`calendar`/`gantt`/`gallery`/ + `timeline`) remain as sanctioned local `.extend()`s. Existing payloads keep validating; + spec-canonical payloads (`columns`/`filter`/`userActions`) now validate too. + - The hand-written TS `interface ListViewSchema` is replaced by + `z.infer & ListViewRuntimeProps`, so the type can no longer drift + from the schema. Non-serializable runtime-only props (`onNavigate`, `onDensityChange`, + `refreshTrigger`) live in `ListViewRuntimeProps`. + - Added a drift-guard test (`list-view-spec-parity.test.ts`) that fails if the spec grows a + field objectui hasn't triaged, renames an aliased anchor (`type`/`columns`/`filter`), or + an objectui-only field is added outside the sanctioned-local set. + - Bumped the `@objectstack/spec` dependency `^14.6.0` → `^15.1.0` across the workspace + (15.1.0 carries the framework#3021 `lazySchema`/`z.toJSONSchema` identity fix that the + spec-derived Page/View inspectors depend on). + + Migrating the legacy vocabulary to the spec-canonical keys and adopting spec's narrower + sub-shapes are deferred follow-ups (see #2231). No runtime behavior change. + +- 5534535: feat(grid): built-in row Edit/Delete honor per-record CEL predicates (#2614) + + The object's `userActions.edit` / `userActions.delete` now also accept an + object form `{ enabled?, visibleWhen?, disabledWhen? }`. The predicates are + evaluated per row on the canonical CEL engine (`useRowPredicate`, the same + machinery custom row actions use): `visibleWhen` false → the built-in + Edit/Delete item is not rendered for that row (fail-closed); `disabledWhen` + true → rendered disabled (fail-soft). Wired through ObjectGrid's + RowActionMenu and the data-table's row overflow menu (the related-list + path), with the app-shell `crudAffordances` mirror kept in lockstep. + Omitting the predicates (or using plain booleans) keeps today's behavior + bit-for-bit; declared predicates evaluate only when a row's menu opens, so + grid rendering cost is unchanged. + ## 15.0.0 ## 14.1.0 diff --git a/packages/types/package.json b/packages/types/package.json index 183af67f5..3d956b22b 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@object-ui/types", - "version": "15.0.0", + "version": "16.0.0", "description": "Pure TypeScript type definitions for Object UI - The Protocol Layer", "type": "module", "sideEffects": false, diff --git a/packages/vscode-extension/CHANGELOG.md b/packages/vscode-extension/CHANGELOG.md index fc5a6e975..97608f58f 100644 --- a/packages/vscode-extension/CHANGELOG.md +++ b/packages/vscode-extension/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 16.0.0 + +### Patch Changes + +- Updated dependencies [b4ef588] +- Updated dependencies [5534535] +- Updated dependencies [9b8f978] + - @object-ui/types@16.0.0 + - @object-ui/core@16.0.0 + ## 15.0.0 ### Patch Changes diff --git a/packages/vscode-extension/package.json b/packages/vscode-extension/package.json index 456a21191..792737ac1 100644 --- a/packages/vscode-extension/package.json +++ b/packages/vscode-extension/package.json @@ -2,7 +2,7 @@ "name": "object-ui", "displayName": "Object UI", "description": "VSCode extension for Object UI - Schema-driven UI development with IntelliSense, validation, and live preview", - "version": "15.0.0", + "version": "16.0.0", "publisher": "objectui", "private": true, "icon": "icon.svg",