diff --git a/.changeset/analytics-datetime-epoch-filter.md b/.changeset/analytics-datetime-epoch-filter.md deleted file mode 100644 index 8137a4bca7..0000000000 --- a/.changeset/analytics-datetime-epoch-filter.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@objectstack/service-analytics": patch -"@objectstack/driver-sql": patch -"@objectstack/spec": patch ---- - -Fix dashboard time-series charts / "last N months" KPIs that filter or group by a `Field.datetime` column silently returning "No rows". - -The analytics `NativeSQLStrategy` compiles dashboard relative-date tokens (`{12_months_ago}`, `{today}`, …) to ISO date strings and binds them directly into raw SQL, bypassing the driver's own filter coercion. Under better-sqlite3 a `Field.datetime` column is stored as an INTEGER epoch (ms), so `assessed_at >= '2025-06-18'` became a TEXT-vs-INTEGER affinity compare that is always false — an empty result even though the rows exist. `Field.date` columns store ISO TEXT and were unaffected. - -The strategy now coerces a temporal comparand to the column's on-disk storage form via a new optional `StrategyContext.coerceTemporalFilterValue` hook, wired to the driver's public `SqlDriver.temporalFilterValue` (the single source of truth for the storage convention). Coercion is dialect-correct: SQLite `Field.datetime` → epoch ms; `Field.date` text and native-timestamp dialects (Postgres/MySQL) are left unchanged, so Postgres is never handed an epoch integer. Applied to `gte`/`lte`/`gt`/`lt`/`equals`, `in`/`notIn`, and the `dateRange`/timeDimension `BETWEEN` path. diff --git a/.changeset/example-apps-spec-input-types.md b/.changeset/example-apps-spec-input-types.md deleted file mode 100644 index 6251865776..0000000000 --- a/.changeset/example-apps-spec-input-types.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@objectstack/spec": patch ---- - -Add `*Input` authoring-type aliases (`DatasourceInput`, `ConnectorInput`, `SharingRuleInput`, `JobInput`, `WebhookInput`, `EmailTemplateDefinitionInput`, `RoleInput`, `PermissionSetInput`, `ObjectExtensionInput`) alongside the existing `FieldInput`/`ActionInput`/`ReportInput`/`PortalInput` convention. These are `z.input` aliases so authored literals keep `.default()` fields optional and accept CEL/Expression string shorthands — matching how `defineX()` helpers already accept input. No runtime change. diff --git a/.changeset/field-type-fidelity-legacy.md b/.changeset/field-type-fidelity-legacy.md deleted file mode 100644 index ed194e863e..0000000000 --- a/.changeset/field-type-fidelity-legacy.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@objectstack/driver-sql": patch ---- - -fix(driver-sql): make numeric-scalar type fidelity self-heal on legacy SQLite columns - -The #2025 fix mapped `rating`/`slider`/`progress` to numeric columns, but SQLite never alters a column's type in place and the schema reconciler only adds missing columns — so a column created before that fix keeps its TEXT affinity and would still read back `'4'` instead of `4` forever. - -A read-side numeric coercion (the new `numericFields` registry, single-sourced from `NUMERIC_SCALAR_TYPES`) now coerces numeric-looking stored strings back to numbers on read, mirroring how `dateFields` already repairs legacy timestamp-typed `Field.date` rows. The fidelity no longer depends on column affinity alone; `null` and genuinely non-numeric legacy values are left intact rather than turned into `0`/`NaN`. diff --git a/.changeset/field-type-fidelity.md b/.changeset/field-type-fidelity.md deleted file mode 100644 index 2001258681..0000000000 --- a/.changeset/field-type-fidelity.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@objectstack/driver-sql": patch ---- - -fix(driver-sql): round-trip rating/slider/toggle/progress with type fidelity - -`rating`/`slider`/`toggle`/`progress` had no case in the DDL column-type switch, so they fell to `default → table.string` (TEXT affinity). SQLite then coerced the written value to a string — `rating: 4` read back `'4'`, `toggle: true` read back `'1'` — so the value persisted but the JS type leaked on read. On a low-code platform where field types are author-driven, a field that silently returns the wrong type is a runtime-fidelity trap the static gates and value-loss tests don't catch. - -- `rating`/`slider`/`progress` now map to a REAL (numeric) column. -- `toggle` maps to a boolean column and is registered in the boolean read-coercion path, so stored `1`/`0` come back as real JS booleans. -- The object-valued `record`/`video`/`audio` types are folded into the shared `JSON_COLUMN_TYPES` source, and the DDL `default` case now derives JSON-vs-string from that set, so the column-type switch and `isJsonField` (the read-side deserializer) can no longer drift. diff --git a/.changeset/gantt-config-extended-fields.md b/.changeset/gantt-config-extended-fields.md deleted file mode 100644 index 2907489c97..0000000000 --- a/.changeset/gantt-config-extended-fields.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@objectstack/spec": patch ---- - -fix(spec): declare the extended Gantt config fields the renderer actually reads - -`GanttConfigSchema` only declared the 5 core timeline fields as a plain -`z.object` (no passthrough), so every other field the Gantt renderer consumes — -`parentField`/`typeField` (two-level summary→step hierarchy), `colorField`, -`groupByField`, `tooltipFields`, `baselineStartField`/`baselineEndField`, -`resourceView`/`assigneeField`/`effortField`/`capacity`, `quickFilters`, -`autoZoomToFilter` — was silently stripped by `.parse()` on both the compile-time -protocol check and the runtime `GET /api/v1/meta/view/:object` re-validation. With -the keys gone before render, the Gantt degraded to a flat list (no parent/child -rows, no summary bars, no expand/collapse). These fields are now declared -explicitly (with descriptions), so the renderer contract round-trips through the -spec instead of requiring downstream patches. diff --git a/.changeset/i18n-view-form-end-user-controls.md b/.changeset/i18n-view-form-end-user-controls.md deleted file mode 100644 index d817457485..0000000000 --- a/.changeset/i18n-view-form-end-user-controls.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@objectstack/platform-objects": patch ---- - -fix(i18n): add view form `end_user_controls` translations for en, es-ES, ja-JP and zh-CN metadata-forms bundles. diff --git a/.changeset/multitenant-seed-ownership.md b/.changeset/multitenant-seed-ownership.md deleted file mode 100644 index e1bbde3e19..0000000000 --- a/.changeset/multitenant-seed-ownership.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -"@objectstack/plugin-org-scoping": minor ---- - -feat(org-scoping): hand a default org's seeded records to its admin (multi-tenant ownership handoff) - -The multi-tenant companion to plugin-security's single-tenant `claimSeedOwnership`. -Seeded rows land `owner_id` NULL (the author leaves it unset; `cel`os.user.id`` -resolves to NULL at seed time). In multi-tenant mode `claimOrphanOrgRows` -back-fills their `organization_id`, but `owner_id` stayed NULL — so "My" views, -owner reports and owner notifications were empty for the org's members. - -- New `claimOrgSeedOwnership(ql, organizationId, ownerUserId)` — assigns - `owner_id = ownerUserId` to an org's NULL-owned seed rows. Scoped to a single - org (never touches another tenant), idempotent, skips `managedBy` / `sys_*`, - and requires both `owner_id` and `organization_id` columns. -- `ensureDefaultOrganization` now calls it after binding the platform admin as - the default org's owner, so the default org's demo data is owned by the admin - out of the box — symmetric with the single-tenant first-admin handoff. diff --git a/.changeset/seed-ownership-handoff.md b/.changeset/seed-ownership-handoff.md deleted file mode 100644 index 97ffe09b3a..0000000000 --- a/.changeset/seed-ownership-handoff.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -"@objectstack/objectql": minor -"@objectstack/plugin-security": minor -"@objectstack/runtime": minor ---- - -feat(ownership): auto-provision a canonical `owner_id` and hand seeded records to the first admin - -Ownership is now correct-by-default instead of opt-in — closing the gap where -seeded demo data ended up owned by nobody a human can log in as (so "My" views, -owner reports and owner notifications were empty out of the box) and where -author-written objects silently shipped with no working ownership at all. - -- **`applySystemFields` (objectql)** now auto-injects a canonical, reassignable - `owner_id` lookup (→ `sys_user`) on user-authored business objects, alongside - the existing tenant/audit fields. Unlike the audit `*_by` lookups it is NOT - readonly — ownership transfers. Withheld for `managedBy` / `sys_*` tables and - for objects that opt out via `ownership: 'org' | 'none'` (Dataverse-style). The - safe default direction: forgetting the opt-out leaves a harmless spare column, - whereas the old opt-IN model let authors ship objects with broken ownership. - Once present, the existing machinery engages automatically (insert auto-stamp, - owner-scoped RLS, owner-keyed views/reports). - -- **`claimSeedOwnership` (plugin-security)**, invoked from `bootstrapPlatformAdmin` - right after the first human is promoted to platform admin, transfers ownership - of seeded rows (`owner_id` NULL or `usr_system`) to that admin. The ownership - twin of org-scoping's `claimOrphanOrgRows`. Idempotent; skips `managedBy` / - `sys_*`. Authors write plain seed records (no `owner_id`) and the platform — - not the author — performs the handoff, so there is nothing to remember or - mistype. - -- **`usr_system` is never minted (runtime + objectql).** The seed loader binds - `os.user` to a NULL identity, so `cel`os.user.id`` resolves to NULL at seed - time (the owning admin does not exist yet) and the row seeds NULL-owned — then - the handoff above fills it. The runtime's `ensureSeedIdentity` (the only code - that inserted a `usr_system` row) is removed. `SystemUserId.SYSTEM` survives - only as a reserved id so legacy DBs' exclusion guards / ownership handoff still - recognize a pre-existing row. `os.org` is unaffected (derived from - `organizationId`). - -Also hardens `bootstrapPlatformAdmin` against a latent dts typecheck error -(defensive read of the untyped `description` on seed permission sets). diff --git a/.changeset/tz-analytics-bucketing.md b/.changeset/tz-analytics-bucketing.md deleted file mode 100644 index 61de2ee59a..0000000000 --- a/.changeset/tz-analytics-bucketing.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@objectstack/service-analytics": patch -"@objectstack/objectql": patch -"@objectstack/rest": patch ---- - -fix(analytics): make organization timezone actually drive date-dimension bucketing (ADR-0053 Phase 2, #1982) - -Date-bucketed analytics silently ignored the reference timezone end-to-end. Three independent seams were broken: - -- **service-analytics** — `NativeSQLStrategy` (priority 10) won every cube/dataset query on a SQL driver, but it groups by the raw column (no `date_trunc`) and ignores `timezone`, so a date dimension never bucketed (one row per raw timestamp) and a non-UTC zone was dropped. It now declines queries that carry a `timeDimensions[].granularity`, handing them to `ObjectQLStrategy` → `engine.aggregate` (native bucketing when UTC-safe, uniform in-memory bucketing when non-UTC). -- **objectql** — the in-memory `count` aggregation treated the `*` count-all sentinel (the Cube `count` measure / a fieldless dataset `count`, both compiled to `sql: '*'`) as a column name, counting non-null of a non-existent property → `0` for every bucket. The driver's `COUNT(*)` masked it; the in-memory path (non-UTC date buckets, `driver-rest`/`driver-memory`) returned zeros. `*` is now counted as all rows. -- **rest** — `resolveExecCtx` never resolved the localization timezone/locale, so `/analytics/dataset/query` always ran with `timezone: 'UTC'`. It now resolves them through the `settings` service (honouring the 4-tier cascade incl. the `OS_LOCALIZATION_TIMEZONE` env override), mirroring the dispatcher path. diff --git a/examples/app-crm/CHANGELOG.md b/examples/app-crm/CHANGELOG.md index 619a9f4f13..0bc6b4999f 100644 --- a/examples/app-crm/CHANGELOG.md +++ b/examples/app-crm/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/example-crm +## 4.0.53 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [e2b5324] + - @objectstack/spec@9.10.0 + - @objectstack/runtime@9.10.0 + ## 4.0.52 ### Patch Changes diff --git a/examples/app-crm/package.json b/examples/app-crm/package.json index bc844fa18c..2d054bdca4 100644 --- a/examples/app-crm/package.json +++ b/examples/app-crm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-crm", - "version": "4.0.52", + "version": "4.0.53", "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 1abeba7ccd..7139d918b5 100644 --- a/examples/app-showcase/CHANGELOG.md +++ b/examples/app-showcase/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/example-showcase +## 0.1.23 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [e2b5324] + - @objectstack/spec@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/cloud-connection@9.10.0 + - @objectstack/connector-rest@9.10.0 + - @objectstack/connector-slack@9.10.0 + ## 0.1.22 ### Patch Changes diff --git a/examples/app-showcase/package.json b/examples/app-showcase/package.json index 43d490b6a2..4019a45b2b 100644 --- a/examples/app-showcase/package.json +++ b/examples/app-showcase/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-showcase", - "version": "0.1.22", + "version": "0.1.23", "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, AI). 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 a0e5c08312..21f098e60b 100644 --- a/examples/app-todo/CHANGELOG.md +++ b/examples/app-todo/CHANGELOG.md @@ -1,5 +1,24 @@ # @objectstack/example-todo +## 4.0.53 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/spec@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/driver-sqlite-wasm@9.10.0 + - @objectstack/client@9.10.0 + - @objectstack/metadata@9.10.0 + - @objectstack/knowledge-memory@9.10.0 + - @objectstack/service-ai@9.10.0 + - @objectstack/service-knowledge@9.10.0 + ## 4.0.52 ### Patch Changes diff --git a/examples/app-todo/package.json b/examples/app-todo/package.json index 68a54f4aed..e2e394eb16 100644 --- a/examples/app-todo/package.json +++ b/examples/app-todo/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-todo", - "version": "4.0.52", + "version": "4.0.53", "description": "Example Todo App using ObjectStack Protocol", "license": "Apache-2.0", "private": true, diff --git a/packages/adapters/express/CHANGELOG.md b/packages/adapters/express/CHANGELOG.md index f56c4e0ddd..b1769c2765 100644 --- a/packages/adapters/express/CHANGELOG.md +++ b/packages/adapters/express/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/express +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/express/package.json b/packages/adapters/express/package.json index a539a62951..3717912a9f 100644 --- a/packages/adapters/express/package.json +++ b/packages/adapters/express/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/express", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/fastify/CHANGELOG.md b/packages/adapters/fastify/CHANGELOG.md index 7e33bc6f1c..c55abfcb27 100644 --- a/packages/adapters/fastify/CHANGELOG.md +++ b/packages/adapters/fastify/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/fastify +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/fastify/package.json b/packages/adapters/fastify/package.json index c404311238..2db4c44459 100644 --- a/packages/adapters/fastify/package.json +++ b/packages/adapters/fastify/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/fastify", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/hono/CHANGELOG.md b/packages/adapters/hono/CHANGELOG.md index d4440b22be..e46dd0ea6c 100644 --- a/packages/adapters/hono/CHANGELOG.md +++ b/packages/adapters/hono/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/hono +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + - @objectstack/plugin-hono-server@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/hono/package.json b/packages/adapters/hono/package.json index 793ed99bff..be18ef1702 100644 --- a/packages/adapters/hono/package.json +++ b/packages/adapters/hono/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/hono", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nestjs/CHANGELOG.md b/packages/adapters/nestjs/CHANGELOG.md index 930ac26423..43ffdc6b7f 100644 --- a/packages/adapters/nestjs/CHANGELOG.md +++ b/packages/adapters/nestjs/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/nestjs +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/nestjs/package.json b/packages/adapters/nestjs/package.json index 1a05dbb0c2..c01c5113d9 100644 --- a/packages/adapters/nestjs/package.json +++ b/packages/adapters/nestjs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nestjs", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nextjs/CHANGELOG.md b/packages/adapters/nextjs/CHANGELOG.md index 7b263500e4..9a0ec97684 100644 --- a/packages/adapters/nextjs/CHANGELOG.md +++ b/packages/adapters/nextjs/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/nextjs +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/nextjs/package.json b/packages/adapters/nextjs/package.json index 58a7d4f132..6580838695 100644 --- a/packages/adapters/nextjs/package.json +++ b/packages/adapters/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nextjs", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/nuxt/CHANGELOG.md b/packages/adapters/nuxt/CHANGELOG.md index 0d5d4eaa52..b64eaf976e 100644 --- a/packages/adapters/nuxt/CHANGELOG.md +++ b/packages/adapters/nuxt/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/nuxt +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/nuxt/package.json b/packages/adapters/nuxt/package.json index db9af0db2a..dd6adeecd8 100644 --- a/packages/adapters/nuxt/package.json +++ b/packages/adapters/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/nuxt", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/adapters/sveltekit/CHANGELOG.md b/packages/adapters/sveltekit/CHANGELOG.md index e6567a15dc..c794f876a4 100644 --- a/packages/adapters/sveltekit/CHANGELOG.md +++ b/packages/adapters/sveltekit/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/sveltekit +## 9.10.0 + +### Patch Changes + +- Updated dependencies [e2b5324] + - @objectstack/runtime@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/adapters/sveltekit/package.json b/packages/adapters/sveltekit/package.json index 9dd1e93ba7..94e01a20ce 100644 --- a/packages/adapters/sveltekit/package.json +++ b/packages/adapters/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/sveltekit", - "version": "9.9.1", + "version": "9.10.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 b4571fe981..659e808704 100644 --- a/packages/apps/account/CHANGELOG.md +++ b/packages/apps/account/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/account +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/apps/account/package.json b/packages/apps/account/package.json index 0848da77e5..997d43971c 100644 --- a/packages/apps/account/package.json +++ b/packages/apps/account/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/account", - "version": "9.9.1", + "version": "9.10.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 2335fa82e2..33c9f3ff2b 100644 --- a/packages/apps/setup/CHANGELOG.md +++ b/packages/apps/setup/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/setup +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/apps/setup/package.json b/packages/apps/setup/package.json index f60935ac51..eb826951b9 100644 --- a/packages/apps/setup/package.json +++ b/packages/apps/setup/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/setup", - "version": "9.9.1", + "version": "9.10.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 f5e5f62923..315f3ba6f5 100644 --- a/packages/apps/studio/CHANGELOG.md +++ b/packages/apps/studio/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/studio +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/apps/studio/package.json b/packages/apps/studio/package.json index e6b3c94099..49f6edf603 100644 --- a/packages/apps/studio/package.json +++ b/packages/apps/studio/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/studio", - "version": "9.9.1", + "version": "9.10.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 6b118379ff..b969f176cb 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,64 @@ # @objectstack/cli +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [d9508d1] +- Updated dependencies [1d352d3] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] +- Updated dependencies [f169558] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/service-analytics@9.10.0 + - @objectstack/driver-sql@9.10.0 + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/plugin-org-scoping@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/plugin-security@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/rest@9.10.0 + - @objectstack/driver-sqlite-wasm@9.10.0 + - @objectstack/service-datasource@9.10.0 + - @objectstack/account@9.10.0 + - @objectstack/setup@9.10.0 + - @objectstack/studio@9.10.0 + - @objectstack/client@9.10.0 + - @objectstack/cloud-connection@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + - @objectstack/mcp@9.10.0 + - @objectstack/observability@9.10.0 + - @objectstack/driver-memory@9.10.0 + - @objectstack/driver-mongodb@9.10.0 + - @objectstack/plugin-approvals@9.10.0 + - @objectstack/plugin-audit@9.10.0 + - @objectstack/plugin-auth@9.10.0 + - @objectstack/plugin-email@9.10.0 + - @objectstack/plugin-hono-server@9.10.0 + - @objectstack/plugin-reports@9.10.0 + - @objectstack/plugin-sharing@9.10.0 + - @objectstack/plugin-webhooks@9.10.0 + - @objectstack/service-ai@9.10.0 + - @objectstack/service-automation@9.10.0 + - @objectstack/service-cache@9.10.0 + - @objectstack/service-job@9.10.0 + - @objectstack/service-messaging@9.10.0 + - @objectstack/service-package@9.10.0 + - @objectstack/service-queue@9.10.0 + - @objectstack/service-realtime@9.10.0 + - @objectstack/service-settings@9.10.0 + - @objectstack/service-storage@9.10.0 + - @objectstack/trigger-api@9.10.0 + - @objectstack/trigger-record-change@9.10.0 + - @objectstack/trigger-schedule@9.10.0 + - @objectstack/types@9.10.0 + - @objectstack/console@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 54834a62c7..4c258f5937 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cli", - "version": "9.9.1", + "version": "9.10.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 4ec8d5e767..779b3ff325 100644 --- a/packages/client-react/CHANGELOG.md +++ b/packages/client-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/client-react +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/client@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/client-react/package.json b/packages/client-react/package.json index 71f618fee4..9fd5c18552 100644 --- a/packages/client-react/package.json +++ b/packages/client-react/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client-react", - "version": "9.9.1", + "version": "9.10.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 905bfc1ca8..19cf813144 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/client +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/client/package.json b/packages/client/package.json index d1062ea2bc..f56d83a118 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client", - "version": "9.9.1", + "version": "9.10.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 4bc0d61965..66b4c6e168 100644 --- a/packages/cloud-connection/CHANGELOG.md +++ b/packages/cloud-connection/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/cloud-connection +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [e2b5324] + - @objectstack/spec@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/cloud-connection/package.json b/packages/cloud-connection/package.json index ed83b20226..48d6b130f6 100644 --- a/packages/cloud-connection/package.json +++ b/packages/cloud-connection/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cloud-connection", - "version": "9.9.1", + "version": "9.10.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 416e27e14f..badd425fc4 100644 --- a/packages/connectors/connector-mcp/CHANGELOG.md +++ b/packages/connectors/connector-mcp/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/connector-mcp +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/connectors/connector-mcp/package.json b/packages/connectors/connector-mcp/package.json index 3b3575e712..6980b4a6b3 100644 --- a/packages/connectors/connector-mcp/package.json +++ b/packages/connectors/connector-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-mcp", - "version": "9.9.1", + "version": "9.10.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 d3eb25e69e..ab48196c68 100644 --- a/packages/connectors/connector-openapi/CHANGELOG.md +++ b/packages/connectors/connector-openapi/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/connector-openapi +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/connectors/connector-openapi/package.json b/packages/connectors/connector-openapi/package.json index 46618c10e3..839dd49656 100644 --- a/packages/connectors/connector-openapi/package.json +++ b/packages/connectors/connector-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-openapi", - "version": "9.9.1", + "version": "9.10.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 bcb4fce6e2..f8478dfbf3 100644 --- a/packages/connectors/connector-rest/CHANGELOG.md +++ b/packages/connectors/connector-rest/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/connector-rest +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/connectors/connector-rest/package.json b/packages/connectors/connector-rest/package.json index 295b6fe096..b3f63412c2 100644 --- a/packages/connectors/connector-rest/package.json +++ b/packages/connectors/connector-rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-rest", - "version": "9.9.1", + "version": "9.10.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 c2b91978ff..2fbf73785d 100644 --- a/packages/connectors/connector-slack/CHANGELOG.md +++ b/packages/connectors/connector-slack/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/connector-slack +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/connectors/connector-slack/package.json b/packages/connectors/connector-slack/package.json index 3537695a2f..0ffad72493 100644 --- a/packages/connectors/connector-slack/package.json +++ b/packages/connectors/connector-slack/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-slack", - "version": "9.9.1", + "version": "9.10.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 ab6691aa72..b94551f315 100644 --- a/packages/console/CHANGELOG.md +++ b/packages/console/CHANGELOG.md @@ -1,5 +1,7 @@ # @objectstack/console +## 9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/console/package.json b/packages/console/package.json index 97f42f1bd0..28885568e8 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/console", - "version": "9.9.1", + "version": "9.10.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 2db30c1831..b14bec5564 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/core +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 5fb84f1472..0173055197 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/core", - "version": "9.9.1", + "version": "9.10.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 0b06e4591b..c81c2fa675 100644 --- a/packages/create-objectstack/CHANGELOG.md +++ b/packages/create-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # create-objectstack +## 9.10.0 + ## 9.9.1 ## 9.9.0 diff --git a/packages/create-objectstack/package.json b/packages/create-objectstack/package.json index 5841dc9bff..46a089e600 100644 --- a/packages/create-objectstack/package.json +++ b/packages/create-objectstack/package.json @@ -1,6 +1,6 @@ { "name": "create-objectstack", - "version": "9.9.1", + "version": "9.10.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 new file mode 100644 index 0000000000..0235bf63a2 --- /dev/null +++ b/packages/dogfood/CHANGELOG.md @@ -0,0 +1,27 @@ +# @objectstack/dogfood + +## 0.0.1 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [f169558] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/service-analytics@9.10.0 + - @objectstack/spec@9.10.0 + - @objectstack/plugin-org-scoping@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/plugin-security@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/rest@9.10.0 + - @objectstack/driver-sqlite-wasm@9.10.0 + - @objectstack/example-crm@4.0.53 + - @objectstack/example-showcase@0.1.23 + - @objectstack/core@9.10.0 + - @objectstack/plugin-auth@9.10.0 + - @objectstack/plugin-hono-server@9.10.0 + - @objectstack/plugin-sharing@9.10.0 + - @objectstack/service-settings@9.10.0 diff --git a/packages/dogfood/package.json b/packages/dogfood/package.json index 91144f6480..dc6bbb403f 100644 --- a/packages/dogfood/package.json +++ b/packages/dogfood/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/dogfood", - "version": "0.0.0", + "version": "0.0.1", "private": true, "license": "Apache-2.0", "description": "Dogfood regression gate — boots real example apps in-process and exercises them through the real HTTP/service stack, catching runtime regressions that static checks (build, unit tests, spec liveness) miss.", diff --git a/packages/formula/CHANGELOG.md b/packages/formula/CHANGELOG.md index 4193803225..0156db683c 100644 --- a/packages/formula/CHANGELOG.md +++ b/packages/formula/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/formula +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/formula/package.json b/packages/formula/package.json index cb191b393c..5305539e5d 100644 --- a/packages/formula/package.json +++ b/packages/formula/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/formula", - "version": "9.9.1", + "version": "9.10.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/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index fe7e2b7fc9..cc4e15dfbc 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-mcp-server +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 6bc5edb8f9..5ad6a7aa66 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/mcp", - "version": "9.9.1", + "version": "9.10.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 3f47a09d63..1fddfb1427 100644 --- a/packages/metadata-core/CHANGELOG.md +++ b/packages/metadata-core/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/metadata-core +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/metadata-core/package.json b/packages/metadata-core/package.json index 8c11557e37..c3192a38e2 100644 --- a/packages/metadata-core/package.json +++ b/packages/metadata-core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-core", - "version": "9.9.1", + "version": "9.10.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 e012d52f7b..193bbae621 100644 --- a/packages/metadata-fs/CHANGELOG.md +++ b/packages/metadata-fs/CHANGELOG.md @@ -1,5 +1,11 @@ # @objectstack/metadata-fs +## 9.10.0 + +### Patch Changes + +- @objectstack/metadata-core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/metadata-fs/package.json b/packages/metadata-fs/package.json index 46f2639ba6..88d4c748f1 100644 --- a/packages/metadata-fs/package.json +++ b/packages/metadata-fs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-fs", - "version": "9.9.1", + "version": "9.10.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/CHANGELOG.md b/packages/metadata/CHANGELOG.md index 3e1dc9dedb..51b5e7a612 100644 --- a/packages/metadata/CHANGELOG.md +++ b/packages/metadata/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/metadata +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/metadata-core@9.10.0 + - @objectstack/types@9.10.0 + - @objectstack/metadata-fs@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 9f18010eef..a0c80189ee 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata", - "version": "9.9.1", + "version": "9.10.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 e4f402fea3..8c5b63f281 100644 --- a/packages/objectql/CHANGELOG.md +++ b/packages/objectql/CHANGELOG.md @@ -1,5 +1,64 @@ # @objectstack/objectql +## 9.10.0 + +### Minor Changes + +- e2b5324: feat(ownership): auto-provision a canonical `owner_id` and hand seeded records to the first admin + + Ownership is now correct-by-default instead of opt-in — closing the gap where + seeded demo data ended up owned by nobody a human can log in as (so "My" views, + owner reports and owner notifications were empty out of the box) and where + author-written objects silently shipped with no working ownership at all. + + - **`applySystemFields` (objectql)** now auto-injects a canonical, reassignable + `owner_id` lookup (→ `sys_user`) on user-authored business objects, alongside + the existing tenant/audit fields. Unlike the audit `*_by` lookups it is NOT + readonly — ownership transfers. Withheld for `managedBy` / `sys_*` tables and + for objects that opt out via `ownership: 'org' | 'none'` (Dataverse-style). The + safe default direction: forgetting the opt-out leaves a harmless spare column, + whereas the old opt-IN model let authors ship objects with broken ownership. + Once present, the existing machinery engages automatically (insert auto-stamp, + owner-scoped RLS, owner-keyed views/reports). + + - **`claimSeedOwnership` (plugin-security)**, invoked from `bootstrapPlatformAdmin` + right after the first human is promoted to platform admin, transfers ownership + of seeded rows (`owner_id` NULL or `usr_system`) to that admin. The ownership + twin of org-scoping's `claimOrphanOrgRows`. Idempotent; skips `managedBy` / + `sys_*`. Authors write plain seed records (no `owner_id`) and the platform — + not the author — performs the handoff, so there is nothing to remember or + mistype. + + - **`usr_system` is never minted (runtime + objectql).** The seed loader binds + `os.user` to a NULL identity, so `cel`os.user.id``resolves to NULL at seed +time (the owning admin does not exist yet) and the row seeds NULL-owned — then +the handoff above fills it. The runtime's`ensureSeedIdentity`(the only code +that inserted a`usr_system`row) is removed.`SystemUserId.SYSTEM`survives +only as a reserved id so legacy DBs' exclusion guards / ownership handoff still +recognize a pre-existing row.`os.org`is unaffected (derived from`organizationId`). + + Also hardens `bootstrapPlatformAdmin` against a latent dts typecheck error + (defensive read of the untyped `description` on seed permission sets). + +### Patch Changes + +- fd07027: fix(analytics): make organization timezone actually drive date-dimension bucketing (ADR-0053 Phase 2, #1982) + + Date-bucketed analytics silently ignored the reference timezone end-to-end. Three independent seams were broken: + + - **service-analytics** — `NativeSQLStrategy` (priority 10) won every cube/dataset query on a SQL driver, but it groups by the raw column (no `date_trunc`) and ignores `timezone`, so a date dimension never bucketed (one row per raw timestamp) and a non-UTC zone was dropped. It now declines queries that carry a `timeDimensions[].granularity`, handing them to `ObjectQLStrategy` → `engine.aggregate` (native bucketing when UTC-safe, uniform in-memory bucketing when non-UTC). + - **objectql** — the in-memory `count` aggregation treated the `*` count-all sentinel (the Cube `count` measure / a fieldless dataset `count`, both compiled to `sql: '*'`) as a column name, counting non-null of a non-existent property → `0` for every bucket. The driver's `COUNT(*)` masked it; the in-memory path (non-UTC date buckets, `driver-rest`/`driver-memory`) returned zeros. `*` is now counted as all rows. + - **rest** — `resolveExecCtx` never resolved the localization timezone/locale, so `/analytics/dataset/query` always ran with `timezone: 'UTC'`. It now resolves them through the `settings` service (honouring the 4-tier cascade incl. the `OS_LOCALIZATION_TIMEZONE` env override), mirroring the dispatcher path. + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + - @objectstack/metadata-core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/objectql/package.json b/packages/objectql/package.json index ea450f49bc..6d0ad5c477 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/objectql", - "version": "9.9.1", + "version": "9.10.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 de113d895c..8972ed4a6f 100644 --- a/packages/observability/CHANGELOG.md +++ b/packages/observability/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/observability +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/observability/package.json b/packages/observability/package.json index d2f022f845..5382503535 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/observability", - "version": "9.9.1", + "version": "9.10.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 08979f4c98..666674336d 100644 --- a/packages/platform-objects/CHANGELOG.md +++ b/packages/platform-objects/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/platform-objects +## 9.10.0 + +### Patch Changes + +- 4331adb: fix(i18n): add view form `end_user_controls` translations for en, es-ES, ja-JP and zh-CN metadata-forms bundles. +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/metadata-core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/platform-objects/package.json b/packages/platform-objects/package.json index 205311dc2d..da0040edb5 100644 --- a/packages/platform-objects/package.json +++ b/packages/platform-objects/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/platform-objects", - "version": "9.9.1", + "version": "9.10.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 61df30659d..d7f8f7105f 100644 --- a/packages/plugins/driver-memory/CHANGELOG.md +++ b/packages/plugins/driver-memory/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/driver-memory +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/driver-memory/package.json b/packages/plugins/driver-memory/package.json index ab9e82fc98..caeaa14abb 100644 --- a/packages/plugins/driver-memory/package.json +++ b/packages/plugins/driver-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-memory", - "version": "9.9.1", + "version": "9.10.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 d6af1348cb..943a5b3f6a 100644 --- a/packages/plugins/driver-mongodb/CHANGELOG.md +++ b/packages/plugins/driver-mongodb/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/driver-mongodb +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/driver-mongodb/package.json b/packages/plugins/driver-mongodb/package.json index ccc6d2495f..184ed98df3 100644 --- a/packages/plugins/driver-mongodb/package.json +++ b/packages/plugins/driver-mongodb/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-mongodb", - "version": "9.9.1", + "version": "9.10.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 d9b006f216..27969cd251 100644 --- a/packages/plugins/driver-sql/CHANGELOG.md +++ b/packages/plugins/driver-sql/CHANGELOG.md @@ -1,5 +1,35 @@ # @objectstack/driver-sql +## 9.10.0 + +### Patch Changes + +- db02bd5: Fix dashboard time-series charts / "last N months" KPIs that filter or group by a `Field.datetime` column silently returning "No rows". + + The analytics `NativeSQLStrategy` compiles dashboard relative-date tokens (`{12_months_ago}`, `{today}`, …) to ISO date strings and binds them directly into raw SQL, bypassing the driver's own filter coercion. Under better-sqlite3 a `Field.datetime` column is stored as an INTEGER epoch (ms), so `assessed_at >= '2025-06-18'` became a TEXT-vs-INTEGER affinity compare that is always false — an empty result even though the rows exist. `Field.date` columns store ISO TEXT and were unaffected. + + The strategy now coerces a temporal comparand to the column's on-disk storage form via a new optional `StrategyContext.coerceTemporalFilterValue` hook, wired to the driver's public `SqlDriver.temporalFilterValue` (the single source of truth for the storage convention). Coercion is dialect-correct: SQLite `Field.datetime` → epoch ms; `Field.date` text and native-timestamp dialects (Postgres/MySQL) are left unchanged, so Postgres is never handed an epoch integer. Applied to `gte`/`lte`/`gt`/`lt`/`equals`, `in`/`notIn`, and the `dateRange`/timeDimension `BETWEEN` path. + +- d9508d1: fix(driver-sql): make numeric-scalar type fidelity self-heal on legacy SQLite columns + + The #2025 fix mapped `rating`/`slider`/`progress` to numeric columns, but SQLite never alters a column's type in place and the schema reconciler only adds missing columns — so a column created before that fix keeps its TEXT affinity and would still read back `'4'` instead of `4` forever. + + A read-side numeric coercion (the new `numericFields` registry, single-sourced from `NUMERIC_SCALAR_TYPES`) now coerces numeric-looking stored strings back to numbers on read, mirroring how `dateFields` already repairs legacy timestamp-typed `Field.date` rows. The fidelity no longer depends on column affinity alone; `null` and genuinely non-numeric legacy values are left intact rather than turned into `0`/`NaN`. + +- 1d352d3: fix(driver-sql): round-trip rating/slider/toggle/progress with type fidelity + + `rating`/`slider`/`toggle`/`progress` had no case in the DDL column-type switch, so they fell to `default → table.string` (TEXT affinity). SQLite then coerced the written value to a string — `rating: 4` read back `'4'`, `toggle: true` read back `'1'` — so the value persisted but the JS type leaked on read. On a low-code platform where field types are author-driven, a field that silently returns the wrong type is a runtime-fidelity trap the static gates and value-loss tests don't catch. + + - `rating`/`slider`/`progress` now map to a REAL (numeric) column. + - `toggle` maps to a boolean column and is registered in the boolean read-coercion path, so stored `1`/`0` come back as real JS booleans. + - The object-valued `record`/`video`/`audio` types are folded into the shared `JSON_COLUMN_TYPES` source, and the DDL `default` case now derives JSON-vs-string from that set, so the column-type switch and `isJsonField` (the read-side deserializer) can no longer drift. + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/driver-sql/package.json b/packages/plugins/driver-sql/package.json index 5c22ff58a3..bb0387f938 100644 --- a/packages/plugins/driver-sql/package.json +++ b/packages/plugins/driver-sql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sql", - "version": "9.9.1", + "version": "9.10.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 05bfec5403..256765d674 100644 --- a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md +++ b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/driver-sqlite-wasm +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [d9508d1] +- Updated dependencies [1d352d3] +- Updated dependencies [94e9040] + - @objectstack/driver-sql@9.10.0 + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/driver-sqlite-wasm/package.json b/packages/plugins/driver-sqlite-wasm/package.json index aefcc0898c..373b17bf7d 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": "9.9.1", + "version": "9.10.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 15c86f2817..778aaebec5 100644 --- a/packages/plugins/embedder-openai/CHANGELOG.md +++ b/packages/plugins/embedder-openai/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/embedder-openai +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/embedder-openai/package.json b/packages/plugins/embedder-openai/package.json index aa2a1af2e3..c8961cb020 100644 --- a/packages/plugins/embedder-openai/package.json +++ b/packages/plugins/embedder-openai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/embedder-openai", - "version": "9.9.1", + "version": "9.10.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 c7896367ab..89536eefa2 100644 --- a/packages/plugins/knowledge-memory/CHANGELOG.md +++ b/packages/plugins/knowledge-memory/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/knowledge-memory +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/service-knowledge@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/knowledge-memory/package.json b/packages/plugins/knowledge-memory/package.json index b3fd80487c..176be01df8 100644 --- a/packages/plugins/knowledge-memory/package.json +++ b/packages/plugins/knowledge-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-memory", - "version": "9.9.1", + "version": "9.10.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 8aa830f73d..2573daa18d 100644 --- a/packages/plugins/knowledge-ragflow/CHANGELOG.md +++ b/packages/plugins/knowledge-ragflow/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/knowledge-ragflow +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/service-knowledge@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/knowledge-ragflow/package.json b/packages/plugins/knowledge-ragflow/package.json index ac6eecf516..1653116fb8 100644 --- a/packages/plugins/knowledge-ragflow/package.json +++ b/packages/plugins/knowledge-ragflow/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-ragflow", - "version": "9.9.1", + "version": "9.10.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 ad3350c8c5..45b0f668a5 100644 --- a/packages/plugins/plugin-approvals/CHANGELOG.md +++ b/packages/plugins/plugin-approvals/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/plugin-approvals +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + - @objectstack/metadata-core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-approvals/package.json b/packages/plugins/plugin-approvals/package.json index fcbed85256..e09022dda6 100644 --- a/packages/plugins/plugin-approvals/package.json +++ b/packages/plugins/plugin-approvals/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-approvals", - "version": "9.9.1", + "version": "9.10.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 af6e5a99fa..e9870eb759 100644 --- a/packages/plugins/plugin-audit/CHANGELOG.md +++ b/packages/plugins/plugin-audit/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-audit +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-audit/package.json b/packages/plugins/plugin-audit/package.json index 22281e0a2a..8e9a71ff29 100644 --- a/packages/plugins/plugin-audit/package.json +++ b/packages/plugins/plugin-audit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-audit", - "version": "9.9.1", + "version": "9.10.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 85d67e3347..dc96941a21 100644 --- a/packages/plugins/plugin-auth/CHANGELOG.md +++ b/packages/plugins/plugin-auth/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-auth/package.json b/packages/plugins/plugin-auth/package.json index 522b5cd4c3..de7a756e55 100644 --- a/packages/plugins/plugin-auth/package.json +++ b/packages/plugins/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-auth", - "version": "9.9.1", + "version": "9.10.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 39fa517353..97b387d762 100644 --- a/packages/plugins/plugin-dev/CHANGELOG.md +++ b/packages/plugins/plugin-dev/CHANGELOG.md @@ -1,5 +1,31 @@ # @objectstack/plugin-dev +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [f169558] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/spec@9.10.0 + - @objectstack/plugin-org-scoping@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/plugin-security@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/rest@9.10.0 + - @objectstack/account@9.10.0 + - @objectstack/setup@9.10.0 + - @objectstack/studio@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/driver-memory@9.10.0 + - @objectstack/plugin-auth@9.10.0 + - @objectstack/plugin-hono-server@9.10.0 + - @objectstack/service-i18n@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-dev/package.json b/packages/plugins/plugin-dev/package.json index 901c68888e..514209785f 100644 --- a/packages/plugins/plugin-dev/package.json +++ b/packages/plugins/plugin-dev/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-dev", - "version": "9.9.1", + "version": "9.10.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 951423def3..82e796631b 100644 --- a/packages/plugins/plugin-email/CHANGELOG.md +++ b/packages/plugins/plugin-email/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/plugin-email +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-email/package.json b/packages/plugins/plugin-email/package.json index af6a13ae4b..58a8efc0c7 100644 --- a/packages/plugins/plugin-email/package.json +++ b/packages/plugins/plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-email", - "version": "9.9.1", + "version": "9.10.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 6d884864e4..b8b84ab4ec 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 +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-hono-server/package.json b/packages/plugins/plugin-hono-server/package.json index 1cc19c5b67..7b18ac8b36 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": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "description": "Standard Hono Server Adapter for ObjectStack Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-msw/CHANGELOG.md b/packages/plugins/plugin-msw/CHANGELOG.md index bc3cefb1cc..788c7d11cc 100644 --- a/packages/plugins/plugin-msw/CHANGELOG.md +++ b/packages/plugins/plugin-msw/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/plugin-msw +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/spec@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/runtime@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-msw/package.json b/packages/plugins/plugin-msw/package.json index b87f21b366..71d6964170 100644 --- a/packages/plugins/plugin-msw/package.json +++ b/packages/plugins/plugin-msw/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-msw", - "version": "9.9.1", + "version": "9.10.0", "description": "MSW (Mock Service Worker) Plugin for ObjectStack Runtime", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/plugins/plugin-org-scoping/CHANGELOG.md b/packages/plugins/plugin-org-scoping/CHANGELOG.md index ce0dc6e794..0e3dba6f2f 100644 --- a/packages/plugins/plugin-org-scoping/CHANGELOG.md +++ b/packages/plugins/plugin-org-scoping/CHANGELOG.md @@ -1,5 +1,33 @@ # @objectstack/plugin-org-scoping +## 9.10.0 + +### Minor Changes + +- f169558: feat(org-scoping): hand a default org's seeded records to its admin (multi-tenant ownership handoff) + + The multi-tenant companion to plugin-security's single-tenant `claimSeedOwnership`. + Seeded rows land `owner_id` NULL (the author leaves it unset; `cel`os.user.id``resolves to NULL at seed time). In multi-tenant mode`claimOrphanOrgRows`back-fills their`organization_id`, but `owner_id` stayed NULL — so "My" views, + owner reports and owner notifications were empty for the org's members. + + - New `claimOrgSeedOwnership(ql, organizationId, ownerUserId)` — assigns + `owner_id = ownerUserId` to an org's NULL-owned seed rows. Scoped to a single + org (never touches another tenant), idempotent, skips `managedBy` / `sys_*`, + and requires both `owner_id` and `organization_id` columns. + - `ensureDefaultOrganization` now calls it after binding the platform admin as + the default org's owner, so the default org's demo data is owned by the admin + out of the box — symmetric with the single-tenant first-admin handoff. + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-org-scoping/package.json b/packages/plugins/plugin-org-scoping/package.json index 5e7b40beb5..e22df14ae2 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": "9.9.1", + "version": "9.10.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 3791790db4..d436509f6c 100644 --- a/packages/plugins/plugin-reports/CHANGELOG.md +++ b/packages/plugins/plugin-reports/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-reports +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-reports/package.json b/packages/plugins/plugin-reports/package.json index db3c7fd817..6667b3d45b 100644 --- a/packages/plugins/plugin-reports/package.json +++ b/packages/plugins/plugin-reports/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-reports", - "version": "9.9.1", + "version": "9.10.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 0201ae5099..f8db29f273 100644 --- a/packages/plugins/plugin-security/CHANGELOG.md +++ b/packages/plugins/plugin-security/CHANGELOG.md @@ -1,5 +1,55 @@ # @objectstack/plugin-security +## 9.10.0 + +### Minor Changes + +- e2b5324: feat(ownership): auto-provision a canonical `owner_id` and hand seeded records to the first admin + + Ownership is now correct-by-default instead of opt-in — closing the gap where + seeded demo data ended up owned by nobody a human can log in as (so "My" views, + owner reports and owner notifications were empty out of the box) and where + author-written objects silently shipped with no working ownership at all. + + - **`applySystemFields` (objectql)** now auto-injects a canonical, reassignable + `owner_id` lookup (→ `sys_user`) on user-authored business objects, alongside + the existing tenant/audit fields. Unlike the audit `*_by` lookups it is NOT + readonly — ownership transfers. Withheld for `managedBy` / `sys_*` tables and + for objects that opt out via `ownership: 'org' | 'none'` (Dataverse-style). The + safe default direction: forgetting the opt-out leaves a harmless spare column, + whereas the old opt-IN model let authors ship objects with broken ownership. + Once present, the existing machinery engages automatically (insert auto-stamp, + owner-scoped RLS, owner-keyed views/reports). + + - **`claimSeedOwnership` (plugin-security)**, invoked from `bootstrapPlatformAdmin` + right after the first human is promoted to platform admin, transfers ownership + of seeded rows (`owner_id` NULL or `usr_system`) to that admin. The ownership + twin of org-scoping's `claimOrphanOrgRows`. Idempotent; skips `managedBy` / + `sys_*`. Authors write plain seed records (no `owner_id`) and the platform — + not the author — performs the handoff, so there is nothing to remember or + mistype. + + - **`usr_system` is never minted (runtime + objectql).** The seed loader binds + `os.user` to a NULL identity, so `cel`os.user.id``resolves to NULL at seed +time (the owning admin does not exist yet) and the row seeds NULL-owned — then +the handoff above fills it. The runtime's`ensureSeedIdentity`(the only code +that inserted a`usr_system`row) is removed.`SystemUserId.SYSTEM`survives +only as a reserved id so legacy DBs' exclusion guards / ownership handoff still +recognize a pre-existing row.`os.org`is unaffected (derived from`organizationId`). + + Also hardens `bootstrapPlatformAdmin` against a latent dts typecheck error + (defensive read of the untyped `description` on seed permission sets). + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-security/package.json b/packages/plugins/plugin-security/package.json index 2f037d008b..f931f71802 100644 --- a/packages/plugins/plugin-security/package.json +++ b/packages/plugins/plugin-security/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-security", - "version": "9.9.1", + "version": "9.10.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 1a39471784..62328b7a57 100644 --- a/packages/plugins/plugin-sharing/CHANGELOG.md +++ b/packages/plugins/plugin-sharing/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/plugin-sharing +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-sharing/package.json b/packages/plugins/plugin-sharing/package.json index 529405d55f..9095655b3d 100644 --- a/packages/plugins/plugin-sharing/package.json +++ b/packages/plugins/plugin-sharing/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-sharing", - "version": "9.9.1", + "version": "9.10.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 afff307dcb..db57331dec 100644 --- a/packages/plugins/plugin-webhooks/CHANGELOG.md +++ b/packages/plugins/plugin-webhooks/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/plugin-webhooks +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/service-messaging@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/plugins/plugin-webhooks/package.json b/packages/plugins/plugin-webhooks/package.json index 8272d59304..12ce10827f 100644 --- a/packages/plugins/plugin-webhooks/package.json +++ b/packages/plugins/plugin-webhooks/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-webhooks", - "version": "9.9.1", + "version": "9.10.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 3c7000a3af..43dcb79a3c 100644 --- a/packages/rest/CHANGELOG.md +++ b/packages/rest/CHANGELOG.md @@ -1,5 +1,24 @@ # @objectstack/rest +## 9.10.0 + +### Patch Changes + +- fd07027: fix(analytics): make organization timezone actually drive date-dimension bucketing (ADR-0053 Phase 2, #1982) + + Date-bucketed analytics silently ignored the reference timezone end-to-end. Three independent seams were broken: + + - **service-analytics** — `NativeSQLStrategy` (priority 10) won every cube/dataset query on a SQL driver, but it groups by the raw column (no `date_trunc`) and ignores `timezone`, so a date dimension never bucketed (one row per raw timestamp) and a non-UTC zone was dropped. It now declines queries that carry a `timeDimensions[].granularity`, handing them to `ObjectQLStrategy` → `engine.aggregate` (native bucketing when UTC-safe, uniform in-memory bucketing when non-UTC). + - **objectql** — the in-memory `count` aggregation treated the `*` count-all sentinel (the Cube `count` measure / a fieldless dataset `count`, both compiled to `sql: '*'`) as a column name, counting non-null of a non-existent property → `0` for every bucket. The driver's `COUNT(*)` masked it; the in-memory path (non-UTC date buckets, `driver-rest`/`driver-memory`) returned zeros. `*` is now counted as all rows. + - **rest** — `resolveExecCtx` never resolved the localization timezone/locale, so `/analytics/dataset/query` always ran with `timezone: 'UTC'`. It now resolves them through the `settings` service (honouring the 4-tier cascade incl. the `OS_LOCALIZATION_TIMEZONE` env override), mirroring the dispatcher path. + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/service-package@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/rest/package.json b/packages/rest/package.json index 2ac4c68e36..4548286d51 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/rest", - "version": "9.9.1", + "version": "9.10.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 db714583e6..deba237f9d 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,72 @@ # @objectstack/runtime +## 9.10.0 + +### Minor Changes + +- e2b5324: feat(ownership): auto-provision a canonical `owner_id` and hand seeded records to the first admin + + Ownership is now correct-by-default instead of opt-in — closing the gap where + seeded demo data ended up owned by nobody a human can log in as (so "My" views, + owner reports and owner notifications were empty out of the box) and where + author-written objects silently shipped with no working ownership at all. + + - **`applySystemFields` (objectql)** now auto-injects a canonical, reassignable + `owner_id` lookup (→ `sys_user`) on user-authored business objects, alongside + the existing tenant/audit fields. Unlike the audit `*_by` lookups it is NOT + readonly — ownership transfers. Withheld for `managedBy` / `sys_*` tables and + for objects that opt out via `ownership: 'org' | 'none'` (Dataverse-style). The + safe default direction: forgetting the opt-out leaves a harmless spare column, + whereas the old opt-IN model let authors ship objects with broken ownership. + Once present, the existing machinery engages automatically (insert auto-stamp, + owner-scoped RLS, owner-keyed views/reports). + + - **`claimSeedOwnership` (plugin-security)**, invoked from `bootstrapPlatformAdmin` + right after the first human is promoted to platform admin, transfers ownership + of seeded rows (`owner_id` NULL or `usr_system`) to that admin. The ownership + twin of org-scoping's `claimOrphanOrgRows`. Idempotent; skips `managedBy` / + `sys_*`. Authors write plain seed records (no `owner_id`) and the platform — + not the author — performs the handoff, so there is nothing to remember or + mistype. + + - **`usr_system` is never minted (runtime + objectql).** The seed loader binds + `os.user` to a NULL identity, so `cel`os.user.id``resolves to NULL at seed +time (the owning admin does not exist yet) and the row seeds NULL-owned — then +the handoff above fills it. The runtime's`ensureSeedIdentity`(the only code +that inserted a`usr_system`row) is removed.`SystemUserId.SYSTEM`survives +only as a reserved id so legacy DBs' exclusion guards / ownership handoff still +recognize a pre-existing row.`os.org`is unaffected (derived from`organizationId`). + + Also hardens `bootstrapPlatformAdmin` against a latent dts typecheck error + (defensive read of the untyped `description` on seed permission sets). + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [d9508d1] +- Updated dependencies [1d352d3] +- Updated dependencies [94e9040] +- Updated dependencies [f169558] +- Updated dependencies [e2b5324] +- Updated dependencies [fd07027] + - @objectstack/driver-sql@9.10.0 + - @objectstack/spec@9.10.0 + - @objectstack/plugin-org-scoping@9.10.0 + - @objectstack/objectql@9.10.0 + - @objectstack/plugin-security@9.10.0 + - @objectstack/rest@9.10.0 + - @objectstack/driver-sqlite-wasm@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + - @objectstack/metadata@9.10.0 + - @objectstack/observability@9.10.0 + - @objectstack/driver-memory@9.10.0 + - @objectstack/plugin-auth@9.10.0 + - @objectstack/service-cluster@9.10.0 + - @objectstack/service-i18n@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 671b89a5fc..db03305317 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/runtime", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "description": "ObjectStack Core Runtime & Query Engine", "type": "module", diff --git a/packages/services/service-ai/CHANGELOG.md b/packages/services/service-ai/CHANGELOG.md index a6c028ad04..bbd7989766 100644 --- a/packages/services/service-ai/CHANGELOG.md +++ b/packages/services/service-ai/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-ai +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-ai/package.json b/packages/services/service-ai/package.json index 2ac260e641..12fe46540e 100644 --- a/packages/services/service-ai/package.json +++ b/packages/services/service-ai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-ai", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "description": "AI Service for ObjectStack — implements IAIService with LLM adapter layer, conversation management, tool registry, and REST/SSE routes", "type": "module", diff --git a/packages/services/service-analytics/CHANGELOG.md b/packages/services/service-analytics/CHANGELOG.md index 90e43af266..7848f193a7 100644 --- a/packages/services/service-analytics/CHANGELOG.md +++ b/packages/services/service-analytics/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog — @objectstack/service-analytics +## 9.10.0 + +### Patch Changes + +- db02bd5: Fix dashboard time-series charts / "last N months" KPIs that filter or group by a `Field.datetime` column silently returning "No rows". + + The analytics `NativeSQLStrategy` compiles dashboard relative-date tokens (`{12_months_ago}`, `{today}`, …) to ISO date strings and binds them directly into raw SQL, bypassing the driver's own filter coercion. Under better-sqlite3 a `Field.datetime` column is stored as an INTEGER epoch (ms), so `assessed_at >= '2025-06-18'` became a TEXT-vs-INTEGER affinity compare that is always false — an empty result even though the rows exist. `Field.date` columns store ISO TEXT and were unaffected. + + The strategy now coerces a temporal comparand to the column's on-disk storage form via a new optional `StrategyContext.coerceTemporalFilterValue` hook, wired to the driver's public `SqlDriver.temporalFilterValue` (the single source of truth for the storage convention). Coercion is dialect-correct: SQLite `Field.datetime` → epoch ms; `Field.date` text and native-timestamp dialects (Postgres/MySQL) are left unchanged, so Postgres is never handed an epoch integer. Applied to `gte`/`lte`/`gt`/`lt`/`equals`, `in`/`notIn`, and the `dateRange`/timeDimension `BETWEEN` path. + +- fd07027: fix(analytics): make organization timezone actually drive date-dimension bucketing (ADR-0053 Phase 2, #1982) + + Date-bucketed analytics silently ignored the reference timezone end-to-end. Three independent seams were broken: + + - **service-analytics** — `NativeSQLStrategy` (priority 10) won every cube/dataset query on a SQL driver, but it groups by the raw column (no `date_trunc`) and ignores `timezone`, so a date dimension never bucketed (one row per raw timestamp) and a non-UTC zone was dropped. It now declines queries that carry a `timeDimensions[].granularity`, handing them to `ObjectQLStrategy` → `engine.aggregate` (native bucketing when UTC-safe, uniform in-memory bucketing when non-UTC). + - **objectql** — the in-memory `count` aggregation treated the `*` count-all sentinel (the Cube `count` measure / a fieldless dataset `count`, both compiled to `sql: '*'`) as a column name, counting non-null of a non-existent property → `0` for every bucket. The driver's `COUNT(*)` masked it; the in-memory path (non-UTC date buckets, `driver-rest`/`driver-memory`) returned zeros. `*` is now counted as all rows. + - **rest** — `resolveExecCtx` never resolved the localization timezone/locale, so `/analytics/dataset/query` always ran with `timezone: 'UTC'`. It now resolves them through the `settings` service (honouring the 4-tier cascade incl. the `OS_LOCALIZATION_TIMEZONE` env override), mirroring the dispatcher path. + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-analytics/package.json b/packages/services/service-analytics/package.json index 0359363cdf..9af4742929 100644 --- a/packages/services/service-analytics/package.json +++ b/packages/services/service-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-analytics", - "version": "9.9.1", + "version": "9.10.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 1f87756113..c7def8be48 100644 --- a/packages/services/service-automation/CHANGELOG.md +++ b/packages/services/service-automation/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/service-automation +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/formula@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-automation/package.json b/packages/services/service-automation/package.json index 4c8b7455b8..b87e32bf4d 100644 --- a/packages/services/service-automation/package.json +++ b/packages/services/service-automation/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-automation", - "version": "9.9.1", + "version": "9.10.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 203ed1851c..57ef095a2e 100644 --- a/packages/services/service-cache/CHANGELOG.md +++ b/packages/services/service-cache/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/service-cache +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/observability@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-cache/package.json b/packages/services/service-cache/package.json index d0aa501cbf..d6eb9d4db6 100644 --- a/packages/services/service-cache/package.json +++ b/packages/services/service-cache/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cache", - "version": "9.9.1", + "version": "9.10.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 0574654207..7eebd5dbe4 100644 --- a/packages/services/service-cluster-redis/CHANGELOG.md +++ b/packages/services/service-cluster-redis/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-cluster-redis +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/service-cluster@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-cluster-redis/package.json b/packages/services/service-cluster-redis/package.json index d54d74399b..d4b0ed73ce 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": "9.9.1", + "version": "9.10.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 31dae5135c..9ca0e6b366 100644 --- a/packages/services/service-cluster/CHANGELOG.md +++ b/packages/services/service-cluster/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-cluster +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-cluster/package.json b/packages/services/service-cluster/package.json index 07906d77c8..6a56dd5b9c 100644 --- a/packages/services/service-cluster/package.json +++ b/packages/services/service-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster", - "version": "9.9.1", + "version": "9.10.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 426d0cbe49..2b98f1c826 100644 --- a/packages/services/service-datasource/CHANGELOG.md +++ b/packages/services/service-datasource/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-external-datasource +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-datasource/package.json b/packages/services/service-datasource/package.json index 63245b2daa..41e09db39c 100644 --- a/packages/services/service-datasource/package.json +++ b/packages/services/service-datasource/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-datasource", - "version": "9.9.1", + "version": "9.10.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 6e4142a47e..266aaf560d 100644 --- a/packages/services/service-i18n/CHANGELOG.md +++ b/packages/services/service-i18n/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-i18n +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-i18n/package.json b/packages/services/service-i18n/package.json index eefdeeb2e5..d1cac6f3ba 100644 --- a/packages/services/service-i18n/package.json +++ b/packages/services/service-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-i18n", - "version": "9.9.1", + "version": "9.10.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 ab970fdbd2..9fdfc06c32 100644 --- a/packages/services/service-job/CHANGELOG.md +++ b/packages/services/service-job/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-job +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-job/package.json b/packages/services/service-job/package.json index 2a1dc230f5..95776a3297 100644 --- a/packages/services/service-job/package.json +++ b/packages/services/service-job/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-job", - "version": "9.9.1", + "version": "9.10.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 c8fefbcc21..161577df73 100644 --- a/packages/services/service-knowledge/CHANGELOG.md +++ b/packages/services/service-knowledge/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-knowledge +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-knowledge/package.json b/packages/services/service-knowledge/package.json index a52bdb52f5..f52205943a 100644 --- a/packages/services/service-knowledge/package.json +++ b/packages/services/service-knowledge/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-knowledge", - "version": "9.9.1", + "version": "9.10.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 f3ddd67836..0cf52c9d28 100644 --- a/packages/services/service-messaging/CHANGELOG.md +++ b/packages/services/service-messaging/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-messaging +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-messaging/package.json b/packages/services/service-messaging/package.json index 36e370b989..6b51fe3f63 100644 --- a/packages/services/service-messaging/package.json +++ b/packages/services/service-messaging/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-messaging", - "version": "9.9.1", + "version": "9.10.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 c68ad04da9..ca1f25540d 100644 --- a/packages/services/service-package/CHANGELOG.md +++ b/packages/services/service-package/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/service-package +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-package/package.json b/packages/services/service-package/package.json index c2cd79b7f7..b492be0e6b 100644 --- a/packages/services/service-package/package.json +++ b/packages/services/service-package/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-package", - "version": "9.9.1", + "version": "9.10.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 bcf132719f..d5a108c243 100644 --- a/packages/services/service-queue/CHANGELOG.md +++ b/packages/services/service-queue/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-queue +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-queue/package.json b/packages/services/service-queue/package.json index 548c38fe08..eda5c99d66 100644 --- a/packages/services/service-queue/package.json +++ b/packages/services/service-queue/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-queue", - "version": "9.9.1", + "version": "9.10.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 37d060d147..d22602cea9 100644 --- a/packages/services/service-realtime/CHANGELOG.md +++ b/packages/services/service-realtime/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-realtime +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-realtime/package.json b/packages/services/service-realtime/package.json index 707b47f394..85160db630 100644 --- a/packages/services/service-realtime/package.json +++ b/packages/services/service-realtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-realtime", - "version": "9.9.1", + "version": "9.10.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 b11a70722e..84a25f90e9 100644 --- a/packages/services/service-settings/CHANGELOG.md +++ b/packages/services/service-settings/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/service-settings +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/types@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-settings/package.json b/packages/services/service-settings/package.json index 10b6ab8e34..463b850ff7 100644 --- a/packages/services/service-settings/package.json +++ b/packages/services/service-settings/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-settings", - "version": "9.9.1", + "version": "9.10.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 17f095ce44..5372c01bf4 100644 --- a/packages/services/service-storage/CHANGELOG.md +++ b/packages/services/service-storage/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/service-storage +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] +- Updated dependencies [4331adb] + - @objectstack/spec@9.10.0 + - @objectstack/platform-objects@9.10.0 + - @objectstack/core@9.10.0 + - @objectstack/observability@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/services/service-storage/package.json b/packages/services/service-storage/package.json index 81f1b48b54..58687626f3 100644 --- a/packages/services/service-storage/package.json +++ b/packages/services/service-storage/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-storage", - "version": "9.9.1", + "version": "9.10.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 e1e74f3806..8c43584e1d 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -1,5 +1,30 @@ # @objectstack/spec +## 9.10.0 + +### Patch Changes + +- db02bd5: Fix dashboard time-series charts / "last N months" KPIs that filter or group by a `Field.datetime` column silently returning "No rows". + + The analytics `NativeSQLStrategy` compiles dashboard relative-date tokens (`{12_months_ago}`, `{today}`, …) to ISO date strings and binds them directly into raw SQL, bypassing the driver's own filter coercion. Under better-sqlite3 a `Field.datetime` column is stored as an INTEGER epoch (ms), so `assessed_at >= '2025-06-18'` became a TEXT-vs-INTEGER affinity compare that is always false — an empty result even though the rows exist. `Field.date` columns store ISO TEXT and were unaffected. + + The strategy now coerces a temporal comparand to the column's on-disk storage form via a new optional `StrategyContext.coerceTemporalFilterValue` hook, wired to the driver's public `SqlDriver.temporalFilterValue` (the single source of truth for the storage convention). Coercion is dialect-correct: SQLite `Field.datetime` → epoch ms; `Field.date` text and native-timestamp dialects (Postgres/MySQL) are left unchanged, so Postgres is never handed an epoch integer. Applied to `gte`/`lte`/`gt`/`lt`/`equals`, `in`/`notIn`, and the `dateRange`/timeDimension `BETWEEN` path. + +- 641675d: Add `*Input` authoring-type aliases (`DatasourceInput`, `ConnectorInput`, `SharingRuleInput`, `JobInput`, `WebhookInput`, `EmailTemplateDefinitionInput`, `RoleInput`, `PermissionSetInput`, `ObjectExtensionInput`) alongside the existing `FieldInput`/`ActionInput`/`ReportInput`/`PortalInput` convention. These are `z.input` aliases so authored literals keep `.default()` fields optional and accept CEL/Expression string shorthands — matching how `defineX()` helpers already accept input. No runtime change. +- 94e9040: fix(spec): declare the extended Gantt config fields the renderer actually reads + + `GanttConfigSchema` only declared the 5 core timeline fields as a plain + `z.object` (no passthrough), so every other field the Gantt renderer consumes — + `parentField`/`typeField` (two-level summary→step hierarchy), `colorField`, + `groupByField`, `tooltipFields`, `baselineStartField`/`baselineEndField`, + `resourceView`/`assigneeField`/`effortField`/`capacity`, `quickFilters`, + `autoZoomToFilter` — was silently stripped by `.parse()` on both the compile-time + protocol check and the runtime `GET /api/v1/meta/view/:object` re-validation. With + the keys gone before render, the Gantt degraded to a flat list (no parent/child + rows, no summary bars, no expand/collapse). These fields are now declared + explicitly (with descriptions), so the renderer contract round-trips through the + spec instead of requiring downstream patches. + ## 9.9.1 ## 9.9.0 diff --git a/packages/spec/package.json b/packages/spec/package.json index 0e67b90a0e..3669953e1c 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/spec", - "version": "9.9.1", + "version": "9.10.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 986dabe4c2..ef887ffd46 100644 --- a/packages/triggers/trigger-api/CHANGELOG.md +++ b/packages/triggers/trigger-api/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/trigger-api +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/triggers/trigger-api/package.json b/packages/triggers/trigger-api/package.json index e0a8232902..28c803cb89 100644 --- a/packages/triggers/trigger-api/package.json +++ b/packages/triggers/trigger-api/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-api", - "version": "9.9.1", + "version": "9.10.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 f75cf909ba..62f3a8d122 100644 --- a/packages/triggers/trigger-record-change/CHANGELOG.md +++ b/packages/triggers/trigger-record-change/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-trigger-record-change +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/triggers/trigger-record-change/package.json b/packages/triggers/trigger-record-change/package.json index 9c5cf7cc83..fed560fe38 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": "9.9.1", + "version": "9.10.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 a86df19bcc..c97bf9e68f 100644 --- a/packages/triggers/trigger-schedule/CHANGELOG.md +++ b/packages/triggers/trigger-schedule/CHANGELOG.md @@ -1,5 +1,15 @@ # @objectstack/plugin-trigger-schedule +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + - @objectstack/core@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/triggers/trigger-schedule/package.json b/packages/triggers/trigger-schedule/package.json index 99b16cb55b..382098de54 100644 --- a/packages/triggers/trigger-schedule/package.json +++ b/packages/triggers/trigger-schedule/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-schedule", - "version": "9.9.1", + "version": "9.10.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 6e6395ad3c..a695cf0729 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,14 @@ # @objectstack/types +## 9.10.0 + +### Patch Changes + +- Updated dependencies [db02bd5] +- Updated dependencies [641675d] +- Updated dependencies [94e9040] + - @objectstack/spec@9.10.0 + ## 9.9.1 ### Patch Changes diff --git a/packages/types/package.json b/packages/types/package.json index fa3ee88112..4b97ef4cae 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/types", - "version": "9.9.1", + "version": "9.10.0", "license": "Apache-2.0", "description": "Shared interfaces describing the ObjectStack Runtime environment", "main": "dist/index.js", diff --git a/packages/vscode-objectstack/CHANGELOG.md b/packages/vscode-objectstack/CHANGELOG.md index 060ac75a0d..609887d2f3 100644 --- a/packages/vscode-objectstack/CHANGELOG.md +++ b/packages/vscode-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # objectstack-vscode +## 9.10.0 + ## 9.9.1 ## 9.9.0 diff --git a/packages/vscode-objectstack/package.json b/packages/vscode-objectstack/package.json index e42e9e7f1d..20eb99ac1c 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": "9.9.1", + "version": "9.10.0", "publisher": "objectstack", "license": "Apache-2.0", "repository": {