diff --git a/.changeset/action-order-primary-button.md b/.changeset/action-order-primary-button.md deleted file mode 100644 index 1bd5e4d26a..0000000000 --- a/.changeset/action-order-primary-button.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@objectstack/spec": minor ---- - -`Action`: add an explicit `order` field so authors and plugins can decide which action holds the record-header primary-button slot, instead of depending on fragile cross-file `defineStack({ actions })` registration order (#2670). - -`order` is an optional number, **lower = higher / more prominent**, defaulting to `0`. `mergeActionsIntoObjects()` now stable-sorts every action group — each object's `actions` and the top-level `actions` — by `order` at both `defineStack()` and `composeStacks()` time. In `record_header` the first visible action becomes the primary button, so a negative `order` promotes an action into the primary slot and a positive `order` demotes it toward the `⋯` overflow menu. This is the declarative lever a plugin such as plugin-approvals uses to make an `Approve`/`Reject` decision stably outrank app actions, rather than hiding the other actions to "make room". - -Fully backward compatible: the sort is stable and treats unset `order` as `0`, so action groups where nobody sets `order` keep their exact registration order (and array reference). The record-header renderer (objectui) may additionally prefer a `variant: 'primary'` action when two actions tie on `order`. diff --git a/.changeset/localization-no-default-currency.md b/.changeset/localization-no-default-currency.md deleted file mode 100644 index a11e104570..0000000000 --- a/.changeset/localization-no-default-currency.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@objectstack/service-settings': minor ---- - -Localization: drop the hard-coded `USD` platform default for the workspace **Default currency** setting. - -Previously the `localization.currency` setting defaulted to `'USD'`, and that value was applied to any `currency`-typed field that omits its own code — so every code-less amount surfaced a `$`/`US$` symbol even when nothing (field, measure, or workspace) actually named a currency. The setting now has **no platform default**: a code-less currency amount renders as a plain number unless the workspace explicitly picks a default currency (or the field declares its own). - -Migration: a workspace that relied on the implicit USD default and wants to keep showing `$` should set **Settings → Localization → Default currency** to `USD` explicitly. Fields/measures that declare their own currency code are unaffected. diff --git a/.changeset/notify-click-through-target.md b/.changeset/notify-click-through-target.md deleted file mode 100644 index 72db2a0f30..0000000000 --- a/.changeset/notify-click-through-target.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@objectstack/service-automation': minor ---- - -Flow `notify` node: support a click-through target so inbox notifications can be clicked into the related record (#2675). - -The `notify` node now reads `sourceObject` / `sourceId` (or the nested `source: { object, id }` form) and `actorId` from its config and forwards them to the messaging service, which persists `sys_notification.source_object` / `source_id` / `actor_id` and synthesizes a `/{object}/{id}` inbox deep-link. Both keys interpolate flow variables (e.g. `sourceId: '{new_quotation.id}'`), and a half-specified target (object without id, or vice versa) is dropped so the inbox never renders a dead link. `url` is now accepted as an alias for `actionUrl` (an explicit URL still overrides the synthesized link). The node also publishes a `configSchema` documenting all accepted keys for the Studio form. - -Previously the node consumed only `recipients` / `title` / `message` / `channels`, so every notification it emitted had `source_object` / `source_id` = `null` and could not be clicked through to a record. diff --git a/.changeset/quickjs-safe-json-marshal.md b/.changeset/quickjs-safe-json-marshal.md deleted file mode 100644 index 0541dbd057..0000000000 --- a/.changeset/quickjs-safe-json-marshal.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@objectstack/runtime': patch ---- - -Sandbox: stop `QuickJSScriptRunner` from crashing when a hook context holds a non-serialisable host object. - -`installCtx` marshalled `ctx` into the QuickJS sandbox with a bare `JSON.stringify`. If the context (or anything reachable from it) held a live `setTimeout`/`setInterval` handle, `JSON.stringify` threw `TypeError: Converting circular structure to JSON` (`Timeout._idlePrev -> TimersList._idleNext -> …`) and took the whole hook down (#2674). Marshalling now goes through a shared `safeJsonStringify` that drops circular back-edges via a path `WeakSet` and coerces `BigInt` to a string, so only JSON-safe leaves cross the boundary and the body still runs. diff --git a/.changeset/read-coercion-conformance.md b/.changeset/read-coercion-conformance.md deleted file mode 100644 index 97e5bf475b..0000000000 --- a/.changeset/read-coercion-conformance.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@objectstack/verify": minor ---- - -Add `checkReadCoercion` — a reusable, driver-agnostic read-coercion conformance -helper (a stored value must read back as its declared type: boolean as boolean, -json as object, integer as number). Mirrors `checkLedger`: returns a list of -problems (empty = conformant) with no test-runner dependency, so any driver — -including out-of-tree ones like cloud's driver-turso — can run the identical -contract against itself. This is the invariant behind the case_escalation -`1 != true` incident. diff --git a/.changeset/seed-import-bulk-insert.md b/.changeset/seed-import-bulk-insert.md deleted file mode 100644 index e194972e1f..0000000000 --- a/.changeset/seed-import-bulk-insert.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@objectstack/core': minor -'@objectstack/metadata-protocol': minor -'@objectstack/rest': minor -'@objectstack/driver-sql': patch ---- - -Seed loader and data-import now route bulk writes through the engine's array-form `insert()` (one round-trip per batch, with parent-deduplicated summary recompute) instead of one `insert()`/`createData()` call per record, and both retry transient driver errors instead of silently dropping the row (#2678). - -A new shared helper, `bulkWrite` (`@objectstack/core`), batches rows through a caller-supplied batch-write function, retries a whole-batch transient failure (network blip / timeout) with exponential backoff, and degrades to per-row writes (each itself retried) when a batch fails for a non-transient reason — so one bad row can't drop the other N-1. `withTransientRetry` wraps a single write (e.g. an update) with the same retry behavior. - -- `SeedLoaderService.loadDataset()` (`@objectstack/metadata-protocol`) buffers insert-mode records and flushes them in batches of 200 via the engine's array `insert()`. Datasets with a self-referencing field (e.g. `employee.manager_id -> employee`) keep the historical per-record write path, since a later record may need an earlier one's freshly-assigned id. -- `runImport()` (`@objectstack/rest`) buffers create-resolved rows and flushes them via `protocol.createManyData()` when the protocol supports it, falling back to the original per-row `createData()` call otherwise. `Protocol.createManyData` (`@objectstack/metadata-protocol`) now forwards `context` to `engine.insert()` like `createData` already did, so tenant-scoped bulk creates work correctly. - -Previously, a 1000-row seed or import into an object with a rollup summary issued 1000+ round-trips and up to 1000 summary recomputes; a single transient network error on any one row silently dropped it with no retry (the 2026-07-06 HotCRM first-boot incident). A `bulkCreate`-capable driver now sees roughly `ceil(N/batch)` writes, and a transient error is retried before a row is ever reported as failed. - -**Fix (`@objectstack/driver-sql`):** `SqlDriver.bulkCreate()` never generated a client-side id for a row missing one, unlike `create()` — a latent gap that this change is the first to exercise at scale (a bulk-inserted row without a driver-native id default silently landed with `id: NULL`). `bulkCreate()` now mirrors `create()`'s id/`_id` normalization per row. diff --git a/examples/app-crm/CHANGELOG.md b/examples/app-crm/CHANGELOG.md index f1e8bda8eb..02f5fb4abf 100644 --- a/examples/app-crm/CHANGELOG.md +++ b/examples/app-crm/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/example-crm +## 4.0.76 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [b5a87eb] + - @objectstack/spec@12.6.0 + - @objectstack/runtime@12.6.0 + ## 4.0.75 ### Patch Changes diff --git a/examples/app-crm/package.json b/examples/app-crm/package.json index 6db99c5898..c41ff59dfa 100644 --- a/examples/app-crm/package.json +++ b/examples/app-crm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-crm", - "version": "4.0.75", + "version": "4.0.76", "description": "Minimal CRM example — a smoke-test workspace that exercises the metadata loading pipeline (objects → views → app → dashboard → hook → flow → seed). For a full-featured enterprise CRM see https://github.com/objectstack-ai/hotcrm.", "license": "Apache-2.0", "private": true, diff --git a/examples/app-showcase/CHANGELOG.md b/examples/app-showcase/CHANGELOG.md index 3ef72979c7..4b6b1e0f50 100644 --- a/examples/app-showcase/CHANGELOG.md +++ b/examples/app-showcase/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/example-showcase +## 0.2.22 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [b5a87eb] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/runtime@12.6.0 + - @objectstack/driver-sql@12.6.0 + - @objectstack/cloud-connection@12.6.0 + - @objectstack/connector-rest@12.6.0 + - @objectstack/connector-slack@12.6.0 + ## 0.2.21 ### Patch Changes diff --git a/examples/app-showcase/package.json b/examples/app-showcase/package.json index 737fb85d2d..2dd3c1ff5c 100644 --- a/examples/app-showcase/package.json +++ b/examples/app-showcase/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-showcase", - "version": "0.2.21", + "version": "0.2.22", "description": "Kitchen-sink showcase workspace — exercises every metadata type, every view type, every chart type, and the major end-to-end capability chains (security, automation, analytics). Built for demonstration, debugging, and coverage-driven verification.", "license": "Apache-2.0", "private": true, diff --git a/examples/app-todo/CHANGELOG.md b/examples/app-todo/CHANGELOG.md index a49ef8e70d..390ad016d1 100644 --- a/examples/app-todo/CHANGELOG.md +++ b/examples/app-todo/CHANGELOG.md @@ -1,5 +1,21 @@ # @objectstack/example-todo +## 4.0.76 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [b5a87eb] + - @objectstack/spec@12.6.0 + - @objectstack/runtime@12.6.0 + - @objectstack/client@12.6.0 + - @objectstack/mcp@12.6.0 + - @objectstack/metadata@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/driver-sqlite-wasm@12.6.0 + - @objectstack/knowledge-memory@12.6.0 + - @objectstack/service-knowledge@12.6.0 + ## 4.0.75 ### Patch Changes diff --git a/examples/app-todo/package.json b/examples/app-todo/package.json index 1291872a1e..c7bdd9d407 100644 --- a/examples/app-todo/package.json +++ b/examples/app-todo/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-todo", - "version": "4.0.75", + "version": "4.0.76", "description": "Example Todo App using ObjectStack Protocol", "license": "Apache-2.0", "private": true, diff --git a/examples/embed-objectql/CHANGELOG.md b/examples/embed-objectql/CHANGELOG.md index f5aaa9a99f..f89524b814 100644 --- a/examples/embed-objectql/CHANGELOG.md +++ b/examples/embed-objectql/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/example-embed-objectql +## 0.0.16 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/driver-memory@12.6.0 + ## 0.0.15 ### Patch Changes diff --git a/examples/embed-objectql/package.json b/examples/embed-objectql/package.json index 1f74183c06..1508bc5c70 100644 --- a/examples/embed-objectql/package.json +++ b/examples/embed-objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-embed-objectql", - "version": "0.0.15", + "version": "0.0.16", "private": true, "description": "Embed the ObjectQL engine as a plain library via @objectstack/objectql/core — no kernel, no plugins, no metadata protocol (ADR-0076).", "type": "module", diff --git a/packages/adapters/hono/CHANGELOG.md b/packages/adapters/hono/CHANGELOG.md index 56a18dd561..75e4d9ae73 100644 --- a/packages/adapters/hono/CHANGELOG.md +++ b/packages/adapters/hono/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/hono +## 12.6.0 + +### Patch Changes + +- Updated dependencies [b5a87eb] + - @objectstack/runtime@12.6.0 + - @objectstack/plugin-hono-server@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/adapters/hono/package.json b/packages/adapters/hono/package.json index 3a2fa070c9..95f7bbac8c 100644 --- a/packages/adapters/hono/package.json +++ b/packages/adapters/hono/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/hono", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/apps/account/CHANGELOG.md b/packages/apps/account/CHANGELOG.md index 4d0e8caa40..f05ee20b9a 100644 --- a/packages/apps/account/CHANGELOG.md +++ b/packages/apps/account/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/account +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/apps/account/package.json b/packages/apps/account/package.json index 5b08ca747d..bc88d09741 100644 --- a/packages/apps/account/package.json +++ b/packages/apps/account/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/account", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack Account — the end-user account/self-service console app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/apps/setup/CHANGELOG.md b/packages/apps/setup/CHANGELOG.md index 958173ac45..b212b993b3 100644 --- a/packages/apps/setup/CHANGELOG.md +++ b/packages/apps/setup/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/setup +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/apps/setup/package.json b/packages/apps/setup/package.json index ca8044e6cc..a546b192fd 100644 --- a/packages/apps/setup/package.json +++ b/packages/apps/setup/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/setup", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack Setup — the platform administration app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/apps/studio/CHANGELOG.md b/packages/apps/studio/CHANGELOG.md index 0f5c9872fb..7b965a3304 100644 --- a/packages/apps/studio/CHANGELOG.md +++ b/packages/apps/studio/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/studio +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/apps/studio/package.json b/packages/apps/studio/package.json index 2d35b76285..e8ea5ffc67 100644 --- a/packages/apps/studio/package.json +++ b/packages/apps/studio/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/studio", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack Studio — the metadata builder app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 5c85df8cd4..fe7829062c 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,61 @@ # @objectstack/cli +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [c4fd39f] +- Updated dependencies [0adcc1c] +- Updated dependencies [b5a87eb] +- Updated dependencies [3fd3576] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/service-settings@12.6.0 + - @objectstack/service-automation@12.6.0 + - @objectstack/runtime@12.6.0 + - @objectstack/verify@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/rest@12.6.0 + - @objectstack/driver-sql@12.6.0 + - @objectstack/account@12.6.0 + - @objectstack/setup@12.6.0 + - @objectstack/client@12.6.0 + - @objectstack/cloud-connection@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/lint@12.6.0 + - @objectstack/mcp@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/observability@12.6.0 + - @objectstack/platform-objects@12.6.0 + - @objectstack/driver-memory@12.6.0 + - @objectstack/driver-mongodb@12.6.0 + - @objectstack/driver-sqlite-wasm@12.6.0 + - @objectstack/plugin-approvals@12.6.0 + - @objectstack/plugin-audit@12.6.0 + - @objectstack/plugin-auth@12.6.0 + - @objectstack/plugin-email@12.6.0 + - @objectstack/plugin-hono-server@12.6.0 + - @objectstack/plugin-org-scoping@12.6.0 + - @objectstack/plugin-reports@12.6.0 + - @objectstack/plugin-security@12.6.0 + - @objectstack/plugin-sharing@12.6.0 + - @objectstack/plugin-webhooks@12.6.0 + - @objectstack/service-analytics@12.6.0 + - @objectstack/service-cache@12.6.0 + - @objectstack/service-datasource@12.6.0 + - @objectstack/service-job@12.6.0 + - @objectstack/service-messaging@12.6.0 + - @objectstack/service-package@12.6.0 + - @objectstack/service-queue@12.6.0 + - @objectstack/service-realtime@12.6.0 + - @objectstack/service-storage@12.6.0 + - @objectstack/trigger-api@12.6.0 + - @objectstack/trigger-record-change@12.6.0 + - @objectstack/trigger-schedule@12.6.0 + - @objectstack/types@12.6.0 + - @objectstack/console@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 5cdf88ca9f..df35d6e2bc 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cli", - "version": "12.5.0", + "version": "12.6.0", "description": "Command Line Interface for ObjectStack Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/client-react/CHANGELOG.md b/packages/client-react/CHANGELOG.md index fc58f652b3..ab04344454 100644 --- a/packages/client-react/CHANGELOG.md +++ b/packages/client-react/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/client-react +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/client@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/client-react/package.json b/packages/client-react/package.json index bf67b3382f..947ecdafdc 100644 --- a/packages/client-react/package.json +++ b/packages/client-react/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client-react", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "React hooks for ObjectStack Client SDK", "main": "dist/index.js", diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index 59eed100b6..7a7a221829 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/client +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/client/package.json b/packages/client/package.json index 99f6274a92..4686156690 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Official Client SDK for ObjectStack Protocol", "main": "dist/index.js", diff --git a/packages/cloud-connection/CHANGELOG.md b/packages/cloud-connection/CHANGELOG.md index 4567d926d4..271cff3222 100644 --- a/packages/cloud-connection/CHANGELOG.md +++ b/packages/cloud-connection/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/cloud-connection +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [b5a87eb] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/runtime@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/cloud-connection/package.json b/packages/cloud-connection/package.json index 681b564289..775cb4d57c 100644 --- a/packages/cloud-connection/package.json +++ b/packages/cloud-connection/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cloud-connection", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Runtime-side client for an ObjectStack cloud control plane — marketplace browse proxy, install-local, device-code binding, org catalog and installed views, and the /api/v1/runtime/config discovery endpoint. Open mechanism (ADR-0008): the hub service, plan policy, and entitlements stay server-side.", "type": "module", diff --git a/packages/connectors/connector-mcp/CHANGELOG.md b/packages/connectors/connector-mcp/CHANGELOG.md index 99a62401a2..403a7c4e6d 100644 --- a/packages/connectors/connector-mcp/CHANGELOG.md +++ b/packages/connectors/connector-mcp/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/connector-mcp +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/connectors/connector-mcp/package.json b/packages/connectors/connector-mcp/package.json index cf857a7fe8..fc47ece42c 100644 --- a/packages/connectors/connector-mcp/package.json +++ b/packages/connectors/connector-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-mcp", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Model Context Protocol (MCP) connector for ObjectStack — a generic adapter that turns any MCP server's tools into a connector's actions on the automation engine's connector registry (ADR-0024).", "main": "dist/index.js", diff --git a/packages/connectors/connector-openapi/CHANGELOG.md b/packages/connectors/connector-openapi/CHANGELOG.md index 4f8ad5485f..12025f1b29 100644 --- a/packages/connectors/connector-openapi/CHANGELOG.md +++ b/packages/connectors/connector-openapi/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/connector-openapi +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/connectors/connector-openapi/package.json b/packages/connectors/connector-openapi/package.json index a476967395..ebc0c1953c 100644 --- a/packages/connectors/connector-openapi/package.json +++ b/packages/connectors/connector-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-openapi", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "OpenAPI 3.x connector generator for ObjectStack — turns a declarative OpenAPI document into connector actions on the automation engine's registry, with a self-contained static-auth HTTP transport (ADR-0023).", "main": "dist/index.js", diff --git a/packages/connectors/connector-rest/CHANGELOG.md b/packages/connectors/connector-rest/CHANGELOG.md index 2e6f289fc8..52f9d897b9 100644 --- a/packages/connectors/connector-rest/CHANGELOG.md +++ b/packages/connectors/connector-rest/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/connector-rest +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/connectors/connector-rest/package.json b/packages/connectors/connector-rest/package.json index 069deeb95f..0a0f124538 100644 --- a/packages/connectors/connector-rest/package.json +++ b/packages/connectors/connector-rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-rest", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Generic REST connector for ObjectStack — the reference concrete connector that registers a `request` action on the automation engine's connector registry (ADR-0018 §Addendum).", "main": "dist/index.js", diff --git a/packages/connectors/connector-slack/CHANGELOG.md b/packages/connectors/connector-slack/CHANGELOG.md index ac85c0718c..0818fb09ef 100644 --- a/packages/connectors/connector-slack/CHANGELOG.md +++ b/packages/connectors/connector-slack/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/connector-slack +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/connectors/connector-slack/package.json b/packages/connectors/connector-slack/package.json index 9510a53e44..c72859dd01 100644 --- a/packages/connectors/connector-slack/package.json +++ b/packages/connectors/connector-slack/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-slack", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Slack Web API connector for ObjectStack — registers `chat.postMessage` / `chat.update` / `call` actions on the automation engine's connector registry (ADR-0018 §Addendum, ADR-0022).", "main": "dist/index.js", diff --git a/packages/console/CHANGELOG.md b/packages/console/CHANGELOG.md index 1089efb7df..c340ac9446 100644 --- a/packages/console/CHANGELOG.md +++ b/packages/console/CHANGELOG.md @@ -1,5 +1,7 @@ # @objectstack/console +## 12.6.0 + ## 12.5.0 ### Minor Changes diff --git a/packages/console/package.json b/packages/console/package.json index 8a87905915..986243e2ab 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/console", - "version": "12.5.0", + "version": "12.6.0", "description": "Prebuilt Console SPA pinned to this @objectstack/framework release. Source of truth: @object-ui/console (https://github.com/objectstack-ai/objectui).", "license": "Apache-2.0", "homepage": "https://github.com/objectstack-ai/framework/tree/main/packages/console", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 90e324fe6e..eade839a26 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,25 @@ # @objectstack/core +## 12.6.0 + +### Minor Changes + +- 21420d9: Seed loader and data-import now route bulk writes through the engine's array-form `insert()` (one round-trip per batch, with parent-deduplicated summary recompute) instead of one `insert()`/`createData()` call per record, and both retry transient driver errors instead of silently dropping the row (#2678). + + A new shared helper, `bulkWrite` (`@objectstack/core`), batches rows through a caller-supplied batch-write function, retries a whole-batch transient failure (network blip / timeout) with exponential backoff, and degrades to per-row writes (each itself retried) when a batch fails for a non-transient reason — so one bad row can't drop the other N-1. `withTransientRetry` wraps a single write (e.g. an update) with the same retry behavior. + + - `SeedLoaderService.loadDataset()` (`@objectstack/metadata-protocol`) buffers insert-mode records and flushes them in batches of 200 via the engine's array `insert()`. Datasets with a self-referencing field (e.g. `employee.manager_id -> employee`) keep the historical per-record write path, since a later record may need an earlier one's freshly-assigned id. + - `runImport()` (`@objectstack/rest`) buffers create-resolved rows and flushes them via `protocol.createManyData()` when the protocol supports it, falling back to the original per-row `createData()` call otherwise. `Protocol.createManyData` (`@objectstack/metadata-protocol`) now forwards `context` to `engine.insert()` like `createData` already did, so tenant-scoped bulk creates work correctly. + + Previously, a 1000-row seed or import into an object with a rollup summary issued 1000+ round-trips and up to 1000 summary recomputes; a single transient network error on any one row silently dropped it with no retry (the 2026-07-06 HotCRM first-boot incident). A `bulkCreate`-capable driver now sees roughly `ceil(N/batch)` writes, and a transient error is retried before a row is ever reported as failed. + + **Fix (`@objectstack/driver-sql`):** `SqlDriver.bulkCreate()` never generated a client-side id for a row missing one, unlike `create()` — a latent gap that this change is the first to exercise at scale (a bulk-inserted row without a driver-native id default silently landed with `id: NULL`). `bulkCreate()` now mirrors `create()`'s id/`_id` normalization per row. + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 072de6cd02..849debdb06 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/core", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Microkernel Core for ObjectStack", "type": "module", diff --git a/packages/create-objectstack/CHANGELOG.md b/packages/create-objectstack/CHANGELOG.md index 640bb3dbfa..3695748d39 100644 --- a/packages/create-objectstack/CHANGELOG.md +++ b/packages/create-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # create-objectstack +## 12.6.0 + ## 12.5.0 ## 12.4.0 diff --git a/packages/create-objectstack/package.json b/packages/create-objectstack/package.json index 916108f30c..48f1b02f8d 100644 --- a/packages/create-objectstack/package.json +++ b/packages/create-objectstack/package.json @@ -1,6 +1,6 @@ { "name": "create-objectstack", - "version": "12.5.0", + "version": "12.6.0", "description": "Create a new ObjectStack project — npx create-objectstack", "bin": { "create-objectstack": "./bin/create-objectstack.js" diff --git a/packages/dogfood/CHANGELOG.md b/packages/dogfood/CHANGELOG.md index 1de6862e5e..fbbb833aa8 100644 --- a/packages/dogfood/CHANGELOG.md +++ b/packages/dogfood/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/dogfood +## 0.0.24 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [3fd3576] + - @objectstack/spec@12.6.0 + - @objectstack/verify@12.6.0 + - @objectstack/example-crm@4.0.76 + - @objectstack/example-showcase@0.2.22 + - @objectstack/objectql@12.6.0 + - @objectstack/plugin-security@12.6.0 + ## 0.0.23 ### Patch Changes diff --git a/packages/dogfood/package.json b/packages/dogfood/package.json index 70079980aa..e3a6fa7273 100644 --- a/packages/dogfood/package.json +++ b/packages/dogfood/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/dogfood", - "version": "0.0.23", + "version": "0.0.24", "private": true, "license": "Apache-2.0", "description": "Dogfood regression gate — hand-written golden tests that boot real example apps through @objectstack/verify's in-process HTTP stack, pinning historical runtime regressions (#2018 timezone bucketing, #1994 cross-owner RLS, #2004 field fidelity) that static checks miss.", diff --git a/packages/downstream-contract/CHANGELOG.md b/packages/downstream-contract/CHANGELOG.md index a151762bde..abb6e34e99 100644 --- a/packages/downstream-contract/CHANGELOG.md +++ b/packages/downstream-contract/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/downstream-contract +## 0.0.22 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 0.0.21 ### Patch Changes diff --git a/packages/downstream-contract/package.json b/packages/downstream-contract/package.json index 42b03c3353..7f83534a39 100644 --- a/packages/downstream-contract/package.json +++ b/packages/downstream-contract/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/downstream-contract", - "version": "0.0.21", + "version": "0.0.22", "description": "Frozen third-party consumer fixture — a backward-compatibility gate for @objectstack/spec. Authored the way an external project on a published release authors metadata; if a spec change breaks it, that change is breaking (#2035).", "license": "Apache-2.0", "private": true, diff --git a/packages/formula/CHANGELOG.md b/packages/formula/CHANGELOG.md index 2ecb115e70..9736aae31c 100644 --- a/packages/formula/CHANGELOG.md +++ b/packages/formula/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/formula +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/formula/package.json b/packages/formula/package.json index dcead3532c..b3675f536c 100644 --- a/packages/formula/package.json +++ b/packages/formula/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/formula", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack canonical expression engine — CEL (cel-js) + ObjectStack stdlib + dialect registry", "main": "dist/index.js", diff --git a/packages/lint/CHANGELOG.md b/packages/lint/CHANGELOG.md index c828fed111..452c29d4e8 100644 --- a/packages/lint/CHANGELOG.md +++ b/packages/lint/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/lint +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/sdui-parser@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/lint/package.json b/packages/lint/package.json index ee81d639d1..0f7c410855 100644 --- a/packages/lint/package.json +++ b/packages/lint/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/lint", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Static, build-time validation for an ObjectStack metadata graph — dashboard widget bindings, CEL/predicate expressions, and more. Pure (stack) => Issue[] functions shared by the CLI's `os validate` and any other consumer (e.g. AI authoring). Depends on @objectstack/spec; never on a runtime.", "type": "module", diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index dd3a08a4f9..f212a7aa6b 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-mcp-server +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 06eb76608e..a4b58b9d1a 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/mcp", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack as an MCP server — exposes your app's objects (and AI tools) over the Model Context Protocol (stdio + Streamable HTTP)", "type": "module", diff --git a/packages/metadata-core/CHANGELOG.md b/packages/metadata-core/CHANGELOG.md index 38030b04d6..0ffb2cfc4f 100644 --- a/packages/metadata-core/CHANGELOG.md +++ b/packages/metadata-core/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/metadata-core +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/metadata-core/package.json b/packages/metadata-core/package.json index b9aa54ebb2..741f9cd3b9 100644 --- a/packages/metadata-core/package.json +++ b/packages/metadata-core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-core", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Metadata Repository contracts: types, canonicalization, errors, interface (ADR-0008).", "type": "module", diff --git a/packages/metadata-fs/CHANGELOG.md b/packages/metadata-fs/CHANGELOG.md index cdbacc331f..8e02ca7b14 100644 --- a/packages/metadata-fs/CHANGELOG.md +++ b/packages/metadata-fs/CHANGELOG.md @@ -1,5 +1,11 @@ # @objectstack/metadata-fs +## 12.6.0 + +### Patch Changes + +- @objectstack/metadata-core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/metadata-fs/package.json b/packages/metadata-fs/package.json index 0847145685..065d004758 100644 --- a/packages/metadata-fs/package.json +++ b/packages/metadata-fs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-fs", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "FileSystemRepository: Node-only Repository implementation backed by JSON files and a JSONL change log (ADR-0008).", "type": "module", diff --git a/packages/metadata-protocol/CHANGELOG.md b/packages/metadata-protocol/CHANGELOG.md index bcd6f08c10..690cca638f 100644 --- a/packages/metadata-protocol/CHANGELOG.md +++ b/packages/metadata-protocol/CHANGELOG.md @@ -1,5 +1,30 @@ # @objectstack/metadata-protocol +## 12.6.0 + +### Minor Changes + +- 21420d9: Seed loader and data-import now route bulk writes through the engine's array-form `insert()` (one round-trip per batch, with parent-deduplicated summary recompute) instead of one `insert()`/`createData()` call per record, and both retry transient driver errors instead of silently dropping the row (#2678). + + A new shared helper, `bulkWrite` (`@objectstack/core`), batches rows through a caller-supplied batch-write function, retries a whole-batch transient failure (network blip / timeout) with exponential backoff, and degrades to per-row writes (each itself retried) when a batch fails for a non-transient reason — so one bad row can't drop the other N-1. `withTransientRetry` wraps a single write (e.g. an update) with the same retry behavior. + + - `SeedLoaderService.loadDataset()` (`@objectstack/metadata-protocol`) buffers insert-mode records and flushes them in batches of 200 via the engine's array `insert()`. Datasets with a self-referencing field (e.g. `employee.manager_id -> employee`) keep the historical per-record write path, since a later record may need an earlier one's freshly-assigned id. + - `runImport()` (`@objectstack/rest`) buffers create-resolved rows and flushes them via `protocol.createManyData()` when the protocol supports it, falling back to the original per-row `createData()` call otherwise. `Protocol.createManyData` (`@objectstack/metadata-protocol`) now forwards `context` to `engine.insert()` like `createData` already did, so tenant-scoped bulk creates work correctly. + + Previously, a 1000-row seed or import into an object with a rollup summary issued 1000+ round-trips and up to 1000 summary recomputes; a single transient network error on any one row silently dropped it with no retry (the 2026-07-06 HotCRM first-boot incident). A `bulkCreate`-capable driver now sees roughly `ceil(N/batch)` writes, and a transient error is retried before a row is ever reported as failed. + + **Fix (`@objectstack/driver-sql`):** `SqlDriver.bulkCreate()` never generated a client-side id for a row missing one, unlike `create()` — a latent gap that this change is the first to exercise at scale (a bulk-inserted row without a driver-native id default silently landed with `id: NULL`). `bulkCreate()` now mirrors `create()`'s id/`_id` normalization per row. + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/metadata-core@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/metadata-protocol/package.json b/packages/metadata-protocol/package.json index 6d08dc2c09..a89c175082 100644 --- a/packages/metadata-protocol/package.json +++ b/packages/metadata-protocol/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-protocol", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack metadata management protocol: sys_metadata CRUD, draft/publish, locks, package ownership, diagnostics (ADR-0076).", "type": "module", diff --git a/packages/metadata/CHANGELOG.md b/packages/metadata/CHANGELOG.md index 39fd30d841..84a04ed2c1 100644 --- a/packages/metadata/CHANGELOG.md +++ b/packages/metadata/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/metadata +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/metadata-core@12.6.0 + - @objectstack/platform-objects@12.6.0 + - @objectstack/types@12.6.0 + - @objectstack/metadata-fs@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 908dc31de2..0afb0364a5 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Metadata loading, saving, and persistence for ObjectStack", "type": "module", diff --git a/packages/objectql/CHANGELOG.md b/packages/objectql/CHANGELOG.md index 11b9787882..a74059542e 100644 --- a/packages/objectql/CHANGELOG.md +++ b/packages/objectql/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/objectql +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/metadata-protocol@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/metadata-core@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/objectql/package.json b/packages/objectql/package.json index bbb335ed8b..0758316043 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/objectql", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Isomorphic ObjectQL Engine for ObjectStack", "main": "dist/index.js", diff --git a/packages/observability/CHANGELOG.md b/packages/observability/CHANGELOG.md index a154446afc..4cadaacf78 100644 --- a/packages/observability/CHANGELOG.md +++ b/packages/observability/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/observability +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/observability/package.json b/packages/observability/package.json index 333b2f49de..f70c5ec599 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/observability", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Observability contracts and exporters for ObjectStack — MetricsRegistry, ErrorReporter, Logger plus noop/console/OTLP-HTTP exporters. Deployment-target neutral; runtime and services depend on this so the same instrumentation works on Cloudflare Workers, Node, and self-hosted Kubernetes.", "type": "module", diff --git a/packages/platform-objects/CHANGELOG.md b/packages/platform-objects/CHANGELOG.md index 28940fbf74..19c3dfc044 100644 --- a/packages/platform-objects/CHANGELOG.md +++ b/packages/platform-objects/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/platform-objects +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/metadata-core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/platform-objects/package.json b/packages/platform-objects/package.json index d4f40a1718..cf1d1e753e 100644 --- a/packages/platform-objects/package.json +++ b/packages/platform-objects/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/platform-objects", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Core platform object schemas for ObjectStack — identity, security, audit, tenant, and metadata objects", "main": "dist/index.js", diff --git a/packages/plugins/driver-memory/CHANGELOG.md b/packages/plugins/driver-memory/CHANGELOG.md index 7286e1b0b9..780bf21e79 100644 --- a/packages/plugins/driver-memory/CHANGELOG.md +++ b/packages/plugins/driver-memory/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/driver-memory +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/driver-memory/package.json b/packages/plugins/driver-memory/package.json index ada637ab39..6e8a505306 100644 --- a/packages/plugins/driver-memory/package.json +++ b/packages/plugins/driver-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-memory", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "In-Memory Driver for ObjectStack (Reference Implementation)", "main": "dist/index.js", diff --git a/packages/plugins/driver-mongodb/CHANGELOG.md b/packages/plugins/driver-mongodb/CHANGELOG.md index 3e331f6353..1ed1770b15 100644 --- a/packages/plugins/driver-mongodb/CHANGELOG.md +++ b/packages/plugins/driver-mongodb/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/driver-mongodb +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/driver-mongodb/package.json b/packages/plugins/driver-mongodb/package.json index 60cb6f35a6..03f0faa24e 100644 --- a/packages/plugins/driver-mongodb/package.json +++ b/packages/plugins/driver-mongodb/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-mongodb", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "MongoDB Driver for ObjectStack - Native document database driver via official mongodb client", "main": "dist/index.js", diff --git a/packages/plugins/driver-sql/CHANGELOG.md b/packages/plugins/driver-sql/CHANGELOG.md index 1c301d29d7..1b5bb92265 100644 --- a/packages/plugins/driver-sql/CHANGELOG.md +++ b/packages/plugins/driver-sql/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/driver-sql +## 12.6.0 + +### Patch Changes + +- 21420d9: Seed loader and data-import now route bulk writes through the engine's array-form `insert()` (one round-trip per batch, with parent-deduplicated summary recompute) instead of one `insert()`/`createData()` call per record, and both retry transient driver errors instead of silently dropping the row (#2678). + + A new shared helper, `bulkWrite` (`@objectstack/core`), batches rows through a caller-supplied batch-write function, retries a whole-batch transient failure (network blip / timeout) with exponential backoff, and degrades to per-row writes (each itself retried) when a batch fails for a non-transient reason — so one bad row can't drop the other N-1. `withTransientRetry` wraps a single write (e.g. an update) with the same retry behavior. + + - `SeedLoaderService.loadDataset()` (`@objectstack/metadata-protocol`) buffers insert-mode records and flushes them in batches of 200 via the engine's array `insert()`. Datasets with a self-referencing field (e.g. `employee.manager_id -> employee`) keep the historical per-record write path, since a later record may need an earlier one's freshly-assigned id. + - `runImport()` (`@objectstack/rest`) buffers create-resolved rows and flushes them via `protocol.createManyData()` when the protocol supports it, falling back to the original per-row `createData()` call otherwise. `Protocol.createManyData` (`@objectstack/metadata-protocol`) now forwards `context` to `engine.insert()` like `createData` already did, so tenant-scoped bulk creates work correctly. + + Previously, a 1000-row seed or import into an object with a rollup summary issued 1000+ round-trips and up to 1000 summary recomputes; a single transient network error on any one row silently dropped it with no retry (the 2026-07-06 HotCRM first-boot incident). A `bulkCreate`-capable driver now sees roughly `ceil(N/batch)` writes, and a transient error is retried before a row is ever reported as failed. + + **Fix (`@objectstack/driver-sql`):** `SqlDriver.bulkCreate()` never generated a client-side id for a row missing one, unlike `create()` — a latent gap that this change is the first to exercise at scale (a bulk-inserted row without a driver-native id default silently landed with `id: NULL`). `bulkCreate()` now mirrors `create()`'s id/`_id` normalization per row. + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/driver-sql/package.json b/packages/plugins/driver-sql/package.json index 29e5a08bbf..54c064f4d6 100644 --- a/packages/plugins/driver-sql/package.json +++ b/packages/plugins/driver-sql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sql", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "SQL Driver for ObjectStack - Supports PostgreSQL, MySQL, SQLite via Knex", "main": "dist/index.js", diff --git a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md index db9fae87a5..ab228658a0 100644 --- a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md +++ b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/driver-sqlite-wasm +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/driver-sql@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/driver-sqlite-wasm/package.json b/packages/plugins/driver-sqlite-wasm/package.json index 5eb17662e2..65dadd2701 100644 --- a/packages/plugins/driver-sqlite-wasm/package.json +++ b/packages/plugins/driver-sqlite-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sqlite-wasm", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "WASM SQLite Driver for ObjectStack — runs in browser/WebContainer (StackBlitz) without native bindings", "keywords": [ diff --git a/packages/plugins/embedder-openai/CHANGELOG.md b/packages/plugins/embedder-openai/CHANGELOG.md index 6a37a0dcfc..f965d915ab 100644 --- a/packages/plugins/embedder-openai/CHANGELOG.md +++ b/packages/plugins/embedder-openai/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/embedder-openai +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/embedder-openai/package.json b/packages/plugins/embedder-openai/package.json index 26d999d15c..f59e931ab9 100644 --- a/packages/plugins/embedder-openai/package.json +++ b/packages/plugins/embedder-openai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/embedder-openai", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "OpenAI-compatible embedder for ObjectStack — works against OpenAI, 阿里通义 DashScope, 智谱 BigModel, 硅基流动 SiliconFlow, 火山引擎 Doubao, MiniMax, Ollama, and any drop-in OpenAI-shape endpoint.", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-memory/CHANGELOG.md b/packages/plugins/knowledge-memory/CHANGELOG.md index 5338f9b195..e4f5a77bf7 100644 --- a/packages/plugins/knowledge-memory/CHANGELOG.md +++ b/packages/plugins/knowledge-memory/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/knowledge-memory +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/service-knowledge@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/knowledge-memory/package.json b/packages/plugins/knowledge-memory/package.json index c72d8b2c12..ebe436f7ca 100644 --- a/packages/plugins/knowledge-memory/package.json +++ b/packages/plugins/knowledge-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-memory", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "In-memory knowledge adapter for ObjectStack (dev / test reference implementation).", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-ragflow/CHANGELOG.md b/packages/plugins/knowledge-ragflow/CHANGELOG.md index 8d6e29c54d..1d8cba4f3a 100644 --- a/packages/plugins/knowledge-ragflow/CHANGELOG.md +++ b/packages/plugins/knowledge-ragflow/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/knowledge-ragflow +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/service-knowledge@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/knowledge-ragflow/package.json b/packages/plugins/knowledge-ragflow/package.json index 271df93be3..fe25fe8aac 100644 --- a/packages/plugins/knowledge-ragflow/package.json +++ b/packages/plugins/knowledge-ragflow/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-ragflow", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "RAGFlow knowledge adapter for ObjectStack — production-grade RAG via the Apache 2.0 RAGFlow REST API.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-approvals/CHANGELOG.md b/packages/plugins/plugin-approvals/CHANGELOG.md index c71a10e86f..4a53241c23 100644 --- a/packages/plugins/plugin-approvals/CHANGELOG.md +++ b/packages/plugins/plugin-approvals/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-approvals +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/metadata-core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-approvals/package.json b/packages/plugins/plugin-approvals/package.json index 602f85765c..4c4e15e200 100644 --- a/packages/plugins/plugin-approvals/package.json +++ b/packages/plugins/plugin-approvals/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-approvals", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Multi-step approval engine for ObjectStack — sys_approval_process + sys_approval_request + sys_approval_action + IApprovalService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-audit/CHANGELOG.md b/packages/plugins/plugin-audit/CHANGELOG.md index 12fcdc6f51..2778a32c7f 100644 --- a/packages/plugins/plugin-audit/CHANGELOG.md +++ b/packages/plugins/plugin-audit/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-audit +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-audit/package.json b/packages/plugins/plugin-audit/package.json index a9669c665b..3153059dfc 100644 --- a/packages/plugins/plugin-audit/package.json +++ b/packages/plugins/plugin-audit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-audit", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Audit Plugin for ObjectStack — System audit log object and audit trail", "main": "dist/index.js", diff --git a/packages/plugins/plugin-auth/CHANGELOG.md b/packages/plugins/plugin-auth/CHANGELOG.md index 5519a6b72c..baff8b719c 100644 --- a/packages/plugins/plugin-auth/CHANGELOG.md +++ b/packages/plugins/plugin-auth/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-auth/package.json b/packages/plugins/plugin-auth/package.json index 8b680304ab..37818b8def 100644 --- a/packages/plugins/plugin-auth/package.json +++ b/packages/plugins/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-auth", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Authentication & Identity Plugin for ObjectStack", "main": "dist/index.js", diff --git a/packages/plugins/plugin-dev/CHANGELOG.md b/packages/plugins/plugin-dev/CHANGELOG.md index 821d8efead..0e2cf549c6 100644 --- a/packages/plugins/plugin-dev/CHANGELOG.md +++ b/packages/plugins/plugin-dev/CHANGELOG.md @@ -1,5 +1,27 @@ # @objectstack/plugin-dev +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [b5a87eb] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/runtime@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/rest@12.6.0 + - @objectstack/account@12.6.0 + - @objectstack/setup@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/driver-memory@12.6.0 + - @objectstack/plugin-auth@12.6.0 + - @objectstack/plugin-hono-server@12.6.0 + - @objectstack/plugin-org-scoping@12.6.0 + - @objectstack/plugin-security@12.6.0 + - @objectstack/service-i18n@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-dev/package.json b/packages/plugins/plugin-dev/package.json index 23cf3215d4..daf621b318 100644 --- a/packages/plugins/plugin-dev/package.json +++ b/packages/plugins/plugin-dev/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-dev", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Development Mode Plugin for ObjectStack — auto-enables all services with in-memory implementations", "main": "dist/index.js", diff --git a/packages/plugins/plugin-email/CHANGELOG.md b/packages/plugins/plugin-email/CHANGELOG.md index 1d3dcb8d26..522dc01972 100644 --- a/packages/plugins/plugin-email/CHANGELOG.md +++ b/packages/plugins/plugin-email/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-email +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-email/package.json b/packages/plugins/plugin-email/package.json index d3b1c2fe45..83fb37c1af 100644 --- a/packages/plugins/plugin-email/package.json +++ b/packages/plugins/plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-email", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Email service plugin for ObjectStack — IEmailService + transport-pluggable outbound delivery with sys_email persistence.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-hono-server/CHANGELOG.md b/packages/plugins/plugin-hono-server/CHANGELOG.md index 902390b893..891067a8b9 100644 --- a/packages/plugins/plugin-hono-server/CHANGELOG.md +++ b/packages/plugins/plugin-hono-server/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-hono-server +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/observability@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-hono-server/package.json b/packages/plugins/plugin-hono-server/package.json index 11af644309..8974a4fd46 100644 --- a/packages/plugins/plugin-hono-server/package.json +++ b/packages/plugins/plugin-hono-server/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-hono-server", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Standard Hono Server Adapter for ObjectStack Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-org-scoping/CHANGELOG.md b/packages/plugins/plugin-org-scoping/CHANGELOG.md index 865215e34f..b460ba41fd 100644 --- a/packages/plugins/plugin-org-scoping/CHANGELOG.md +++ b/packages/plugins/plugin-org-scoping/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-org-scoping +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-org-scoping/package.json b/packages/plugins/plugin-org-scoping/package.json index 6dab285f17..c82194d91b 100644 --- a/packages/plugins/plugin-org-scoping/package.json +++ b/packages/plugins/plugin-org-scoping/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-org-scoping", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Organization-Scoping Plugin for ObjectStack — row-level Organization isolation, per-org seed replay, default-org bootstrap", "main": "dist/index.js", diff --git a/packages/plugins/plugin-reports/CHANGELOG.md b/packages/plugins/plugin-reports/CHANGELOG.md index 674f09dc02..9ae12b86d4 100644 --- a/packages/plugins/plugin-reports/CHANGELOG.md +++ b/packages/plugins/plugin-reports/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-reports +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-reports/package.json b/packages/plugins/plugin-reports/package.json index ee9ed14661..2fed24d2eb 100644 --- a/packages/plugins/plugin-reports/package.json +++ b/packages/plugins/plugin-reports/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-reports", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Saved reports + scheduled email digests for ObjectStack — sys_saved_report + sys_report_schedule + IReportService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-security/CHANGELOG.md b/packages/plugins/plugin-security/CHANGELOG.md index 9165c8f8c0..aaad2a7ef5 100644 --- a/packages/plugins/plugin-security/CHANGELOG.md +++ b/packages/plugins/plugin-security/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-security +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-security/package.json b/packages/plugins/plugin-security/package.json index 284477e310..51babb3f4d 100644 --- a/packages/plugins/plugin-security/package.json +++ b/packages/plugins/plugin-security/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-security", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Security Plugin for ObjectStack — RBAC, RLS, and Field-Level Security Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-sharing/CHANGELOG.md b/packages/plugins/plugin-sharing/CHANGELOG.md index 10b27d80eb..1d51ba8047 100644 --- a/packages/plugins/plugin-sharing/CHANGELOG.md +++ b/packages/plugins/plugin-sharing/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-sharing +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-sharing/package.json b/packages/plugins/plugin-sharing/package.json index a56f5553c2..cb50961c66 100644 --- a/packages/plugins/plugin-sharing/package.json +++ b/packages/plugins/plugin-sharing/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-sharing", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Record-level sharing for ObjectStack — sys_record_share + middleware that enforces sharingModel + ISharingService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-webhooks/CHANGELOG.md b/packages/plugins/plugin-webhooks/CHANGELOG.md index 4193798131..2d94b465a5 100644 --- a/packages/plugins/plugin-webhooks/CHANGELOG.md +++ b/packages/plugins/plugin-webhooks/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-webhooks +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/service-messaging@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/plugins/plugin-webhooks/package.json b/packages/plugins/plugin-webhooks/package.json index 61e6e4a033..7b71f1bdd1 100644 --- a/packages/plugins/plugin-webhooks/package.json +++ b/packages/plugins/plugin-webhooks/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-webhooks", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Persistent, cluster-aware webhook dispatcher. Durable outbox + per-partition cluster.lock for exactly-once-ish delivery across nodes. See content/docs/concepts/webhook-delivery.mdx.", "type": "module", diff --git a/packages/rest/CHANGELOG.md b/packages/rest/CHANGELOG.md index 6684702f62..9c8b7cb2d9 100644 --- a/packages/rest/CHANGELOG.md +++ b/packages/rest/CHANGELOG.md @@ -1,5 +1,29 @@ # @objectstack/rest +## 12.6.0 + +### Minor Changes + +- 21420d9: Seed loader and data-import now route bulk writes through the engine's array-form `insert()` (one round-trip per batch, with parent-deduplicated summary recompute) instead of one `insert()`/`createData()` call per record, and both retry transient driver errors instead of silently dropping the row (#2678). + + A new shared helper, `bulkWrite` (`@objectstack/core`), batches rows through a caller-supplied batch-write function, retries a whole-batch transient failure (network blip / timeout) with exponential backoff, and degrades to per-row writes (each itself retried) when a batch fails for a non-transient reason — so one bad row can't drop the other N-1. `withTransientRetry` wraps a single write (e.g. an update) with the same retry behavior. + + - `SeedLoaderService.loadDataset()` (`@objectstack/metadata-protocol`) buffers insert-mode records and flushes them in batches of 200 via the engine's array `insert()`. Datasets with a self-referencing field (e.g. `employee.manager_id -> employee`) keep the historical per-record write path, since a later record may need an earlier one's freshly-assigned id. + - `runImport()` (`@objectstack/rest`) buffers create-resolved rows and flushes them via `protocol.createManyData()` when the protocol supports it, falling back to the original per-row `createData()` call otherwise. `Protocol.createManyData` (`@objectstack/metadata-protocol`) now forwards `context` to `engine.insert()` like `createData` already did, so tenant-scoped bulk creates work correctly. + + Previously, a 1000-row seed or import into an object with a rollup summary issued 1000+ round-trips and up to 1000 summary recomputes; a single transient network error on any one row silently dropped it with no retry (the 2026-07-06 HotCRM first-boot incident). A `bulkCreate`-capable driver now sees roughly `ceil(N/batch)` writes, and a transient error is retried before a row is ever reported as failed. + + **Fix (`@objectstack/driver-sql`):** `SqlDriver.bulkCreate()` never generated a client-side id for a row missing one, unlike `create()` — a latent gap that this change is the first to exercise at scale (a bulk-inserted row without a driver-native id default silently landed with `id: NULL`). `bulkCreate()` now mirrors `create()`'s id/`_id` normalization per row. + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + - @objectstack/service-package@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/rest/package.json b/packages/rest/package.json index 6f0cc92984..aab3475e0e 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/rest", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack REST API Server - automatic REST endpoint generation from protocol", "type": "module", diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index d7321ca21b..d4e7000b5d 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,33 @@ # @objectstack/runtime +## 12.6.0 + +### Patch Changes + +- b5a87eb: Sandbox: stop `QuickJSScriptRunner` from crashing when a hook context holds a non-serialisable host object. + + `installCtx` marshalled `ctx` into the QuickJS sandbox with a bare `JSON.stringify`. If the context (or anything reachable from it) held a live `setTimeout`/`setInterval` handle, `JSON.stringify` threw `TypeError: Converting circular structure to JSON` (`Timeout._idlePrev -> TimersList._idleNext -> …`) and took the whole hook down (#2674). Marshalling now goes through a shared `safeJsonStringify` that drops circular back-edges via a path `WeakSet` and coerces `BigInt` to a string, so only JSON-safe leaves cross the boundary and the body still runs. + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/rest@12.6.0 + - @objectstack/driver-sql@12.6.0 + - @objectstack/formula@12.6.0 + - @objectstack/metadata@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/observability@12.6.0 + - @objectstack/driver-memory@12.6.0 + - @objectstack/driver-sqlite-wasm@12.6.0 + - @objectstack/plugin-auth@12.6.0 + - @objectstack/plugin-org-scoping@12.6.0 + - @objectstack/plugin-security@12.6.0 + - @objectstack/service-cluster@12.6.0 + - @objectstack/service-datasource@12.6.0 + - @objectstack/service-i18n@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 6b61c74b1f..416ad71a74 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/runtime", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack Core Runtime & Query Engine", "type": "module", diff --git a/packages/sdui-parser/CHANGELOG.md b/packages/sdui-parser/CHANGELOG.md index 1b8ebcc58d..40bc3dd046 100644 --- a/packages/sdui-parser/CHANGELOG.md +++ b/packages/sdui-parser/CHANGELOG.md @@ -1,5 +1,7 @@ # @objectstack/sdui-parser +## 12.6.0 + ## 12.5.0 ## 12.4.0 diff --git a/packages/sdui-parser/package.json b/packages/sdui-parser/package.json index e70cb7a647..5277114f94 100644 --- a/packages/sdui-parser/package.json +++ b/packages/sdui-parser/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/sdui-parser", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "ObjectStack constrained JSX-source → SDUI SchemaNode tree compiler (parse, never execute). Isomorphic, zero React. ADR-0080.", "main": "dist/index.js", diff --git a/packages/services/service-analytics/CHANGELOG.md b/packages/services/service-analytics/CHANGELOG.md index fb32e2a3ca..33a9a98d5e 100644 --- a/packages/services/service-analytics/CHANGELOG.md +++ b/packages/services/service-analytics/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog — @objectstack/service-analytics +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-analytics/package.json b/packages/services/service-analytics/package.json index dbc434822c..c00de93d46 100644 --- a/packages/services/service-analytics/package.json +++ b/packages/services/service-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-analytics", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Analytics Service for ObjectStack — implements IAnalyticsService with multi-driver strategy pattern (NativeSQL, ObjectQL, InMemory)", "type": "module", diff --git a/packages/services/service-automation/CHANGELOG.md b/packages/services/service-automation/CHANGELOG.md index 82b4af4234..0a30f0099f 100644 --- a/packages/services/service-automation/CHANGELOG.md +++ b/packages/services/service-automation/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/service-automation +## 12.6.0 + +### Minor Changes + +- 0adcc1c: Flow `notify` node: support a click-through target so inbox notifications can be clicked into the related record (#2675). + + The `notify` node now reads `sourceObject` / `sourceId` (or the nested `source: { object, id }` form) and `actorId` from its config and forwards them to the messaging service, which persists `sys_notification.source_object` / `source_id` / `actor_id` and synthesizes a `/{object}/{id}` inbox deep-link. Both keys interpolate flow variables (e.g. `sourceId: '{new_quotation.id}'`), and a half-specified target (object without id, or vice versa) is dropped so the inbox never renders a dead link. `url` is now accepted as an alias for `actionUrl` (an explicit URL still overrides the synthesized link). The node also publishes a `configSchema` documenting all accepted keys for the Studio form. + + Previously the node consumed only `recipients` / `title` / `message` / `channels`, so every notification it emitted had `source_object` / `source_id` = `null` and could not be clicked through to a record. + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/formula@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-automation/package.json b/packages/services/service-automation/package.json index 24278361af..5cffef888d 100644 --- a/packages/services/service-automation/package.json +++ b/packages/services/service-automation/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-automation", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Automation Service for ObjectStack — implements IAutomationService with plugin-based DAG flow execution engine", "type": "module", diff --git a/packages/services/service-cache/CHANGELOG.md b/packages/services/service-cache/CHANGELOG.md index 2ea21111b6..e10cbfdbe5 100644 --- a/packages/services/service-cache/CHANGELOG.md +++ b/packages/services/service-cache/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-cache +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/observability@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-cache/package.json b/packages/services/service-cache/package.json index fc5aa2525a..0f640c8fc2 100644 --- a/packages/services/service-cache/package.json +++ b/packages/services/service-cache/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cache", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Cache Service for ObjectStack — implements ICacheService with in-memory and Redis adapters", "type": "module", diff --git a/packages/services/service-cluster-redis/CHANGELOG.md b/packages/services/service-cluster-redis/CHANGELOG.md index 1d2683c8b8..49248d6a5c 100644 --- a/packages/services/service-cluster-redis/CHANGELOG.md +++ b/packages/services/service-cluster-redis/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/service-cluster-redis +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + - @objectstack/service-cluster@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-cluster-redis/package.json b/packages/services/service-cluster-redis/package.json index f4eca0dbec..1df1084c81 100644 --- a/packages/services/service-cluster-redis/package.json +++ b/packages/services/service-cluster-redis/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster-redis", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Redis cluster driver for ObjectStack — implements IPubSub/ILock/IKV/ICounter against Redis using ioredis.", "type": "module", diff --git a/packages/services/service-cluster/CHANGELOG.md b/packages/services/service-cluster/CHANGELOG.md index ccd8289b25..d9b8b00c95 100644 --- a/packages/services/service-cluster/CHANGELOG.md +++ b/packages/services/service-cluster/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-cluster +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-cluster/package.json b/packages/services/service-cluster/package.json index a46beb7576..0f7f01ce3c 100644 --- a/packages/services/service-cluster/package.json +++ b/packages/services/service-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Cluster Service for ObjectStack — pluggable PubSub/Lock/KV/Counter primitives. Memory driver included; postgres/redis drivers ship separately.", "type": "module", diff --git a/packages/services/service-datasource/CHANGELOG.md b/packages/services/service-datasource/CHANGELOG.md index cf20c8fed6..94a17df7f9 100644 --- a/packages/services/service-datasource/CHANGELOG.md +++ b/packages/services/service-datasource/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-external-datasource +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-datasource/package.json b/packages/services/service-datasource/package.json index d43baea575..5084e4f1f8 100644 --- a/packages/services/service-datasource/package.json +++ b/packages/services/service-datasource/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-datasource", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "The datasource service (ADR-0015): external-table federation (introspect/draft/import/validate) + runtime UI datasource lifecycle (list/test/create/update/remove + REST routes). Open-source mechanism; the tier line falls on which ICryptoProvider / driver factory a host injects.", "type": "module", diff --git a/packages/services/service-i18n/CHANGELOG.md b/packages/services/service-i18n/CHANGELOG.md index 0c8c68af7c..c0fd417a88 100644 --- a/packages/services/service-i18n/CHANGELOG.md +++ b/packages/services/service-i18n/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-i18n +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-i18n/package.json b/packages/services/service-i18n/package.json index f4f9f1bbdc..22160bedb0 100644 --- a/packages/services/service-i18n/package.json +++ b/packages/services/service-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-i18n", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "I18n Service for ObjectStack — implements II18nService with file-based locale loading", "type": "module", diff --git a/packages/services/service-job/CHANGELOG.md b/packages/services/service-job/CHANGELOG.md index e04a77db1b..0b8db31962 100644 --- a/packages/services/service-job/CHANGELOG.md +++ b/packages/services/service-job/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-job +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-job/package.json b/packages/services/service-job/package.json index bb830df0ae..3bb0a62173 100644 --- a/packages/services/service-job/package.json +++ b/packages/services/service-job/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-job", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Job Service for ObjectStack — implements IJobService with setInterval and cron scheduling", "type": "module", diff --git a/packages/services/service-knowledge/CHANGELOG.md b/packages/services/service-knowledge/CHANGELOG.md index 1a84079e72..25869bc319 100644 --- a/packages/services/service-knowledge/CHANGELOG.md +++ b/packages/services/service-knowledge/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-knowledge +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-knowledge/package.json b/packages/services/service-knowledge/package.json index 152ac00fdd..2bf739e6fb 100644 --- a/packages/services/service-knowledge/package.json +++ b/packages/services/service-knowledge/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-knowledge", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Knowledge Service for ObjectStack — orchestrator implementing IKnowledgeService over pluggable IKnowledgeAdapter backends (RAGFlow, LlamaIndex, Dify, in-memory).", "type": "module", diff --git a/packages/services/service-messaging/CHANGELOG.md b/packages/services/service-messaging/CHANGELOG.md index 39cc5c6169..505f7711c5 100644 --- a/packages/services/service-messaging/CHANGELOG.md +++ b/packages/services/service-messaging/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-messaging +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-messaging/package.json b/packages/services/service-messaging/package.json index d6a8045eaf..e49989d5c5 100644 --- a/packages/services/service-messaging/package.json +++ b/packages/services/service-messaging/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-messaging", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Messaging Service for ObjectStack — outbound notification dispatch (ADR-0012). Ships the MessagingChannel registry, emit() fan-out, and the always-on inbox channel; other channels (email/webhook/push/IM) plug in.", "type": "module", diff --git a/packages/services/service-package/CHANGELOG.md b/packages/services/service-package/CHANGELOG.md index 29c4c728bf..b32c7437ee 100644 --- a/packages/services/service-package/CHANGELOG.md +++ b/packages/services/service-package/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/service-package +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-package/package.json b/packages/services/service-package/package.json index f871f2a37a..e556e61a47 100644 --- a/packages/services/service-package/package.json +++ b/packages/services/service-package/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-package", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Package management service for ObjectStack — publish, install, and manage packages", "type": "module", diff --git a/packages/services/service-queue/CHANGELOG.md b/packages/services/service-queue/CHANGELOG.md index efa18a5973..8b6b050dfc 100644 --- a/packages/services/service-queue/CHANGELOG.md +++ b/packages/services/service-queue/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-queue +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-queue/package.json b/packages/services/service-queue/package.json index 9f036e59b0..c5e50b8359 100644 --- a/packages/services/service-queue/package.json +++ b/packages/services/service-queue/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-queue", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Queue Service for ObjectStack — implements IQueueService with in-memory and durable DB-backed (sys_job_queue) adapters", "type": "module", diff --git a/packages/services/service-realtime/CHANGELOG.md b/packages/services/service-realtime/CHANGELOG.md index d59c438934..f898f27709 100644 --- a/packages/services/service-realtime/CHANGELOG.md +++ b/packages/services/service-realtime/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-realtime +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-realtime/package.json b/packages/services/service-realtime/package.json index 40f0d4610a..2ff5076bfa 100644 --- a/packages/services/service-realtime/package.json +++ b/packages/services/service-realtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-realtime", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Realtime Service for ObjectStack — implements IRealtimeService with WebSocket and in-memory pub/sub", "type": "module", diff --git a/packages/services/service-settings/CHANGELOG.md b/packages/services/service-settings/CHANGELOG.md index 7a8459a3a9..9def2e8945 100644 --- a/packages/services/service-settings/CHANGELOG.md +++ b/packages/services/service-settings/CHANGELOG.md @@ -1,5 +1,24 @@ # @objectstack/service-settings +## 12.6.0 + +### Minor Changes + +- c4fd39f: Localization: drop the hard-coded `USD` platform default for the workspace **Default currency** setting. + + Previously the `localization.currency` setting defaulted to `'USD'`, and that value was applied to any `currency`-typed field that omits its own code — so every code-less amount surfaced a `$`/`US$` symbol even when nothing (field, measure, or workspace) actually named a currency. The setting now has **no platform default**: a code-less currency amount renders as a plain number unless the workspace explicitly picks a default currency (or the field declares its own). + + Migration: a workspace that relied on the implicit USD default and wants to keep showing `$` should set **Settings → Localization → Default currency** to `USD` explicitly. Fields/measures that declare their own currency code are unaffected. + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/platform-objects@12.6.0 + - @objectstack/types@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-settings/package.json b/packages/services/service-settings/package.json index b0c7b0916b..ffa5693417 100644 --- a/packages/services/service-settings/package.json +++ b/packages/services/service-settings/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-settings", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Settings service for ObjectStack — manifest registry + K/V resolver (OS_* env > Tenant > User > Default) + REST routes. See ADR-0007.", "type": "module", diff --git a/packages/services/service-storage/CHANGELOG.md b/packages/services/service-storage/CHANGELOG.md index df6dbf6067..d6d543b5dc 100644 --- a/packages/services/service-storage/CHANGELOG.md +++ b/packages/services/service-storage/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/service-storage +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/observability@12.6.0 + - @objectstack/platform-objects@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/services/service-storage/package.json b/packages/services/service-storage/package.json index 7a1d8dd921..2e99ce695b 100644 --- a/packages/services/service-storage/package.json +++ b/packages/services/service-storage/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-storage", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Storage Service for ObjectStack — implements IStorageService with local filesystem and S3 adapter skeleton", "type": "module", diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index cbfc787bb3..20114e7d45 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/spec +## 12.6.0 + +### Minor Changes + +- 6cebf22: `Action`: add an explicit `order` field so authors and plugins can decide which action holds the record-header primary-button slot, instead of depending on fragile cross-file `defineStack({ actions })` registration order (#2670). + + `order` is an optional number, **lower = higher / more prominent**, defaulting to `0`. `mergeActionsIntoObjects()` now stable-sorts every action group — each object's `actions` and the top-level `actions` — by `order` at both `defineStack()` and `composeStacks()` time. In `record_header` the first visible action becomes the primary button, so a negative `order` promotes an action into the primary slot and a positive `order` demotes it toward the `⋯` overflow menu. This is the declarative lever a plugin such as plugin-approvals uses to make an `Approve`/`Reject` decision stably outrank app actions, rather than hiding the other actions to "make room". + + Fully backward compatible: the sort is stable and treats unset `order` as `0`, so action groups where nobody sets `order` keep their exact registration order (and array reference). The record-header renderer (objectui) may additionally prefer a `variant: 'primary'` action when two actions tie on `order`. + ## 12.5.0 ### Patch Changes diff --git a/packages/spec/package.json b/packages/spec/package.json index 759d76e211..b1dc36cb0d 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/spec", - "version": "12.5.0", + "version": "12.6.0", "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/triggers/trigger-api/CHANGELOG.md b/packages/triggers/trigger-api/CHANGELOG.md index ff114a1afe..c105ee7da3 100644 --- a/packages/triggers/trigger-api/CHANGELOG.md +++ b/packages/triggers/trigger-api/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/trigger-api +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/triggers/trigger-api/package.json b/packages/triggers/trigger-api/package.json index 49c65d3987..8982dbf2a6 100644 --- a/packages/triggers/trigger-api/package.json +++ b/packages/triggers/trigger-api/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-api", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Inbound HTTP/webhook flow trigger for ObjectStack — per-flow HMAC-verified endpoints with queue-backed ingestion (ADR-0041)", "main": "dist/index.js", diff --git a/packages/triggers/trigger-record-change/CHANGELOG.md b/packages/triggers/trigger-record-change/CHANGELOG.md index 352ef767af..7ae20a3855 100644 --- a/packages/triggers/trigger-record-change/CHANGELOG.md +++ b/packages/triggers/trigger-record-change/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/plugin-trigger-record-change +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/triggers/trigger-record-change/package.json b/packages/triggers/trigger-record-change/package.json index b71dfba99e..55867f110f 100644 --- a/packages/triggers/trigger-record-change/package.json +++ b/packages/triggers/trigger-record-change/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-record-change", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Record-change flow trigger for ObjectStack — auto-launches flows on object insert/update/delete via ObjectQL lifecycle hooks (ADR-0018)", "main": "dist/index.js", diff --git a/packages/triggers/trigger-schedule/CHANGELOG.md b/packages/triggers/trigger-schedule/CHANGELOG.md index 5f7ac974ea..574e6f9cc8 100644 --- a/packages/triggers/trigger-schedule/CHANGELOG.md +++ b/packages/triggers/trigger-schedule/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/plugin-trigger-schedule +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/core@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/triggers/trigger-schedule/package.json b/packages/triggers/trigger-schedule/package.json index 3bda519453..992b9e7a1a 100644 --- a/packages/triggers/trigger-schedule/package.json +++ b/packages/triggers/trigger-schedule/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-schedule", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Schedule flow trigger for ObjectStack — auto-launches flows on a cron/interval/once schedule via the IJobService (ADR-0018)", "main": "dist/index.js", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index d16452e140..f24016d7d0 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/types +## 12.6.0 + +### Patch Changes + +- Updated dependencies [6cebf22] + - @objectstack/spec@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/types/package.json b/packages/types/package.json index f110f7b09d..c65b938fef 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/types", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Shared interfaces describing the ObjectStack Runtime environment", "main": "dist/index.js", diff --git a/packages/verify/CHANGELOG.md b/packages/verify/CHANGELOG.md index 4240f897c6..f0ec105d22 100644 --- a/packages/verify/CHANGELOG.md +++ b/packages/verify/CHANGELOG.md @@ -1,5 +1,40 @@ # @objectstack/verify +## 12.6.0 + +### Minor Changes + +- 3fd3576: Add `checkReadCoercion` — a reusable, driver-agnostic read-coercion conformance + helper (a stored value must read back as its declared type: boolean as boolean, + json as object, integer as number). Mirrors `checkLedger`: returns a list of + problems (empty = conformant) with no test-runner dependency, so any driver — + including out-of-tree ones like cloud's driver-turso — can run the identical + contract against itself. This is the invariant behind the case_escalation + `1 != true` incident. + +### Patch Changes + +- Updated dependencies [6cebf22] +- Updated dependencies [c4fd39f] +- Updated dependencies [0adcc1c] +- Updated dependencies [b5a87eb] +- Updated dependencies [21420d9] + - @objectstack/spec@12.6.0 + - @objectstack/service-settings@12.6.0 + - @objectstack/service-automation@12.6.0 + - @objectstack/runtime@12.6.0 + - @objectstack/core@12.6.0 + - @objectstack/rest@12.6.0 + - @objectstack/objectql@12.6.0 + - @objectstack/driver-sqlite-wasm@12.6.0 + - @objectstack/plugin-auth@12.6.0 + - @objectstack/plugin-hono-server@12.6.0 + - @objectstack/plugin-org-scoping@12.6.0 + - @objectstack/plugin-security@12.6.0 + - @objectstack/plugin-sharing@12.6.0 + - @objectstack/service-analytics@12.6.0 + - @objectstack/service-datasource@12.6.0 + ## 12.5.0 ### Patch Changes diff --git a/packages/verify/package.json b/packages/verify/package.json index 67eca8687c..2e8a676206 100644 --- a/packages/verify/package.json +++ b/packages/verify/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/verify", - "version": "12.5.0", + "version": "12.6.0", "license": "Apache-2.0", "description": "Boot any ObjectStack app in-process and verify it through the real HTTP stack — auto-derived CRUD round-trip fidelity plus the cross-owner RLS invariant. Catches runtime regressions that static checks miss.", "type": "module", diff --git a/packages/vscode-objectstack/CHANGELOG.md b/packages/vscode-objectstack/CHANGELOG.md index cb2ef306fe..5990175a61 100644 --- a/packages/vscode-objectstack/CHANGELOG.md +++ b/packages/vscode-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # objectstack-vscode +## 12.6.0 + ## 12.5.0 ## 12.4.0 diff --git a/packages/vscode-objectstack/package.json b/packages/vscode-objectstack/package.json index 6c60371243..ebd0a29f5d 100644 --- a/packages/vscode-objectstack/package.json +++ b/packages/vscode-objectstack/package.json @@ -2,7 +2,7 @@ "name": "objectstack-vscode", "displayName": "ObjectStack", "description": "ObjectStack Protocol — Autocomplete, validation, and inline diagnostics for .object.ts, .view.ts, and objectstack.config.ts files", - "version": "12.5.0", + "version": "12.6.0", "publisher": "objectstack", "license": "Apache-2.0", "repository": {